前言:本文均为作者原创,内容均来自本人的毕业设计。未经授权严禁转载、使用。里面的插图和表格均为作者本人制作,如需转载请联系我并标注引用参考。分享仅供大家学习和交流。
已知本设计所采用的FPGA验证平台为Nuclei DDR200T开发板上的Xilinx XC7A200TFBG484-2 FPGA核心。在Vivado里选择此FPGA核心,与环境中所选择FPGA型号的硬件资源规范相结合,利用资源利用率(Utilization)的功能,模拟上版后的性能、面积,确定所设计的处理器占用了哪些FPGA核心内部的硬件资源(如查找表、存储器、I/O接口等)。
可直接在Vivado界面下Project summary中查看本设计在FPGA核心内部的资源利用率,流水线各单元详细的资源利用率如图3-16所示。我们会考虑FPGA资源的余量作为处理器设计复杂度的指标,逻辑资源余量主要是LUT,slice的余量情况。本设计所使用的XC7A200TFBG484-2 FPGA核心中CLB由两个SLICE构成,我们查看LUTs和SLICE都不超过50%,符合逻辑资源占用率余量要求。

综合后,系统资源利用率占比图如图3-15所示,可以看出蜂鸟E203占用FPGA核心的资源主要有:LUT、LUTRAM、FF、BRAM、IO、BUFG、MMCM。其中:

导出网表文件.edf文件,可以从该文件的部分截图中看到板载的LUT、FDCE情况和连接输入输出信息,不包含Verilog源码,所以网表文件一般用于设计调用IP。
功耗(Power)等于处理器上的电流值与电压值的乘积,可以反应处理器最大负荷运行、满载工作时电流热效应造成热量释放的大小指标,单位为瓦(W)。总功耗由静态和动态两部分组成:静态功耗包括晶体管物理特性上的泄露、每一个I/O引脚、时钟管理单元;动态功耗包括工作时钟频率、输出负载、处理器使用的电压电流、处理器在FPGA内部逻辑和布线资源的占用。如图3-17所示,所设计的单核32位RISC-V处理器的系统总功耗为0.277W,其中,动态功耗(Dynamic)0.13W占系统的47%,静态功耗(Device Static)0.148W占系统的53%。
结温(Junction Temperature)是处理器大负荷运行、满载工作时实际半导体裸片的最高温度。结温一般估测方法是从晶圆到封装外壳间的散热以及热阻。如图3-17所示,所设计的单核32位RISC-V处理器的结温为25.7℃,符合预计设计需求(一般要求50℃之内)。

功耗优化是在避免其对时序的影响的情况下最大限度地降低处理器在FPGA上板后的功耗,同时。Vivado中提供了功耗的优化方法,在TCL命令窗口输入布局前与布局后的功耗优化power_opt_design。对设计文件进行优化,以降低目标器件的功耗要求。运行命令后的控制台如图3-18所示

Vivado的功耗优化主要在动态功耗的优化上。首先,实现结构和方法的优化,在保证性能的基础上,自动规划板载资源使得资源占用比率达到最小。其次,优化存储器的功耗如BRAM、RAM存储器等,减少所添加的额外逻辑防止读写冲突。最终的功耗报告如图3-19所示,可见优化后的功耗为0.265,比优化前下降了0.012W。

布局,将逻辑网表中的基本逻辑单元映射到FPGA芯片内部固有的硬件逻辑模块上;布线,将FPGA核心上布局好的硬件逻辑模块做连线连接,也会进一步优化硬件逻辑模块的布局。Vivado提供了较为简单的自动化布局布线操作,可以自动在速度最优和面积最优之间做出选择,使得FPGA核心内对硬件逻辑模块的连线合理、正确。在Vivado下打开设计实现后的设备视图(Device Viewer),如图3-20所示,可以看到各资源放置紧密而有序,布局布线整齐合理。


自动化布局布线后,Vivado会自动生成相关报告,提供有关设计中布局布线的结果和门级网表文件。布局布线后需要导出布局布线包,生成为一个DCP文件,但这个DCP文件包含netlist、xdc file、physical database,生成的DCP包如图3-21所示。

Timing Summary(全局的静态时序分析报告)一共有三个报告:Timing Summary、Clock Network、Timing Interaction。整体分为三个部分的:Setup(设置时间,触发器的输入在时钟边缘之前保持稳定所需的时间量)、Hold(保持时间,是触发器的输入在时钟边缘后保持稳定所需的最小时间量)、Pulse Width(脉冲宽度,是时钟clk的高电平宽度和低电平宽度)。这三部分对于确保寄存器稳定输出非常关键。

时序报告如图3-22所示,可以发现,WNS为0值,WHS为正值0.056ns,WPWS为正值3ns,该三个值均为非负值,则说明能达到时序要求,即经过综合与布局布线添加时序后的工程工作正常。