AMD FPGA设计优化宝典:面向Vivado/SystemVerilog
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.5 性能指标

对于一个FPGA设计,我们该如何评估其性能呢?通常会用到这样几个指标:设计可运行的最高频率(Fmax)、输入到输出的时钟周期数(Latency)、吞吐率(Throughput)、资源利用率和功耗(Power)。

Fmax可通过时序报告计算得出。在Vivado中,可通过命令report_timing_summary生成时序报告,如图1-46所示。当WNS、WHS和WPWS均大于或等于0时,表明时序已收敛。

图1-46

图中WNS为0.171ns,若时钟周期为10ns,那么Fmax

显然,WNS越大越好。

输入到输出的延迟通常用时钟周期个数来表示,称为Latency,该指标也反映了设计的流水级数。如图1-47所示,输入x0对应的输出为y0,输入x1对应的输出为y1,从输入到输出需要3个时钟周期,故Latency为3。而相邻两个输入之间间隔的时钟周期个数则反映了该设计的吞吐率。显然,Latency越小越好。但Latency小意味着流水级数低,这可能会导致Fmax降低。

图1-47

在Vivado下,可通过命令xilinx::designutils::report_failfast查看资源利用率的指导值和实际值,如图1-48所示。图中Guideline列对应指导值,Actual列对应实际值,Status列若为REVIEW,则表明其所在行对应的资源利用率超过指导值。

图1-48

将图1-48中的信息提取出来形成表1-7。表中LUTRAM表示分布式RAM,SRL表示用LUT实现的移位寄存器。根据此表,我们可以在设计初期进行芯片选型。需要注意的是,Block RAM、UltraRAM和DSP48三者资源利用率都不能超过80%,若超过了80%,则要保证三者平均利用率低于80%。

表1-7

此外,还要考查设计功耗是否达到预期目标。在Vivado下,可通过命令report_power生成当前设计的功耗报告,如图1-49所示。提供的信息越多,例如,通过仿真提供.saif文件等,可使报告的可信度越高。

图1-49

这些性能指标不是独立的,而是相互影响的。有时为了提升Fmax而增加Latency或资源利用率;有时为了降低资源利用率而牺牲Fmax。无论如何,最终的目标是实现时序和功耗均收敛。时序收敛意味着设计达到了预期的Fmax,功耗收敛意味着设计的功耗在目标范围内。