1.衡量FPGA的性能以及是否满足实际需求,按 性能=逻辑数X速度+BRAM数X系数来计算,BRAM系数比较麻烦,一般只按 性能=逻辑数X速度 来计算。这是一个非常重要的概念,另一重意思就是 面积与速度的积对于一个项目而言是个定数。原始设计速度为100M,完成同样的事,速度跑到400M时理论上资源可以少到1/4。

 

2.仔细计算好流水线,尽量提高编译报告的速度。速度可以换面积,同时也可以提高稳定性。编译报告的速度越高越好。一般而言在Spartan系列,应达到150MHZ以上,VIRTEX-5系列应达到400MHZ以上。无论实现什么功能,这些指标都是可以实现的。举个例子,virtex-5,-1等级,1级逻辑速度为530MHz,2级逻辑为430MHZ,只要尽量控制在2级逻辑,400MHz是没多大问题的。两级逻辑最多可以有6X6=36个输入量,太复杂的逻辑编译器不好优化,一般控制在12个输入量以下就可以了。

 

3.提高资源利用率,对于LUT-6型的器件,一个关键衡量参数就是编译后报告的

NUMBER of fully used LUT-FF pairs: ,这个参数,一般在50%左右,设计合理的一般可以达到60%以上。小于40%就是设计有问题,需要更改设计思路。这个值越高,一般报告的速度也越高,同时也会越省面积(参考第1条)。一个设计不合理的项目,假如这个值为20%,那么可以认为,完成同样一件事,资源可以少到1/3(按60%计算),同时速度可以提升到3倍。

 

4.节省资源的一个重要方法是并串转换、时分复用。

 

5.提升性能未必要并行处理,因为合理设计的流水线会显著的提升性能。

 

6.如无乘法及很宽的加法,尽量不要用DSP48,呵呵,反其道而行之,因为用这些部件的连线延迟会是影响速度的主要因素,同时也会造成布线困难。