개발 편의성을 위한 소소한 Tips/04 질의 응답 정리
[FPGA Q/A. 018] BRAM의 1cycle delay
설계독학맛비
2022. 1. 25. 15:56
반응형
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 를 제어하기 위한 부분은 설계자가 추가해 줘야겠죠?!
즐공하세요 :)
반응형