相关阅读
SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm=1001.2014.3001.5482
在SDC命令详解:使用create_clock命令进行约束一文的最后,我们谈到了针对理想(ideal)时钟,可以使用set_clock_transition命令直接指定理想时钟到达各触发器时钟引脚的转换时间(设置了时钟对象的clock_rise_transition、clock_fall_transition、clock_min_rise_transition、clock_min_fall_transition属性),而不是在时钟端口使用set_input_transition命令(即使使用了,对理想时钟也是无效的),因为时钟树尚未创建,时钟端口的高扇出会导致,任何在时钟路径上的转换时间和延迟的计算都是毫无意义的。如果想要移除转换时间,使用remove_clock_transition命令。
本文针对Design Compiler,但该命令同样存在于PrimeTime、IC Compiler等工具中,它们大致相同,略有差别。set_input_transition命令的BNF范式(有关BNF范式,可以参考以往文章)为:
set_clock_transition transition clock_list [-rise] [-fall] [-min] [-max] //注:该命令的clock_list参数一定要放在transition参数后-rise选项用于指定转换时间应用于时钟的上升沿、-fall选项用于指定转换时间应用于时钟的下降沿。如果这两个选项都没有指定,转换时间同时应用于时钟的上升沿和下降沿(相当于它们同时指定)。
注意,这里的上升、下降沿指的不是时钟对象本身的上升、下降沿,而是到达各触发器引脚的上升、下降沿(这里要考虑时钟在时钟路径上传播时可能因为单元的单调性出现翻转,即以到达触发器时钟引脚的时钟信号为准)。
-max选项用于指定转换时间应用于最大延迟分析(一般情况下,如果不开启on_chip_variation,这指的是建立时间检查)、-min用于指定转换时间应用于最小延迟分析(一般情况下,如果不开启on_chip_variation,这指的是保持时间检查)。如果这两个选项都没有指定,转换时间同时应用于最大延迟和最小延迟分析(相当于它们同时指定)。
下面举例说明set_clock_transition命令的具体用法,考虑两个触发器组成的简单结构,其中第一个触发器即发射触发器由clk1时钟控制,第二个触发器即捕获触发器由clk2时钟控制,有关发射触发器和捕获触发器的内容,可以看以往的文章静态时序分析:建立时间分析-CSDN博客,具体电路结构如图1所示。
图1 简单的例子
现在我们只研究从t_reg的时钟端到data_out_reg的数据输入端的时序路径。首先使用下面的命令在两个时钟端口上分别创建两个理想时钟对象。
create_clock -period 10 -waveform {5 10} [get_ports clk1] create_clock -period 10 -waveform {5 10} [get_ports clk2]然后我们使用下面的命令,分别设置这两个理想时钟对象的时钟转换时间,在这里为了区分,设置的数值是不同的,并且转换时间被设置到建立时间和保持时间分析的上升沿和下降沿这四种情况上。
set_clock_transition 0.1 [get_clocks clk1] set_clock_transition 0.2 [get_clocks clk2]可以使用report_clock -skew命令查看定义了的理想时钟转换时间,如图2所示。
图2 转换时间报告
现在我们使用下面的命令改变clk1时钟用于保持时间分析的转换时间,结果如图3所示。
set_clock_transition 0.5 -min [get_clocks clk1]图3 转换时间报告
可以使用report_timing命令报告时序路径的建立时间分析、保持时间分析的时序报告,如图4和图5所示,注意此时要使用-transition_time选项才能显示出时钟端口的转换时间。
图4 建立时间的时序报告
图5 保持时间的时序报告
注意,set_clock_transition命令只应在预布局阶段(pre-layout)使用,即时钟树综合(CTS)前。一旦时钟树综合完成,使用set_propagated_clock命令将理想时钟变成传播时钟后,时钟上的转换时间属性就会失效,如果需要移除时钟上的转换时间属性,使用remove_clock_transition命令。
该命令仅对当前场景生效,换句话说只能在当前场景指定理想时钟到达各触发器时钟引脚的转换时间。
关于场景的更多介绍,可以参考下面的博客。
Design Compiler:多工艺角和多工作模式(Multicorner-Multimode, MCMM)https://blog.csdn.net/weixin_45791458/article/details/149578771?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522e3267dcc7cc26380435f53994dc8b9b8%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=e3267dcc7cc26380435f53994dc8b9b8&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-149578771-null-null.nonecase&utm_term=MCMM&spm=1018.2226.3001.4450