반응형
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 을 사용할때, 중간에 mux 가 붙게 됩니다. 이때, Timing Violation 의 발생원인이 됨으로, F/F 을 추가하여 latency 를 늘리게 됩니다.)
또한 BRAM 모듈 생성시 Latency 부분을 수정할 수 있습니다. (몇 Cycle 로 할지)
참고문서 : https://www.xilinx.com/support/documentation/ip_documentation/blk_mem_gen/v8_3/pg058-blk-mem-gen.pdf
대신 latency 를 늘리신 만큼, BRAM Controller 모듈에 늘린 latency 를 제어하기 위한 부분은 설계자가 추가해 줘야겠죠?!
즐공하세요 :)
반응형
'개발 편의성을 위한 소소한 Tips > 04 질의 응답 정리' 카테고리의 다른 글
[Verilog HDL Q/A. 020] Testbench 에서의 input 신호 handling. # 10, @(posedge clk) 에 따른 DUT 결과의 다름. (Verilog Race Condition) (0) | 2022.02.03 |
---|---|
[Verilog HDL Q/A. 019] Equality operators ==, != , ===, !=== (0) | 2022.01.28 |
[FPGA Q/A. 017] always @(*) 문장 질문 (0) | 2022.01.21 |
[FPGA Q/A. 016] 강의에 사용한 보드로 추가적으로 공부를 하고싶은데... (0) | 2021.12.23 |
[FPGA Q/A. 015] bram관련 질문입니다 (* ram_style = "block" *) reg (0) | 2021.12.23 |