ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

SDC命令详解:使用set_timing_derate命令进行约束

SDC命令详解:使用set_timing_derate命令进行约束 相关阅读SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm1001.2014.3001.5482目录指定降额比例指定降额对象列表/集合指定沿指定早、晚条件指定路径的类型指定降额类型指定约束指定增量Multicorner-Multimode支持写在最后由于制造工艺的偏差一块晶圆(Wafer)上的各个裸片(Die)拥有不同的特征甚至一个裸片上的不同部位也可能出现偏差。前者称为全局工艺偏差(Global Process Variation)后者称为局部工艺偏差(Local Process Variation)这个偏差比全局工艺偏差小很多。除了工艺参数(Process)PVT中的电压(Voltage)和温度(Temperature)在芯片上的分布也不是恒定的PVT偏差这可能由下面几种因素导致PMOS晶体管和NMOS晶体管的电压阈值偏差。PMOS晶体管和NMOS晶体管的沟道长度尺寸差异由于电压降(IR Drop)导致的晶体管电压偏差。局部热点造成的温度偏差。互连线的刻蚀不均造成互连线电阻和电容的偏差。上面的因素可以统称为OCV(On-Chip Variation)即片上变化。OCV会影响芯片上不同区域的单元延迟和互连延迟在普通的STA分析中我们只会选择一种工作条件(operating condition)并在此条件下分析而没有考虑芯片上各区域的差异。因此为了更好地模拟OCV效应的影响set_timing_derate命令允许设计者设置时序降额设置了对象的tim_derate_data_cell_delay_***、tim_derate_clk_cell_delay_***、tim_derate_clk_cell_check_***等属性简单来说就是允许某些路径快一些允许某些路径慢一些STA时会考虑到这些因素从而分析最难满足的情况。下面是set_timing_derate命令的BNF范式有关BNF范式可以参考以往文章为set_timing_derate value object_list [-rise] [-fall] [-min] [-max] [-early] [-late] [-clock] [-data] [-net_delay] [-cell_delay] [-cell_check] [-min_period] [-min_pulse_width] [-increment] //注该命令的object_list参数一定要放在value参数后指定降额比例value参数指定了降额后的比例在0.1到2之间比如可以指定value为0.9表示计算值为初始值的90%即降额了10%。指定降额对象列表/集合object_list用于指定降额值用于哪些对象可以是叶单元、层次单元、库单元。当不指定降额对象列表/集合时降额值用于当前设计当前设计的降额值和单元的降额值冲突时以单元的降额值为准。对于列表而言如果有多于一个对象需要使用引号或大括号包围对使用集合无效关于列表和集合的区别可以参考下面的博客。SDC命令详解使用集合(Collection)而不是字符串(String)/列表(List)作为命令参数https://chenzhang.blog.csdn.net/article/details/147144571如果指定了设计对象即使该设计的相关属性会被设置其实例单元的相关属性也会设置但降额不生效也无法使用report_timing_derate命令报告。指定沿-rise选项用于指定降额值作用于尾部是上升沿的时序弧、-fall选项用于指定降额值作用于尾部是下降沿的时序弧。如果这两个选项都没有指定降额值同时作用于所有时序弧相当于它们同时指定。指定最大、最小条件-max选项用于指定降额值作用于最大延迟分析一般情况下如果不开启on_chip_variation这指的是建立时间检查-min选项用于指定降额值作用于最小延迟分析一般情况下如果不开启on_chip_variation这指的是保持时间检查。如果这两个选项都没有指定降额值同时作用于最大延迟和最小延迟分析相当于它们同时指定。指定早、晚条件-early和-late选项在set_clock_latency命令中也有如下面的博客所示。SDC命令详解使用set_clock_latency命令进行约束https://blog.csdn.net/weixin_45791458/article/details/136130769?ops_request_misc%257B%2522request%255Fid%2522%253A%2522290c4b7d417404a42653da4af39c2fc8%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257Drequest_id290c4b7d417404a42653da4af39c2fc8biz_id0utm_mediumdistribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-136130769-null-null.nonecaseutm_termset_clock_latencyspm1018.2226.3001.4450-early选项用于指定降额值用于最快的路径-late选项用于指定降额值用于最慢的路径。在建立时间分析和保持时间分析中会对发射路径和捕获路径的这点进行考虑给出最差情况下的分析结果。如果这两个选项都没有指定降额值同时作用于发射路径和捕获路径相当于它们同时指定。为了与实际情况吻合-early选项指定的降额值应小于1-late选项指定的降额值应大于1。具体来说对于建立时间分析发射路径上的时钟路径和数据路径会使用-late选项指定的最慢降额值而捕获路径上的时钟路径和数据路径会使用-early选项指定的最快降额值这是最坏的情况下的结果对于保持时间分析发射路径上的时钟路径和数据路径会使用-early选项指定的最快降额值而捕获路径上的时钟路径和数据路径会使用-late选项指定的最慢降额值这是最坏的情况下的结果。需要注意的是即使该功能看起来像是on_chip_variation模式的效果即对发射路径和捕获路径使用不同的设置但实际上这并不依赖分析模式的选择即在Design Compiler的bc_wc模式或PrimeTime的single模式也生效。指定路径的类型-clock选项用于指定降额值只用于时钟路径-data选项用于指定降额值只用于数据路径。如果这两个选项都没有指定降额值同时用于时钟路径和数据路径相当于它们同时指定。指定降额类型-net_delay选项用于指定降额值只用于互连延迟-cell_delay选项用于指定降额值只用于单元延迟需要注意的是-net_delay选项不能与对象列表/集合一起使用因为互连延迟的指定是全局性的。指定约束默认情况下建立时间、保持时间之类的时序约束不会被降额。-cell_check选项指定对单元的建立时间、保持时间约束应用降额该选项不能与-clock、-data、-cell_delay、-net_delay选项一起使用。需要注意的是set_input_delay命令设置的输入延迟和set_output_delay命令输出延迟不会被降额影响。-min_period选项指定对单元的最小周期约束应用降额该选项只能与-rise、-fall选项一起使用此时-rise选项表示使用上升沿到上升沿计算周期-fall选项表示使用下降沿到下降沿计算周期。-min_pulse_width选项指定对单元的最小脉冲宽度约束应用降额该选项只能与-rise、-fall选项一起使用此时-rise选项表示高电平脉冲宽度-fall选项表示低电平脉冲宽度。指定增量-increment选项用于设置增量降额值总降额值为基准降额值加增量降额值。Multicorner-Multimode支持该命令仅对当前场景生效换句话说只能在当前场景设置时序降额。但是对于库单元上设置的时序降额如果timing_library_derate_is_scenario_specific变量默认值为false被设置为true则仅对当前场景生效否则对所有场景生效。关于场景的更多介绍可以参考下面的博客。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%257Drequest_ide3267dcc7cc26380435f53994dc8b9b8biz_id0utm_mediumdistribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-149578771-null-null.nonecaseutm_termMCMMspm1018.2226.3001.4450写在最后随着工艺尺寸的不断缩小静态时序分析受到的制造过程变化影响日益显著。传统的解决方案是使用一个全局的固定系数(set_timing_derate命令)来为设计添加裕量以应对片上变化(On Chip Variation, OCV)虽然在130nm和90nm工艺节点时仍属合理但在更先进的制程中已显得过于保守带来了过度设计、性能下降和设计周期延长等问题。为解决这一挑战PrimeTime在2008版本引入了高级片上变化(AOCV)技术这是对传统OCV方法的自然扩展它通过更细致和上下文相关的建模方式为设计提供了更真实、低悲观度的时序裕量控制。set_timing_derate命令不存在set_size_only命令中多实例化设计(MIM)的问题但不可以通过使用current_design命令切换当前设计到多实例化设计设置相应属性后再切换回原当前设计来进行多个对象的相关属性设置。
返回列表