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

[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 을 사용할때, 중간에 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 를 제어하기 위한 부분은 설계자가 추가해 줘야겠죠?!

즐공하세요 :)

반응형