묻고 답해요
148만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
hamming code 과제 질문
해당 코드에서 보면 decoder_ham은 var5가 parity bit1인 것처럼 코딩이 되어 있습니다.실제로 Hamming Decoder 모듈에서는 var1이 p1인 것처럼 코딩이 되어 있구요. 근데, d1을 선언할 때는 갑자기 var1자리에 var5가 입력됩니다.이상하게도 결괏값은 잘 나오는 거 같구요..제가 이해 못하는 무언가 있는건가요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
MOR에 사용하는 FIFO에 대한 질문 드립니다.
맛비님. 안녕하세요.좋은 강의 항상 잘 보고 있습니다.MOR에 대해 질문이 있습니다. RDMA에서 FIFO의 data에 burst len을 입력하는 것으로 해석됩니다. 만약 이런 경우라면0x20000000번지에서 128 바이트를 읽는 중0x2000C000번지에 128 바이트를 읽는 식으로 동작이 되나요?제가 코드를 봤을 땐 위처럼 동작이 불가능해보여서요. 만약 제가 생각한게 맞고 위처럼 동작하도록 수정하려면 메모리 주소 FIFO와 burst len FIFO 두 개를 사용해야할까요? ================ 다음 내용은 읽어보시고 지우시면 됩니다.=================질문 내용을 작성해주실 때, 위의 3단계로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!!현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
DRAM ctrl 과제 질문
안녕하세요. 현재 DRAM ctrl 과제 진행 중테스트밴치를 통해 웨이브폼을 확인하는 중입니다.혹시 여기서 cnt값을 추가해서 확인하고 싶으면, 어떻게 해야 할까요? cnt는 DRAM cell 내부에서 조건에 따라 카운팅을 해줘tRCD,tWLC등의 조건을 만족하는지 확인하는 파라미터입니다. 그리고 추가적으로 웨이브폼 확인 중 의문이 생기는 부분을 확인하여 질문 드립니다.해당 부분은 첫 번째 WR신호를 마친후 o_ack가 high로 변하는 타이밍입니다.해당 타이밍에 저는 curr_row와 next_row의 addr값이 서로 다르다고 생각하였습니다.그래서 precharge로 넘어가야 할 것이라 예상했는데, 실제로는 같은 row로 인식하여 한번 더 쓰기를 진행했습니다. 다만 이번엔 dq핀에서 40이 아닌 50으로 출력값이 나왔습니다.... 혹시 왜 이렇게 동작했는지 알려주실 수 있을까요..감사합니다
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
과제4 hamming code 질문
hamming encoder의 input data는 [16:1]인데 output은 [21:1]이 아닌 [1:21]으로 한 이유가 있을까요?verilog에서 vector를 선언할 때에 [msb : lsb] , [lsb : msb] 두가지 방식을 혼용해서 쓰지 않는 것으로 알고 있었는데testbench에도 이를 위해서 reverse 시키는 부분이 존재하여 hamming code logic의 특징인지 궁금하여 문의드립니다.
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
bank addr 질문
bank 그룹안에 8개의 bank가 있는데 왜 BA는 2비트로 표현하는 것일까요? 3비트가 있어야하지 않나요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
KV260으로 실습하는 방법
안녕하세요 🙂신규 보드로 zybo z7-20을 사는 것은 비효율적입니다.비슷한 가격으로 스팩이 5~10배 이상 좋은 kv260을 구매할 수 있습니다. 다만 자료가 부족하여 보드를 구매할 때 망설이는 부분이 있다고 생각이 듭니다.하지만 zybo z7에는 없는 ultra 램과 4GB의 ddr4램 10만개 이상의 LUT과 20만개 이상의 FF, 1280개의 DSP는 석사 레벨 혹은 박사 레벨의 프로젝트도 무리 없이 수행 가능하다고 생각합니다.저도 verilog season1 수강을 할 때도 kv260으로 고생하면서 들은 기억이 납니다. verilog season 2 dma를 실제로 올리고, 작동까지 확인하는 것을 보고 나서, 이제는 다른 수강생들에게 저의 경험을 공유해도 될 것이라고 생각해서 이 글을 올립니다.저의 vivado 환경은 ubuntu 24.04 vivado 2024.1을 사용하고 있습니다. 윈도우 환경에서는 vitis 빌드가 되지 않는 치명적인 버그가 있어서 vivado를 사용하는 분들이면 마음 편하게 SSD를 하나 더 사셔서 듀얼 부팅 환경을 만드시는 것을 추천합니다. UART 연결하기KV260의 UART는 zybo z7-20과 다르게 36, 37번 pin과 연결되어 있습니다. IO의 기본 voltage가 1.8V로 되어있으므로 이 부분은 수정하지 않아도 될 것 같습니다. 이 화면 그대로 따라하면 될 것 같습니다. jtag bootkv260의 기본 boot setting은 qspi boot입니다. 제가 생각하는 kv260의 치명적인 단점은 external boot selector switch가 없는 것입니다. jtag boot를 위해서 다음의 문서를 참조했습니다.https://xilinx.github.io/kria-apps-docs/creating_applications/2022.1/build/html/docs/bootmodes.html이 환경에서 따로 boot_jtag.tcl파일을 만드신 다음xsct console에서 connecttargetsource .. boot_jtag.tcl파일 위치boot_jtag를 순서대로 입력하면 jtag boot로 변합니다. 이 두가지만 해결하시면 kv260으로도 충분히 수강 가능하다고 생각합니다. 또 kv260에는 100mhz clock이 정확히 안돠고 99000001 이런식으로 클록이 나오는데 이는 에러 코드에 나오는 클록을 그대로 복사 붙여넣기 하시면 해결이 됩니다.DDR3 메모리가 점차 단종 수순을 밟으면서 zybo z7-20도 단종될 것 같습니다. KV260을 사고 싶었는데 자료가 없어서 망설이시는 분을 위한 좋은 길잡이가 되었으면 좋겠습니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
ready valid handshake 에서으 질문
안녕하세요 🙂[1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요.[2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂[3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.) ================ 다음 내용은 읽어보시고 지우시면 됩니다.=================질문 내용을 작성해주실 때, 위의 3단계로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!!현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================22강 3분 42초 쯤에 해당되는 내용으로,실습코드인 power_of_8_hs.v 에서 볼 수 있듯assign s_ready = ~m_valid | m_ready;s_ready가 m_ready만 요구하지 않고~m_valid와 or 연산을 하고 있는데, 이런 case가 있을까요?곰곰이 생각을 해봐도 잘 이해가 되지 않아서 여쭤봅니다.
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
address bit수에 대해서 질문 드립니다.
Direct Mapped chache메모리 설계하기 스텝에서주어진 조건에 맞춰서 address 와 data bit수를 정하는 부분에서 막혔습니다.제가 이해한게 맞는지 확인 부탁드립니다.우선 메모리 사이즈란 DRAM의 사이즈로 이해했습니다.그래서 디램의 사이즈가 256B이므로 하나의 메모리가 4B로 처리된다면, 디램은 총 64개의 메모리를 저장할 수 있는 것으로 생각했습니다. ( Blocks = 64 ) cache size는 SRAM 즉, 캐시메모리의 사이즈로 이해했습니다. 그렇다면, 캐시메모리에서 저장가능한 갯수는 하나의 메모리가 4B를 담고 있으므로 총 4개 ( 4sets)가 됩니다. 데이터를 주고 받는 것에 필요한 라인을 설정해야 하는데, 데이터라인과 어드레스 라인은 서로 다른 것으로 이해했습니다.어드레스는 상위비트부터 순서대로 tag,index,byte offset으로 분류됩니다.tag란 DRAM의 어느 곳에서 온 메모리인지를 담고 있는 데이터 입니다. 캐시메모리는 총 4개의 데이터를 저장 가능하며, 하나의 cache line당 16개의 데이터를 맵핑할 수 있습니다.따라서 tag에는 총 4개의 비트가 필요합니다.index는 4개의 캐시라인에 대한 주소를 의미하므로, 2개의 비트가 필요합니다.마지막으로 byte offset은 블록 사이즈가 4바이트이므로, 2개의 비트를 사용해야 할 것으로 보입니다. 하여 어드레스에 해당하는 비트 수가 총 8개여야 할 것 같습니다. 근데 어드레스로 보이는 코드의 비트수가 6개여서 질문드립니다. 혹시 byte-offset은 고려하지 않은채로 설계가 된건가요?
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
TPSRAM,DPSRAM TB코드 문법 질문
begin: tpsram_write @(posedge clk); for (int i=0;i<DEPTH;i++) begin we <= 1; wa <= i; wd <= 'h10+i; @(posedge clk);//필요한 이유 end we <= 0; @(posedge clk); end@(posedge clk); for문 마지막과 begin문 마지막에 필요한 이유가 뭔가요?주석 처리 후 시뮬레이션을 돌려보니 for문에 맞게 wa값과 wd값이 업데이트가 되지 않았습니다. 혹시 system verilog에서 for문과 begin문을 작성하면 @(posedge clk)을 해주는 것이 규칙인가요?
-
미해결디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
CPU모듈 Timing Analyze
안녕하세요. 강의 잘 듣고 있습니다.다름이 아니라 제공해 주신 CPU모듈의 타이밍 분석을 해보고 싶은데 알려주신 방법으로 타이밍 분석을 하면No paths to report 라고 뜨고 데이터가 나오지 않습니다. 어떻게 해결할 수 있을지 궁금합니다.
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
sdc파일 확인을 위한 timing delay코딩 과정에 관해 질문 드립니다.
create_clock -name root_clk -period 20 [get_ports {clk}]derive_pll_clocksderive_clock_uncertainty 챕터3의 마지막 tool시연 영상에서 해당 부분을 입력하고 run synthesis하는 과정에서 막혔습니다.저는 이미 비바도가 설치되어 있기에 해당 프로그램을 바탕으로 실습 진행중이었습니다.다만 비바도의 경우 xdc파일 형태로 런이 진행되고, derive_pll_clocksderive_clock_uncertainty위의 두 문장은 적용되지 않는 다는 것을 알게 되었습니다.이럴 경우 어떤 코드를 작성해야 해당 기능을 대체할 수 있을 까요? 양질의 강의 감사 드립니다.
-
미해결디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
과제 질문[Wrapper를 활용하여 FPGA vs. ASIC 각각의 모델 설계하기]
안녕하세요 첫 과제 진행에 있어 질문이 생겨 남깁니다. 제가 궁금한 점은 '왜 같은 SRAM 모델을 똑같이 인스턴스 시켜주냐' 입니다. 제가 이해한 바는 `define 한 줄로 시뮬레이션, FPGA, ASIC을 선택할 수 있게 만드는 것이 이번 과제라고 생각합니다. 근데 동일한 모듈은 그저 인스턴스 해준다는게 의미가 없다고 생각들어 질문드립니다. 상황에 맞게 다른 모듈을 정의해주어야하는게 아닌가요? 예를 들어 시뮬레이션에서는 시뮬레이션 전용 SRAM 모듈을 인스턴스 해줘야하고 FPGA에서는 FPGA 전용 모듈을 인스턴스 해줘야한다고 생각합니다.제 생각이 틀린 것일까요?
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
cache 테스트벤치 코드 관련하여 질문 드립니다.
제 화면에는 삼코치님의 화면대로 run all이 뜨지 않는데 해결할 수 있는 방법이 있을까요?
-
미해결디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
vivado
안녕하세요. tool 관련 질문드립니다.vivado로 진행해도 상관이 없을까요?또한 zynq z7-20 보드가 있어 직접 설계한 부분을 hw에서 구현출력값을 확인하고 싶어 질문드립니다. 앞으로 프로젝트 진행과정에서 직접 hw구현 시 어떠한 방식으로 확인 가능할까요?예를 들어 serial 통신이나 ila같은 방식으로 확인하는게 좋을까요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
강의 연장 요청이 가능할까요?
강의를 늦게 듣거나 여러번 보고 싶어서 강의 연장 요청을 하려고 하는데 가능할까요
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
ready신호와 valid신호가 handshake일어나는 부분
안녕하세요 🙂[1. 질문 챕터] : [HDL 22장] 모듈간의 정확한 Data 전달을 위한 Valid / Ready Handshake I/F - 실습편 1~5분 basic module에서 [2. 질문 내용] : Valid / Ready Handshake I/F란 valid신호와 ready신호가 동시에 1일때만 데이터가 전달이 되게 하는 인터페이스인테어떤 부분이 ready신호와 valid신호가 handshake일어나는 부분을 의미하는지 이해가 안갑니다. m_ready가 1이기만 하면 아래 플립플롭에서 S_data가 무조건 출력되서 valid신호와 관계없이 데이터가 전달되지 않나 싶습니다. [3. 시도했던 내용, 그렇게 생각하는 이유] : 동시에 1 이여야만 된다라는 내용이 있으려면 적어도 and gate가 하나는 있어야하지 않나요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
DMA코드 파라미터 질문
안녕하세요 🙂공유해주신 코드파일 중 최종 PRJ코드 질문 드립니다PRJ-HW-matbi_dma_ip-matbi_dma_wrapper 여기서 파라미터 설정에 의문이 있습니다!parameter integer C_M00_AXI_DATA_WIDTH = 32 로 설정하는 이유가 궁금합니다~!(제 생각에는 64일 것 같았습니다!)
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
SRAM 시뮬레이션 결과가 이상해서 질문드립니다.
안녕하세요. sram 소스 코드를 위처럼 작성해봤는데,mem에 저장이 안돼서 read도 제대로 안되고 아래처럼 시뮬레이션 파형이 나옵니다.테스트벤치는 주신 자료대로 작성했고 소스코드만 제가 작성해봤는데, 주신 소스코드랑 비교해봤을 때도 크게 다른 부분을 모르겠어서요.코드의 어느 부분이 잘못됐는지 알려주시면 감사하겠습니다!
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
CPU강의 관련하여 질문드립니다.
안녕하세요 삼코치님. 좋은 강의 잘 듣고있습니다. 강의 수강 중 궁금한 점이 있어 질문드립니다. 1. instruction과 PC에서 4bit 씩 더해서 다음 instruction을 처리한다고 설명하셨는데, 왜 4bit씩 더해지는 것인지 궁금합니다.instruction이 32bit= 4byte이므로 PC에서 4byte씩 더해져야 하는 것으로 이해하였습니다.그래서 32bit안에 opcode와 메모리 주소가 들어있는데, 이걸 4bit씩 끊으면 다음 주소로 넘어간다는 게 이해가 가지 않습니다. CPU에서는 왜 read write가 아닌 load와 store를 사용하는 건가요? 행위는 동일하지만 단어만 다른것인지, 서로 전혀 다른 개념인지 궁금합니다. 3. 설계 프로젝트에서 data mem과 reg file이 언급해주신 store와 write back이 저장하는 장소의 차이라고 생각하면 될까요? (store는 메모리, write back은 cpu reg에 저장) 긴 글 읽어주셔서 감사합니다!
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
buffer에 관하여 질문드립니다.
안녕하세요 삼코치님. 강의 중 궁금한 점이 있어 질문드립니다. 해당 강의에서 주어졌듯이wire not_in; assign out=~not_in;assign not_in=~in; 의 경우 중간에 인버터가 들어가게 되는데 이를 버퍼라고 할 수 있는건가요? wire not_in; assign out= not_in;assign not_in=in; 으로 했을 때 그림대로 라면 낫 인버터가 아니라 그냥 인버터가 들어간다고 생각되어서 질문드립니다!