1.4.4 面积与速度的平衡与互换原则

这里的面积指的是一个设计所消耗的FPGA的逻辑资源数量,其直观的体现就是资源利用率报告。速度指的是设计在FPGA上稳定运行时所能达到的最高频率,也就是我们常说的Fmax,可间接地通过时序报告中的WNS(Worst Negative Slack,建立时间最小裕量,若此值大于等于0,说明建立时间收敛;若此值小于0,说明建立时间存在时序违例)换算获得。面积和速度这两个指标贯穿FPGA设计的始终,是设计质量评价的终极标准。

面积和速度是对立统一的。要求一个设计以最少的资源为代价运行在最高的时钟频率下是不可行的。科学的设计目标应该是在保证设计满足时序性能(能够达到预期的Fmax)的前提下,尽可能地减少设计所消耗的资源;或者在限定的资源用量下,使设计的时序裕量更大,即使Fmax更高。这两种目标充分体现了面积和速度的平衡思想。

面积和速度直接影响设计的质量和成本。如果一个设计的时序裕量很大,Fmax很高,那么设计就更为稳定,这对整个系统的质量是一种保障;另一方面,如果设计占用的资源很少,那么单位芯片上实现的功能模块就会更多一些,从而使芯片的需求数量减少,整个系统的成本也会随之下降。

面积和速度互换是FPGA设计的一个重要思想。从理论上讲,对于一个设计,如果Fmax远远高于实际需求,那么就可以通过功能模块复用减少整个设计消耗的逻辑资源,这其实就是用速度优势换面积节约。相反,如果一个设计对Fmax的要求很高,那么可以通过并行复制多个操作模块来提高Fmax,这其实就是通过增加面积换取Fmax的提升。那么,当面积和速度发生冲突时,该如何解决问题呢?此时,我们应遵循“速度优先”的原则。

为进一步说明,我们以计算两个向量的内积为例,这两个向量的长度均为4,表示为

A=[a0,a1,a2,a3]

B=[b0,b1,b2,b3]

两者的内积表示为

可见,计算长度为4的向量的内积需要4次乘法运算和3次加法运算。

从数据流的角度而言,如果数据顺序到达,可采用如图1-43所示的方案,仅用1个乘加单元。如果数据并行到达,则可采用如图1-44所示的方案,4个乘法器并行工作,乘法器的工作频率与输入数据采样率一致,此时,数据吞吐率最大。如果依然采用如图1-43所示的方案,就意味着需要将并行数据转换为串行数据,乘法器的工作频率将是输入数据采样率的4倍。

图1-43

图1-44

图1-43所示为串行方案,图1-44所示为全并行方案,前者消耗的资源最少,但并行数据流Fmax将受限,后者Fmax最高,但消耗的资源也最多。能否在面积与速度之间取得折中呢?答案是肯定的,这就是半并行方案,如图1-45所示。此时,对于4路并行数据,将其转为2路并行数据,即a0a2b0b2使用上部乘法器,a1a3b1b3使用下部乘法器。乘法器的工作频率将是输入数据采样率的2倍。

图1-45