本文总结了一些可以优化时序的方法,主要是针对xilinx的virtex系列FPGA以及ISE软件。当然,对于其他厂商的FPGA和相应的开发工具,这些方法也是有一定借鉴意义的。这些优化方法全部来自一些实际项目的实践中,具有较强的实用性,希望能给大家带来帮助,也希望各位同行能提出建议和更好的解决办法,促进大家共同进步!
优化方向一:合理使用Blcok RAM和Distributed RAM
1. 均衡Block RAM和Distributed RAM的使用。如果Block RAM使用的过多而Distributed RAM使用的较少,建议将一些小型的FIFO用Distributed RAM来实现;如果Distributed RAM使用的过多,而Block RAM有大量富余,建议将一部分由Distributed RAM实现的FIFO改用Block RAM来实现。
2. 当需要使用Block RAM来构建大型的FIFO用作缓存时,由于Block RAM也是分布在FPGA的不同位置,当构建一个FIFO使用的RAM太多时,会给布局布线带来很大的压力。所以建议实施的时候可以用多个中型的FIFO带代替一个大型的FIFO。
3. 不宜使用distributed RAM构建大位宽或者大深度的FIFO。 |