在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 8875|回复: 16

[求助] 时序约束问题求教

[复制链接]
发表于 2014-3-13 19:47:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
如下所示电路,时钟clk,经过一段组合逻辑传到点A,后面是时钟树。在定义时钟的时候 ,我把时钟起点定义在点A处,命令如下:
create_clock  -name clock -period 10 [get_pins  U145/A]
为了方便对input_delay进行准确设置,我想知道从时钟输入端口clk到点A之间的这段组合路径的延时,于是我对这条路径设置如下约束:
set_max_delay  1.5 -from [get_ports  clk] -to [get_pins  U145/A]
set_min_delay  0.5 -from [get_ports  clk] -to [get_pins  U145/A]
然后对这条路径进行时序分析。可是当我用如下命令对这条路径报告时序的时候,Encounter告诉我没有这样的路径或者说没有约束,怎么回事?我应该怎么设置约束?实际上我也知道它不属于我们常说的四种基本时序路径,那我怎么来获得它的延时呢?
report_timing -from [get_ports  clk] -to [get_pins  U145/A]

QQ截图20140313193458.png
发表于 2014-3-13 20:19:13 | 显示全部楼层
如果是DC可以考虑以下命令:
  check_timing
  report_port
  report_timing_requirements
  report_clock
  report_transitive_fanin
  report_disable_timing
  report_lib -timing_arcs
如果是PT可以考虑:

report_analysis_coverage -status_details untested

        check_timing -verbose

report_exceptions
                report_timing -exceptions all
供参考
 楼主| 发表于 2014-3-13 21:48:14 | 显示全部楼层
回复 2# overdriver


    谢谢您的热心解答,您提供的这些命令似乎都是查看端口有没有约束或者说我上面说的所谓的路径有没有约束。这个确实没有约束,我想请问这样的“路径”该怎么约束呢?或者怎么获得它的延时呢?谢谢
发表于 2014-3-14 11:10:28 | 显示全部楼层
虽然不明白你在做什么,我只能告诉你 ICC 的话有 report_delay_calculation, Encounter 就不清楚了。
我觉得你未必很清楚什么是 input delay, set_max_delay, set_min_delay, report_timing
发表于 2014-3-14 14:12:19 | 显示全部楼层
回复 1# hit0821201

只要从 clk 端口到 U145/A 有实际的物理路径,就能报出delay。
时序约束只留下这两句试试,其他什么约束都不要加,包括 create_clock都不要。

set_max_delay  1.5 -from [get_ports  clk] -to [get_pins  U145/A]   //这句就是对想check的路径设置的约束。report_timing -from [get_ports  clk] -to [get_pins  U145/A]



如果这样执行出来的结果还是说 unconstrained,说明 set_max_delay 这句约束失效。然后重新考虑 起始点 和 终点的设置。
 楼主| 发表于 2014-3-14 14:25:12 | 显示全部楼层
回复 4# zero_0


我这么说你看对么?
input_delay + 数据从input port 到reg之间的组合路径上的延时 + setup <= a clock cycle. 那么input_delay自然就是数据从上一级传到input_port这之间的外部延时。set_max_delay相当于是约束路径上的延迟值不能超过这个规定的值,当然如果路径起点有input_delay的时候,它会把这个值算进来,对于终点如果有output_delay的时候,它也会把这个值算进来。set_min_delay那就可想而知是约束路径最小延时的了。对于report_timing,它的选项太多,功能也就很多了,就不一一列举。不过一般用的多的是报告路径延时,时序计算。
我上面说的如果有不准确的地方请多指正。

我为什么在上面的问题中问从clk到A点的延时呢?因为这个延时本来应该是属于clock latency的不?clock latency对于从input port到FF路径的setup是有利的,但是对于hold确是不利的,我想把clock latency考虑进来。然而,由于我把时钟节点定义在A点,那么工具计算clock latency的时候,只会计算从A点到触发器这段延时不?那么从输入端clk到A点的这段延时呢?说白了我想知道这段延时是多少?
然而从输入端clk到A点又不属于我们所说的四种基本时序路径之一,所以我认为我上面写的那个约束set_max_delay -from [get_ports clk]
-to [get_pins U145/Y] 根本就没用,因为工具不会认为这是一条时序路径啊。该怎么来知道它的延时呢?请赐教!
 楼主| 发表于 2014-3-14 14:42:02 | 显示全部楼层
回复 5# mnluan


    我试试,谢谢您的帮助,一会看看结果。
发表于 2014-3-14 23:57:14 | 显示全部楼层
icc 中应该可以这样得到
report_delay_calculation
report_clock_timing

不知道你这样设的用处
可否考虑这样设
create_clock  -name CLK  -period  10 [get_ports clk] -wave {0 5}
create_generated_clock  -name clock   [get_pins  U145/A] -source  [get_ports clk]  -master_clock  [get_clock CLK ] -divide_by 1 -add
发表于 2014-3-16 10:51:07 | 显示全部楼层
 楼主| 发表于 2014-3-16 15:42:34 | 显示全部楼层
回复 8# gzh9255


    谢谢您的热情帮助,受教!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-16 01:16 , Processed in 0.024739 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表