综合以及布局布线优化

逻辑设计者要在代码级考虑优化、可综合等问题。
代码首先是可用、可综合的;其次是优化;最后此案时考虑可移植和可复用的问题。
1.综合级速度与面积优化设置
综合级的速度和面积优化,是指决定了将要实现RTL的逻辑拓扑结构。
综合工具使用的是所谓的线负载模型,即基于各种设计环境的互连延时的统计估算。
基本综合的门级优化主要包括状态机编码、并行结构与交错多路选择器的选择以及逻辑复制等。
在整个布局布线完全完成之前,工具是无法和智能了解设计在目标器件中到底有多拥挤或者布局布线过程有多艰难。所以在编译流程的综合阶段,综合工具会提交一个特定的逻辑拓扑结构。
启示:当器件资源利用率接近100%时,综合级的速度优化可能不会总是产生一个更快的设计。实际上此时综合级的面积优化反而更可能获得一个更快的设计。
2.使用设计助手和优化顾问
在综合之前或者初次编译之后
综合以及布局布线优化_第1张图片
设计助手默认没打开,选中之后在工程编译的时候回自动执行规则检查,包括时钟、复位、时序收敛、同步设计结构、异步时钟域以及状态机等。可以编辑产生自己的检查规则。

优化助手:提供各种设计优化建议,主要有时序优化、资源优化和功耗优化三种类型。综合以及布局布线优化_第2张图片
提升设计结果的建议主要包扩:(1)设计性能方面,如最大运行频率Fmax、I/O时序(Tsu、Tco、Tpd)、保持时间、最小延时时间、恢复和移除时间等、
(2)资源消耗方面,如逻辑消耗、存储器消耗、DSP消耗、I/O消耗和布线资源消耗等。
(3)功耗方面。
启动时序优化顾问:
综合以及布局布线优化_第3张图片
综合以及布局布线优化_第4张图片
综合以及布局布线优化_第5张图片
3.综合网标表优化
网表优化就是针对设计的综合网标进行优化。
网表是指使用了Alter定义的原语来描述的设计。
综合以及布局布线优化_第6张图片
打开这个选项之后,会在quartusII综合时虽导入的网表进行更深入的优化。(针对第三方综合后生成的综合网表文件)
由于事先已经获取了综合网表,所以这种优化是对设计进行重新映射时对其实行不同的优化手段。
如果是quartusII自身生成的网表文件,打开是不会对设计有影响的。
该优化选项在打开原始映射结果并进行重新映射的时候仅针对逻辑单元以及普通的I/O元件(包括寄存器)。
设计者在HDL中加入的保留等综合属性也不能阻止该选项节点名称,因为这些属性并未写入综合网表汇总。如果不希望某个模块被重新映射时,可以给这个模块在assignment Editor施加Netlist Optimization设置为Never Allow
综合工具可以自动地完成在组合逻辑之间移动寄存器,从而平衡寄存器和寄存器之间的时序。
5.物理综合概述
****逻辑综合就是将HDL语言转换成不含布局布线信息且能够映射到物理器件的门电路过程。
因为逻辑综合没有包含布局布线的信息,所以对于逻辑综合后的时序信息仅限于转换后的门级电路或者器件内部逻辑单元或节点之间逻辑单元级数等延时相关,而对于内部互连时延时无法分析的。
***quartusII的编译主要分为综合和布局布线两步,综合阶段的优化主要是针对面积、速度或者连这个和兼之来对一个电路的逻辑结构进行优化,然后布局布线工具在电路进行布局布线时确保逻辑中的关键部分尽可能的靠近以及尽可能的使用最快的布线资源。
使用正常的流程综合工具无法获知只有布局布线工具才能看到的布线延时,但是在QuartusII软件汇总的物理综合却可以获取这些信息来设计进行优化。
***物理综合是通过改变网表的布局从而获得不错的综合效果。在不改变设计功能的情况下调整网表的布局或者修改、增加部分节点,从而达到改变设计性能、设计资源利用率的目的。 设计在布局完成之前,节点间的时延的预估是无意义的,
物理综合在带来性能提高或者面积利用率提高的同时也会带来编译时间的增加。在这里插入图片描述
这个可以针对特定的模块设置物理综合优化。
针对性能的优化:
(1)对组合逻辑施加物理综合,优化组合逻辑关键路径所经过的逻辑层数。只影响逻辑单元中的LUT,对于寄存器并无影响。FPGA中的主要逻辑资源是LE或ALM,要组成这些除了寄存器意外就是查找表(LUT)
(2)执行寄存器重定时,移动寄存器之间组合逻辑的位置来平衡寄存器之间的路径延时。
通过加流水也可以解决大组合逻辑延时问题,但是插入流水和寄存器重定时不同,插入流水是通过增加流水寄存器来达到目的,同时增加了路径延时,而寄存器重定时只是调整各级之间的逻辑位置。当设计属于高度流水设计,再使能该选项时候,也会对插入流水增加的寄存器进行重定时。
下列情况寄存器重定时是不起作用的:驱动硬逻辑的寄存器、影响时序约束的寄存器、驱动混合信号的寄存器、被约束位于同一LAB的寄存器等。
(3)执行自动异步信号流水
Recovery Time:异步信号在时钟沿到来前必须稳定的最小时间
Removal Time:异步信号在时钟沿到来后必须稳定的最小时间
所有的寄存器都有异步复位信号,当异步复位释放的时候,该异步信号很难保证同时到达所有的寄存器,这就导致这些寄存器的还在状态不可控,就会出现Recovery failure或者Removal failure.
这个选项就是通过自动在异步信号路径上插入流水寄存器来改善这些失败路径上的时序问题。
(4)寄存器复制
寄存器复制的时候,有时候也会同时复制一些组合逻辑。
通常FPGA的缓冲器都允许带高扇出网络,但是由于每个扇出的路径不同,所以关键路径上就容易出现时序问题。
由扇出路径带来的时序问题多于由扇出数目带来的时序问题。

针对布局布线的物理综合优化选项:
使得设计优化后可以适配到目标器件。

6.了解并理解布局布线工具及其对设计的优化
综合以及布局布线优化_第7张图片
整个Fitter流程的第一步是预先布局布线,主要是处理与器件高度相关的操作。接着Fitter将网表文件中的分立元件组合或串联成存在于器件中更大的资源模块。这些串联而成的较大资源模块被布局到FPGA内现存的资源模块中,当需要提升时或布线的通过率时布局感觉会通过微调允许LAB内部的逻辑单元移动到邻近的其他LAB中。
综合以及布局布线优化_第8张图片
综合以及布局布线优化_第9张图片
Auto fit在编译时候一旦约束满足且布线也符合要求,就会停止布局优化,节省编译时间
Standard Fit(最高等级),软件即使在要求得到满足的情况下也继续优化以期获得最佳的编译结果。如果设计添加了约束,那么编译的时候软件都会针对每项约束尽量超额完成,如果设计未添加任何约束,此时只会对时钟进行优化。
选择Fast Fit选项就会在布局过程汇总降低每项优化算法的部分额度完成编译,会减少编译时间,但是Fmax结果也会降低。
短路径约束用于指定最短的路径延时,当路径过快的时候,可能需要给路径增加部分延时来满足设计要求。
短路径优化归纳起来有两种:一是由寄存器和寄存器或寄存器和I/O之间的路径;另一种是由派生时钟带来的路径,这种路径可能会带来类似保持时间违规的问题。

优化I/O时序
I/O时序分析主要是分析输入到FPGA以及FPGA到输出两种路径,一般针对这类路径施加输入输出最大和最小延时约束。
在这里插入图片描述
综合以及布局布线优化_第10张图片

优化设计面积
寄存器打包是指允许编译器将一个寄存器和一个组合逻辑功能合并在一起,或者是将寄存器和I/O单元、RAM块或者DSP块组合在一起。
综合以及布局布线优化_第11张图片
综合以及布局布线优化_第12张图片
综合以及布局布线优化_第13张图片

你可能感兴趣的:(综合以及布局布线优化)