赞
踩
移位寄存器优化(默认)
移位寄存器优化包括多重转换。
•SRL扇出优化:如果SRL(基于LUT的移位寄存器)基元驱动扇出100或者更大,从SRL链的末端取一个寄存器级,并将其转换为寄存器原语。如果网络变成时间至关重要。一般来说,与高扇出寄存器驱动器相比,复制高扇出的寄存器驱动器更容易扇出SRL驱动程序。
•SRL和寄存器基元之间的转换:
○ SRL基元可以转换为逻辑等效的寄存器基元链使用值为true的SRL_ TO_。此变换通常用于增加可扩展以允许信号的可用流水线寄存器级的数量在设备内穿越长距离。增加寄存器级的数量可以以更高的延迟为代价来增加时钟频率。
可以使用将寄存器基元链转换为逻辑等效的SRL基元值为true的REG_TO_SRL属性。此变换通常用于减少信号在装置具有过多的寄存器级可能会造成拥塞或其他放置问题。
•流水线级在SRL和寄存器链之间的选择性移动:这些当流水线寄存器链由SRL和寄存器组成时,可以使用转换基元。寄存器级可以从SRL输入端上的SRL中拉出或推入或SRL输出。这允许增加对流水线寄存器结构的控制,以便在以及过流水线。
○ 流水线下:要通过SRL的输入从SRL中提取寄存器,请应用SRL属性SRL_STAGES_TO_REG_INPUT,值为1。为了从SRL输出中拉出寄存器级,应用值为1的SRL_STAGES_TO_REG_OUTPUT。
过流水线:要将寄存器推入SRL输入,请应用SRL属性SRL_STAGES_TO_REG_INPUT,值为-1。为了将寄存器级推入SRL输出,应用值为-1的SRL_STAGES_TO_REG_OUTPUT。
注意:只有在控制集兼容的情况下,才能进行从寄存器到SRL的所有转换。移位寄存器重映射这是一组优化,用于在离散寄存器链和之间转换移位寄存器SRL是基于LUTRAM的移位寄存器基元。这些优化指定全局从一种形式转换到另一种形式的阈值。优化用于平衡利用率寄存器和基于LUTRAM的SRL。SRL利用率高可能导致拥塞和转换寄存器的小型SRL可以通过以下方式帮助缓解拥塞,同时提高性能提供离散寄存器以覆盖关键路径的更多距离。然而,拥堵可能当寄存器利用率变得过高时再次出现。
将小型srl转换为寄存器:对于此优化,请使用max_depth_srl_to_fs模式:
○ opt_design-srl_remap_modes{{max_depth_srl_to_fs<depth>}}
○ 这里,深度<depth>和更小的所有SRL都被重新映射到寄存器链。
•将大型移位寄存器链转换为SRL:为此优化,请使用min_depth_ffs_to_srl模式:
○ opt_design-srl_remap_modes{{min_depth_ffs_to_srl<depth>}}
○ 这里,所有大于depth<depth>的寄存器链都被重新映射到SRL基元。
•自动目标利用率优化:此模式使用以下语法:
○ -srl_remap_modes{{target_ff_util<ff_util>target_lutram_util
<lutram_util>}}
在这里,您可以为寄存器和LUTRAM指定百分比利用率目标(0到100)。如果当前利用率超过目标,Vivado将从过度利用的资源类型转换为另一个直到达到利用率目标。从SRL转换为寄存器时,Vivado从最小的SRL开始。当从寄存器转换为SRL时,Vivado以最大的寄存器链。
注意:max_depth_srl_to_fs和min_depth_ffs_to_srl可以同时使用,但不能使用具有目标利用率设置。
DSP寄存器选择
此选项用于对DSP切片流水线、输入和输出进行各种优化寄存器,以改进DSP片内以及DSP片与DSP片之间的时序。下表列出了可用的优化。
注:不适用于Versal。
控制集缩减
具有多个唯一控制集的设计可能具有较少的放置选项,从而导致更高的功率和更低的性能。控制集较少的设计有更多的选择,并且在布局方面的灵活性,通常导致改进的结果。唯一的数量可以通过将control_SET_REMAP属性应用于以下寄存器来减少控制集具有驱动同步设置/复位引脚或CE引脚的控制信号。这会触发可选控制设置减少阶段,并将设置/复位和/或CE逻辑映射到寄存器的D输入。如果可能,该逻辑与驱动D输入的现有LUT相结合,从而防止额外的逻辑水平。
CONTROL_SET_REMAP属性支持以下值:
•ENABLE(启用)-将EN输入重新映射为D输入。
•复位-将同步S或R输入重新映射为D输入。
•ALL-与ENABLE和RESET相同。
•无或未设置-无优化(默认值)。
注意:当检测到CONTROL_SET_REMAP属性时,会自动触发此优化在任何寄存器上。
基于模块的扇出优化
扇出大于指定限制的网络驱动程序,作为此选项的参数提供,将根据逻辑层次结构进行复制。对于由高扇出网络驱动的每个分层实例,如果分层中的扇出为大于指定的限制,则层次结构中的网络由的副本驱动高扇形网的驱动程序。
重要!逻辑优化的每次使用都会影响内存中的设计,而不是综合设计最初打开的。
重新映射
Remap将多个LUT组合为一个LUT,以减少逻辑的深度。选择性的可以通过将LUT_ MAP属性应用于一组LUT来触发重映射。LUT链在LUT_ MAP值为TRUE的情况下,在可能的情况下被折叠成更少的逻辑电平。重新映射优化可以将属于不同逻辑层次级别的LUT组合为一个LUT以降低逻辑电平。重新映射的逻辑被组合到最下游的LUT中在逻辑锥中。此优化还复制了具有LUT_REMAP属性的LUT,这些LUT具有更大的扇出比转型前的一个。
注意:将LUT_REMAP属性设置为FALSE不会阻止LUT在以下情况下重新映射使用-remap选项运行opt_design。
侵略性重制版
与重映射类似,激进重映射将多个LUT合并为一个LUT,以减少逻辑深度激进重映射是比重映射更彻底的优化,并可能实现的逻辑电平比Remap低
重新同步区域
Resynth Area在区域模式下执行重新合成,以减少LUT的数量。重新同步顺序区域
Resynth Sequential Area执行重新合成,以减少组合和顺序思维方式执行重新同步区域优化的超集。
块RAM电源优化(默认)
块RAM功率优化可实现块RAM单元的功率优化,包括:
•将真正双端口RAM的未读端口上的WRITE_MODE更改为NO_CHANGE。
•应用智能时钟门控来阻止RAM输出。
仅属性优化
这是一个非默认选项,其中opt_design仅运行由opt_design属性。如果找不到此类属性,opt_design将退出并离开设计不变。opt_design列出了在使用此时触发优化的opt-design单元格属性选项
重新同步重映射
通过执行重新合成以减少逻辑深度,重新设计以改进时序驱动模式下的关键路径。这种基于时序的方法将通过扇出复制LUT并且以较长的优化运行时间为代价将较小的LUT折叠成较大的函数。
注:具有BEL约束的LUT仍将通过Resynth Remap进行优化。防止LUT优化使用BEL约束,将值为TRUE的DONT_TOUCH特性添加到LUT中。
选择设计
opt_design命令运行逻辑优化。
opt_design语法
opt_design示例脚本对内存中的设计执行逻辑优化,重写
在这个过程中。它还在完成优化后编写一个设计检查点,并生成定时摘要报告,并将该报告写入指定的文件。将优化限制为列出的类型使用命令行选项可以将优化限制为一个或多个列出的类型。对于例如,以下是跳过块RAM优化的另一种方法,该优化由运行违约
使用指令
指令为opt_design命令提供了不同的行为模式。只有一个一次可以指定指令。指令选项与其他选项不兼容。这个以下指令可用:
•探索:运行多次优化。
•ExploreArea:运行多次优化,重点是减少组合思维方式
•AddRemap:运行默认逻辑优化流,包括LUT重新映射,以减少逻辑电平。
•ExploreSequentialArea:运行多次优化,重点是减少寄存器和相关的组合逻辑。
•运行时间优化:运行最少的优化次数,交易设计性能更快的运行时间。
•NoBramPowerOpt:运行除块RAM功率之外的所有默认opt_design优化优化。
•ExploreWithRemap:与Explore指令相同,但包括Remap优化。
•默认:使用默认设置运行opt_design。
•RQS:指示opt_design选择report_qor_advancement指定的指令战略建议。要求在调用此指令。
下表概述了不同指令的优化阶段。
指令的优化阶段
使用-debug _log和-verbose选项
要更好地分析优化结果,请使用-debug _log选项查看的其他详细信息受optdesign优化影响的逻辑。日志显示其他逻辑消息由于常数值和要移除的无负载逻辑,其被减少。该日志还显示有关优化的详细消息,这些优化由于约束。使用-verbose选项可以查看由执行的所有逻辑优化的完整详细信息opt_design。-verbose选项默认情况下是关闭的,因为可能会有大量的其他消息。如果您认为-verbose选项可能会有所帮助,请使用它。
建议:为了提高大型设计的工具运行时间,请仅在shell或批处理模式而不是GUI模式。
重要!opt_design命令对内存中的设计进行操作。如果多次运行后续运行会优化上一次运行的结果。因此,必须重新加载合成设计然后添加-debug log或-verbose选项。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。