DC 编译命令

compile_ultra

具体使用方法参考DC manual

compile_ultra跟compile一样,是进行编译的命令。compile_ultra命令适用于时序要求比较严格,高性能的设计。使用该命令可以得到更好的延迟质量( delay QoR ),特别适用于高性能的算术电路优化。该命令非常容易使用,它自动设置所有所需的选项和变量。下面是这个命令的一些介绍:

compile_ultra命令包含了以时间为中心的优化算法,在编辑过程中使用的算法有:

A、以时间为驱动的高级优化(Timing driven high-level optimization);

B、 为算术运算选择适当的宏单元结构;

C、从DesignWare库中选择最好的数据通路实现电路;

D、映射宽扇入(Wide-fanin)门以减少逻辑级数;

E、积极进取地使用逻辑复制进行负载隔离;

F、在关键路径自动取消层次划分(Auto-ungrouping of hierarchies)。

compile_ultra命令支持DFT流程,此外compile_ultra命令非常简单易用,它的开关选项有:

-scan :做可测试(DFT)编辑;

-no_autoungroup :关掉自动取消划分特性;

-no_boundary_optimization :不作边界优化;

-no_uniquify : 加速含多次例化模块的设计的运行时间

-area_high_effort_script : 面积优化

-timinq_high_effort_script : 时序优化

上面的开关部分说明如下所示:

  • 使用compile_ultra命令时,如使用下面变量的设置,所有的DesignWare层次自动地被取消:

    set compile_ultra_ungroup_dw true (默认值为true)

    也就是说,你调用的一个加法器和一个乘法器,本来他们是以IP核的形式,或者说是以模块的形式进行综合的,但是设置了上面那么变量之后,综合后那个模块的界面就没有了,你不知道哪些门电路是加法器的,哪些是乘法器的。
      

  • 使用compile_ultra命令时,使用下面的变量设置,如果设计中有一些模块的规模小于或等于变量的值,模块层次被自动取消:

    set compile_auto_ungroup_delay_num_cells 100(默认值=500)

    也就是说,假设你有一个模块A是一个小的乘法器,并且调用了模块B,一个模块B是一个小的加法器,使用没有设置这条命令的情况综合,那么我们可以看到模块A中乘法器对应的门电路是哪些,同样也可以看到模块B的加法器是由哪些门电路构成的,模块A和模块B之间有层次、有界限;当设置上面的那条命令之后,我们就看不到模块A或者模块B之间的层次关系了,也看不到乘法器是由哪些门电路构成,或者说你看到了某一个与门,但是你并不知道它是构成乘法器的还是构成加法器的。


你可能感兴趣的:(DC脚本命令学习笔记)