绍兴免费网站建站模板,软文推广图片,建设一个商城网站,网站建设设计贵吗对进行时序路径、工作环境、设计规则等进行约束完成之后#xff0c;DC就可以进行综合、优化时序了#xff0c;DC在优化过程中主要的策略将在下面进行说明。然而#xff0c;当普通模式下不能进行优化的#xff0c;就需要我们进行编写脚本来改进DC的优化来达到时序要求。
DC…对进行时序路径、工作环境、设计规则等进行约束完成之后DC就可以进行综合、优化时序了DC在优化过程中主要的策略将在下面进行说明。然而当普通模式下不能进行优化的就需要我们进行编写脚本来改进DC的优化来达到时序要求。
DC进行优化的目的是权衡timing和area约束满足用户对功能、时序和面积的要求。 DC优化有很多策略包括对数据通道的优化对状态机的优化对布尔逻辑的优化等。 一、creating group path
默认情况下DC根据不同的时钟划分path group。但如果设计中存在复杂的时钟复杂的时序要求或者复杂的约束用户可以将所关心的几条关键路径划分为一个path group指定DC专注于改组路径的优化。也可以对不同的路径组设置不同的权重权重值从0到100。 默认情况下DC只优化关键路径即负SLACK最差的路径如果在关键路径附近指定一个范围那么DC会优化指定范围内的路径。由于优化的路径越多DC运行时间越长。一般范围设定为时钟周期的10%。 二、high-effort compile
high-effort compile能够让DC更加努力地达到所约束地目标该措施在关键路径上进行重新综合同时对关键路径周围地逻辑进行了restructure和remap。
high-effort指令有两种
compile ultra command附带两个option这两个option分别包含一些脚本提供额外地时序和面积地优化。option为area_high_effort_script option和timing_high_effort_script option。compile command附带一个optionmap_effort -high option。
High effort对关键路径地优化包括逻辑复制Logic Duplication和映射为大扇入的门单元Mapping to Wide_Fanin Gates。 此外incremental指令也可以提高电路优化的性能。如果电路在compile之后不满足约束通过incremental也许能够达到要求的结果。incremental指令只进行门级的优化而不是逻辑功能级会导致大量的计算时间但是对于将最差的负slack减为0这是最有效的办法。
为了在使用incremental指令时减少DC的运算时间可以将满足时序要求的模块设置为dont_touch属性。 dont_touch noncritical_blocks 对于有很多违例逻辑模块的设计通常incremental最有效。 compile -map_effort high -incremental_mapping 三、gate-level optimizations 四、Automatic Ungrouping
Ungrouping 取消设计中的层次移除层次的边界并且允许DC Ultra通过减少逻辑级数改进时序以及用过共享资源减小面积。常见指令如下compile_ultracompile -auto_ungroup。
compile会提供两种策略包括delay-based auto-ungrouping area-based auto-ungrouping。 五、adaptive retiming
如果在逻辑综合过程中发现设计的流水线划分不平衡就可以使用retiming策略在时序路径上前后移动寄存器以提高电路的时序性能。 由上图所示retiming可能会对面积产生影响则如果有违例的路径则调整寄存器的位置如果没有违例的路径则可以用来减少寄存器的数量。
DC在移动寄存器的优化中只能对有相同约束的寄存器进行调整如果两个寄存器约束不同则不能一起移动。移动后的寄存器在网表中的名字通常带有一个R的前缀和一个系列号。
retiming的策略不能和compile_ultra的以下option一起使用-incremental -top -only_design_rule
六、High-level optimization and datapath optimization 七、verifying functional equivalence