SDC命令详解:使用set_min_pulse_width命令进行约束
相关阅读SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm1001.2014.3001.5482目录指定最小脉冲宽度指定对象列表/集合指定低脉冲指定高脉冲Multicorner-Multimode支持简单使用最小脉冲宽度检查用于确保一个单元的时钟引脚的脉冲宽度尽管异步置位/复位引脚在特征化时会考虑最小脉冲宽度但在大多数设计中复位信号会维持多个时钟周期因此不会进行检查满足最小要求如果违反该要求则可能出现功能错误。严格意义上说最小脉冲宽度不是一个优化约束它并不像建立时间、保持时间、移除时间、恢复时间那样在综合时被考虑即Design Compiler无法自动修复最小脉冲宽度违例但在综合完成后可以使用report_min_pulse_width命令查看报告。如果想移除设置的最小脉冲宽度检查使用remove_min_pulse_width命令。就像建立时间、保持时间那样最小脉冲宽度可以在逻辑库中定义可以是简单使用引脚属性min_pulse_width_low和min_pulse_width_high也可以使用查找表的形式即timing_type属性为min_pulse_width的timing组而使用set_min_pulse_width命令可以覆盖逻辑库中的定义。本文针对Design Compiler但该命令同样存在于PrimeTime、IC Compiler等工具中它们大致相同略有差别。set_min_pulse_width命令的BNF范式有关BNF范式可以参考以往文章为set_min_pulse_width value object_list [-low] [-high] //注该命令的object_list参数一定要放在value参数后指定最小脉冲宽度指定一个正浮点值作为最小脉冲宽度值如果指定负值或零将被忽略。指定对象列表/集合指定设置最小脉冲宽度的时钟或时钟引脚如果指定了时钟对象则所有由该时钟连接的所有引脚将会被设置最小脉宽值。对于列表而言如果有多于一个对象需要使用引号或大括号包围对使用集合无效关于列表和集合的区别可以参考下面的博客。SDC命令详解使用集合(Collection)而不是字符串(String)/列表(List)作为命令参数https://chenzhang.blog.csdn.net/article/details/147144571指定低脉冲-low选项指定设置最小低脉冲宽度如果-low和-high选项都没有指定最小脉冲宽度同时作用于低脉冲和高脉冲相当于它们同时指定。指定高脉冲-low选项指定设置最小高脉冲宽度如果-low和-high选项都没有指定最小脉冲宽度同时作用于低脉冲和高脉冲相当于它们同时指定。Multicorner-Multimode支持该命令仅对当前场景生效换句话说只能在当前场景设置最小脉冲宽度。关于场景的更多介绍可以参考下面的博客。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简单使用下面以图1举例说明set_min_pulse_width命令的使用。图1 简单的触发器首先使用create_clock命令以clk端口为源对象创建一个周期为10的时钟。create_clock -period 10 [get_ports clk]接着使用report_min_pulse_width命令查看当前的最小脉冲检查结果如图2所示可以看出时钟脉冲宽度满足了检查要求(MET)。report_min_pulse_width图2 最小脉冲检查报告最后使用set_min_pulse_width命令设置一个较大的值此时结果如图3所示可以看出时钟脉冲宽度没有满足检查要求(VIOLATED)也可以使用report_constraint -all_violators命令报告不满足的时钟脉冲宽度。set_min_pulse_width 6 [get_pins q_reg/CK]图3 最小脉冲检查报告
上一篇/下一篇内容由系统自动关联
返回资讯列表 →