반응형

개발 편의성을 위한 소소한 Tips/04 질의 응답 정리

    [Verilog HDL Q/A. 023] 인프런 맛비 코딩시 사용하는 스킬..?

    Q 혹시 2:46초 쯤에 라인 한번에 잡아 주석 처리하는 방법과 변수 자동완성 기능은 어떻게 켜두는지 궁금합니다ㅠㅠ 변수 자동완성 기능이 ctrl + p 를 누르면 되는것은 찾았지만.. 입력중에 활성화 되는 방법이 보이지 않아 이렇게 질문을 남깁니다. A 안녕하세요 :) 많이 여쭤보시는거라, 링크로 답변드릴께요. 1. 주석처리 방법 https://inf.run/iPhx 2. 자동완성 https://blog.naver.com/chacagea/221043852994 즐공하세요 :)

    [Verilog HDL Q/A. 022] BRAM에 관해서 질문하고 싶은 것이 있습니다. (IP catalog 와 제공한 BRAM 코드의 차이)

    Q 안녕하세요! 맛비님. 너무 유익한 강의 감사드립니다. 저가 이번 강의를 복습하면서 궁금한 점이 있는데요. 맛비님 블로그를 봤을 때 BRAM을 IP catalog에서 불러와서 쓰셨는데 강의에서는 직접 설계하셨습니다. https://blog.naver.com/chacagea/221950980467 IP에서 BRAM을 불러온 것과 직접 BRAM을 설계하는 차이가 뭔지 궁금합니다. 또 실제 설계함에 있어서 어느 방법을 더 많이 쓰는지 궁금합니다. A 안녕하세요 :) 두 가지 방법다 유효하구요. 동일한 BRAM 을 사용하는 것이기에 "FPGA 의 Implementation 결과" 차이는 없습니다. FPGA 에서 20장에서 사용했던 BRAM 코드를 그대로 사용하구요. IP Catalog 보다 드린 Verilog..

    [Verilog HDL Q/A. 021] reset을 negative로 주시는 이유가 뭐죠? positive에는이미 clk이 할당되있어서그런가요?

    Q reset을 negative로 주시는 이유가 뭐죠? positive에는이미 clk이 할당되있어서그런가요? A 좋은 질문입니다. 설계자가 positive edge reset, negative edge reset 사용 여부를 결정할 수 있구요. 저는 negative edge reset 을 사용한 것 뿐입니다. (으잉?) 상황에 맞게 사용하자가 저의 답이구요. - positive edge 사용시 유리한 예 (Xilinx FPGA) Active-high vs Active-low? Active-high recommended If possible, always use active-high resets (as active-low resets require an inversion adding a LUT in t..

    [Verilog HDL Q/A. 020] Testbench 에서의 input 신호 handling. # 10, @(posedge clk) 에 따른 DUT 결과의 다름. (Verilog Race Condition)

    Q 안녕하세요. 이번에 테스트벤치 작성하면서 궁금한 것이 있어서 질문드립니다. 먼저 i_run신호를 강사님께서 작성하신대로 이렇게 작성하고 시뮬레이션을 돌리면 다음과 같이 나옵니다. 근데 위의 코드를 이렇게 바꾸면 이렇게 나옵니다. 저 두개의 코드는 같은 의미가 아니였나요? 왜 이렇게 나오는지 궁금합니다. 또, 두개의 테스트 벤치중에서 어떤게 맞는 건지 궁금합니다. A 안녕하세요 :) 이런 응용을?! 이럴 수 있겠다 생각이 드네요. 결론부터 말씀드리면, Testbench 에서의 현재 수정하신 (#10 i_run) "i_run 신호는 Clock 에 동기화 되지 않았다" 입니다. 저 두개의 코드는 같은 의미가 아니였나요? #10 과 posedge clk 는 현재 simulation 상에서 같은 time 을 ..

    [Verilog HDL Q/A. 019] Equality operators ==, != , ===, !===

    Q testbench에서 if의 조건문에서 !== 의 연산자를 사용해주셨는데 !== 보통 잘 사용하지 않는 걸로 권장하는 걸로 알고 있습니다! 왜 굳이 != 말고 !==을 사용하셨는지 궁금합니다! A 시간이 있어서 미리 작성드립니다. IEEE Std (1800-2009), section 11.4.5 "Equality operators" For the logical equality and logical inequality operators (== and !=), if, due to unknown or high-impedance bits in the operands, the relation is ambiguous, then the result shall be a 1-bit unknown value (x). ..

    [FPGA Q/A. 018] BRAM의 1cycle delay

    Q "BRAM을 통해서 read된 data가 valid해지는 시점이 1 cycle 뒤이다." 의 이유가 Internal Memory(BRAM)의 Latency가 일반적으로 1cycle이기 때문인가요?? A 안녕하세요 :) 문서에 자세히 나와있어요. 요약해 드리면, primitive BRAM 의 Read latency 는 1 cycle 입니다. BRAM 을 생성할때, Primitive cell (Read latency 1) 에 추가로 F/F 을 사용해서 Latency 를 키워서 생성가능합니다. 이는 혹시 BRAM I/F 상에서 Timing Violation 이 발생하면 추가 latency 를 사용하여 생성가능합니다. (다음 그림은 큰 size 의 primitive bram 보다 큰 BRAM 을 사용할때, ..

    [FPGA Q/A. 017] always @(*) 문장 질문

    질문자체가 좋은 답이라 그대로 적습니다 :) Q 먼저 좋은 강의 정말 감사합니다. always @(*) 문장 관련해서 질문을 많이 받으셔서 스트레스 받으실 듯 하여 관련 답변이나 링크들 읽어 보았습니다. 제가 이해한 바로는 다음과 같은데 혹시 잘못 이해한 부분이 있는지 여쭤보고 싶습니다. always@() 블럭 안에서 대입할 때, 왼쪽 피연산자의 Type은 reg여야 한다. always @(*)는 모든 입력이 포함된 것을 의미하므로 입력이 변경될 때 마다 항상 변경되는 것이기 때문에 모듈이 순차가 아닌 조합회로를 기술할 때 유용하다. always@(*)은 Combinational Logic이다. 마찬가지로 블럭 안에서 대입 시 왼쪽 피연산자의 Type은 reg여야 한다. 또한 always@(*)의 의미에..

    [FPGA Q/A. 016] 강의에 사용한 보드로 추가적으로 공부를 하고싶은데...

    Q 안녕하세요. FPGA 2개의 강의를 모두 수강 완료하였습니다. FPGA에 대해서 조금(?)은 가까워 졌다 생각이 듭니다. 수업이 끝나고 개발키트를 들여다 보고, 데이터시트도 보고, 자일링스 홈페이지도 보고, 구글링도 해보지만 예제나 방법 등이 설명된 자료찾는것이 쉽지 않은 것 같습니다. 여기서 질문입니다. 1. 개발 보드에 실장 되어 있는 USB, HDMI, Ethernet, SDcard, VGA 등 많은 소캣 단자들이 붙어 있습니다. 이것들을 활용해보고 싶은데요. 자료를 찾아보면 대부분 IP에 대한 언급을 하고있습니다. IP라는 것을 제작해서 사용해야 하는 것인가요? 아니면 ZYNQ의 PS단인 Arm core를 활용해서 이용해야하는 것인가요? 2. 자료를 검색하다 보니 pmod라는 확장 보드를 확인..

반응형