建设网站对公司起什么作用广州网站设计公司哪家好
建设网站对公司起什么作用,广州网站设计公司哪家好,网站双线主机优势,巩义便宜网站建设公司静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html 目录
指定对象列表
指定源、目的引脚
指定恢复
简单使用
写在最后 上一章中#xff0c;我们学习了如何使用set_case_analysis模式分析命令#xff0c;它通过指定某个端口或引脚为固定值…静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html 目录
指定对象列表
指定源、目的引脚
指定恢复
简单使用
写在最后 上一章中我们学习了如何使用set_case_analysis模式分析命令它通过指定某个端口或引脚为固定值从而使设计中的一些时序弧失效。本章将学习set_disable_timing命令它可以用于直接指定失效时序弧这会导致时序路径的中断常常用于减少DC分析的复杂度。 set_case_analysis指令的BNF范式有关BNF范式可以参考以往文章为
set_disable_timingobject_list[-from from_pin_name -to to_pin_name][-restore]//注该命令的-from选项和-to选项必须同时出现 指定对象列表 object_list参数指定了对象列表包括需要删除时序弧的单元、端口或引脚这个参数是必选的。 指定源、目的引脚 -from选项和-to选项必须成对出现它们指定了一个单元需要删除从源引脚到目的引脚这个特定的时序弧因此如果它们使用了则对象列表中只能有单元对象。 指定恢复 -restore选项表示将删除的时序弧恢复此时指定的其它选项要和指定时序弧失效时的命令一致。 简单使用 首先我们可以解决静态时序分析SDC约束命令create_clock详解一文中出现的时序路径混乱问题原文的图7如本文图1所示首先在输入端口clk_1和clk_2定义两个时钟。
create_clock -period 10 [get_port clk_1]
create_clock -period 15 [get_port clk_2] 图1 有两个时钟驱动的电路单元 对于上面的电路本意是触发器b_reg和触发器c_reg同时受时钟clk_1或时钟clk_2之一触发但如果不使用set_case_analysis命令在使用report_timing命令后会出现时钟clk_2和时钟clk_1之间的时序分析报告如图2、图3所示我们真正需要的是图4的时序报告本文如不加说明默认时序报告为建立时间报告。 图2 发射时钟是clk_2捕获时钟时clk_1 图3 发射时钟是clk_2捕获时钟时clk_1 图4 发射时钟是clk_2捕获时钟是clk_2 下面我们使用set_disable_timing命令直接使得数据选择器U4从输入引脚B到输出引脚Y的时序弧失效当然你也可以是使输入引脚S0到输出引脚Y的时序弧也失效但由于输入引脚不会定义始终因此它可以省略。可以通过report_design命令或report_disable_timing命令查看直接指定失效的时序弧如图5或图6所示从图6的Flag栏的u可以看出此时的失效路径是直接由用户定义的。此时的时序分析结果如图7和图8所示。
set_disable_timing [get_cell U4] -from B -to Y
set_disable_timing [get_cell U4] -from S0 -to Y //加上这句也可以 图5 失效时序弧报告(一) 图6 失效时序弧报告(二) 图7 发射时钟和捕获时钟都是clk_2 图8 发射时钟和捕获时钟都是clk_2 对于使用set_disable_timing命令使得数据选择器U4从输入引脚A到输出引脚Y的时序弧失效与上面是一样的操作和结果。 在讨论set_case_analysis命令时我们说到固定值会随着逻辑传播直到不能将固定值传播下去为止。那set_disable_timing命令是否也会导致失效时序弧沿着逻辑传播下面来看一个例子如图9所示。 图9 一个简单的例子 首先在输入端口clk定义一个时钟并对输入端口enable添加输入延迟约束。
create_clock -period 10 [get_port clk]
set_input_delay 0.5 -clock clk [get_port enable] 此时如果直接使用report_timing命令则触发器t_reg和触发器data_out_reg以及端口enable和触发器data_out_reg之间的时序路径会正常报告如图10和图11所示。 图10 两个触发器间的时序报告 图11 端口和触发器间的时序报告 下面使用set_disable_timing命令使与门U4从输入引脚B到输出引脚Y的时序弧失效可以使用report_design命令或report_disable_timing命令查看直接指定失效的时序弧如图12或图13所示可以看出失效时序弧不会沿着逻辑传播。
set_disable_timing [get_cell U4] -from B -to Y 图12 失效时序弧报告(一) 图13 失效时序弧报告(二) 下面我们来看set_disable_timing命令的一个特性时序路径分割这与set_case_analysis命令直接使时序路径消失不同下面来看一个例子。 由于在图9中我们只使与门U4从输入引脚B到输出引脚Y的时序弧失效了而与门U4从输入引脚A到输出引脚Y的时序弧依然保留了所以t_reg和data_out_reg的时序路径依旧存在如图14所示。 图10 两个触发器间的时序报告 但是原本在输入端口enable到触发器data_out_reg之间的时序路径被切断了此时的时序路径变成了从输入端口enable到与门U4的B引脚尽管这不是一个常见的时序路径终点但现在确实如此如图11所示而此时与门U4的Y引脚到触发器data_out_reg输入引脚D的时序弧只属于t_reg到data_out_reg的时序路径。 图11 一条奇怪的时序路径 如果此时使用下面的命令再使与门U4从输入引脚A到输出引脚Y的时序弧失效如图12所示则这把之前的两条时序路径都切断此时会出现三条时序路径第一条是从t_reg到与门U4的A引脚第二条是从输入端口enable到与门U4的B引脚第三条是从与门U4的Y引脚到触发器data_out_reg如图13、图14和图15所示从图中的startpoint和endpoint可以看出时序路径的起点和终点。
set_disable_timing [get_cell U4] -from A -to Y 图12 失效时序弧报告 图13 第一条时序路径 图14 第二条时序路径 图15 第三条时序路径 我们可以使用-restore选项移除两个指定的失效时序弧顺带一提还可以使用remove_disable_timing命令移除失效时序弧它们是等价的。
set_disable_timing [get_cell U4] -from A -to Y -restore
set_disable_timing [get_cell U4] -from B -to Y -restore//下面的命令等价
remove_disable_timing [get_cell U4] -from A -to Y -restore
remove_disable_timing [get_cell U4] -from B -to Y -restore 如果我们直接指定触发器data_out_reg的时钟引脚CK到数据引脚D的时序弧失效则针对触发器data_out_reg的建立时间和保持时间检查都不会进行如图16所示。 图16 建立时间和保持时间不会检查 写在最后 set_disable_timing命令能直接指定一条时序弧失效并中断并分割经过它的时序路径在实际运用中使用此命令前需要谨慎并明确自己在做什么。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/86336.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!