반응형

개발 편의성을 위한 소소한 Tips

    [FPGA Q/A. 025] timing violation

    Q 안녕하세요, 강의 잘 보고 있습니다. synthesis 끝난 후에 타이밍 데이터들이 report 되는데, 맛비님께서 타이밍 이슈가 없다고 말씀하셨습니다. 그 이유가 TNS, THS가 0이기 때문인건가요? 만약 맞다면 1n만큼의 TNS가 생기면 timing violation이 생겼다고 보면 될까요? 감사합니다. A 안녕하세요 :) Timing violation 은 Targeting 하는 frequency 를 met 하지 못하면 발생하게 됩니다. 예를들어 Target frequncy 를 100MHz 로 하고, 이는 10ns 입니다. FPGA 에 동작을 위해서는 Register to Register 사이의 Setup 과 hold time 이 10ns 안에 들어와야합니다. (setup, hold time 은..

    [FPGA Q/A. 024] board off on 시 bitstream 유지

    Q 안녕하세요 지난 강의 이후 현업으로 잠시 미루어 두었던 FPGA를 다시 공부하고 있습니다. 제가 가지고 있는 보드는 DIGILENT CORA-7S이며, LED BLINK부터 다시 하고 있습니다. 최종 BIT STRAEM까지 만들고 PROGRAM DEVICE까지 진행하여 동작을 확인하였습니다. 질문은 다음과 같습니다. BITSTREAM파일을 FPGA에 프로그램하고 전원을 종료한 후, 다시 전원을 인가하면 BLINK파일이 동작하지 않습니다. STANDALONE으로 동작시키기 위해서 별도의 프로그램을 진행해야 하는 것인가요? FPGA 내부에는 FLASH가 없어서 외부 메모리를 사용해서 동작시켜야 하는것인가요? MCU계열(STM32, DSP)등만 사용했어서 많은 것들이 생소해 궁금한 것들이 많습니다. 답변을..

    [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 을 사용할때, ..

반응형