FIFO的使用小讨论
时间:10-02
整理:3721RD
点击:
场景:数据是64bit位宽,以156.25M在FPGA内部流动;
设计1:用FIFO缓存,将64bit数据直接用,则FPGA内部运行在165.25M时钟域内,
设计2:用FIFO缓存,将64bit数据扩展成128bit,则FPGA内部运行在100M时钟域内,
讨论:如果并了位宽128M的FIFO,比64bitFIFO使用到2倍的BlockRAM,也就是说BlockRAM的分布更散了,增加了并位逻辑,但是时钟降低了约1倍,各位讨论下,是运行在156.25M*64模式下,还是运行在100M*128bit模式下更好?
设计1:用FIFO缓存,将64bit数据直接用,则FPGA内部运行在165.25M时钟域内,
设计2:用FIFO缓存,将64bit数据扩展成128bit,则FPGA内部运行在100M时钟域内,
讨论:如果并了位宽128M的FIFO,比64bitFIFO使用到2倍的BlockRAM,也就是说BlockRAM的分布更散了,增加了并位逻辑,但是时钟降低了约1倍,各位讨论下,是运行在156.25M*64模式下,还是运行在100M*128bit模式下更好?
自我感觉还是前者好
后者好吧
1. 从block ram的大小来看,宽度变宽了,深度可以降低一半,所以存储资源没有变化。 2. 增加了位宽转换模块,大约增加256bit的寄存器(或许可以更少)。
如果设计的FPGA内资源足够的情况下,降低时钟始终是最好的选择,因为设计更加容易收敛,时序更好,设计更稳定,因为运行的频率更高,缺点是功耗更大,甚至有些产品的FPGA跑不到这么高的速度,而且高速运行,系统或许不太稳定。
如果不考虑资源,频率低的好
不知道你用的什么型号,现在主流器件200MHz设计应该没有难度。
另外纠正一点,BRAM的宽度超过64/72,理论上必须多块BRAM去拼,不能光看总容量
觉得是前者好;
后者降低时钟也要付出时序上的代价。
156.25.。165.25.。?失误吧
