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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6697|回复: 13

[讨论] 大家说说是如何约束port timing的,如何约束能得到最准确的port timing?

[复制链接]
发表于 2012-1-6 00:30:27 | 显示全部楼层 |阅读模式

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

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

x
目前约束port timing的方式主要有以下方式:
1    set_input_delay,set_output_delay,然后在postCTS阶段对port设置virtual clock,对不同的port设置不同的virtual clock,并设置不同的clock latency,clock latency值根据与port相关的reg的clock latency确定
2    set_max_delay    from port --> reg/D  或者   from reg/Q --> port   此delay值根据以前SI阶段的port-->reg或者reg-->port的delay获得。这种方法同样需要设置virtual clock,设置方法和1中的相同。


    总而言之,如果对每个port都设置virtual clock的话,会很麻烦,首先要给每一个port create_clock,其次要对每个virtual clock 设置clock latency。当然也可以对所有的port设置一个相同的virtual clock和virtual latency,但是这样必然造成port timing计算不够准确。

    之前我以为 ,如果用第二种方式set_max_delay来约束port timing的话,工具计算slack的时候就只会判断port-->reg或reg-->port的delay是否满足我给定的设定值,并不考虑和port相连的reg的clock latency。如果是这样的话,那么我就不需要设置virtual clock,从而得到很准确的port timing。
    但是实现发现,在postCTS阶段,工具在计算port slack时,依然会把clock latency计算上,由于没有设置virtual clock,导致port timing没法看。
      大家说说你们的port都是怎么约束的?是用哪种方式/
      有没有高明的方法,可以不用设置virtual clock,也可以得到准确的port timing
发表于 2012-1-6 14:01:37 | 显示全部楼层
一般对block level的约束才使用virtual clock,对chip level就不需要了
对于block,考虑到top level留有富余量,可以用同一个virtual clock,不必算得如此精确
 楼主| 发表于 2012-1-6 18:17:10 | 显示全部楼层
回复 2# 陈涛

     谢谢版主的解答
    我现在做的是block级的。问题是我的设计中打开了usefulskew。和port有关联的register的latency都不一样,从700ps到1000ps不等,设置同一个virtual clock太不准确了。我想针对每个port都设置相对应的virtual clock和virtual latency,这样是最准确的。
    如果能只检查port的path delay是否满足,不考虑port处的clock latency的话,就会方便很多 。可惜目前没这样的方法
发表于 2012-1-6 19:51:36 | 显示全部楼层
用real clock也行,就是CTS后把cts latency 反映到io port上就行了

这个叫virtual clock latency adjustment
发表于 2012-1-7 13:01:58 | 显示全部楼层
还有一个方法是先算出与port关联的FF的clock insertion delay,然后从对应的output delay上减去,或者加到input delay上去,不需要任何virtual clock
 楼主| 发表于 2012-1-9 23:13:30 | 显示全部楼层
谢谢两位版主高见,受益匪浅!
发表于 2012-1-10 10:34:05 | 显示全部楼层


  但是实现发现,在postCTS阶段,工具在计算port slack时,依然会把clock latency计算上,由于没有设置virtual clock,导致port timing没法看。
zgqgfkkkd 发表于 2012-1-6 00:30



请问楼主你所指的“导致port timing没法看” 不会是说slack很差吧? 我觉得如果clock latency会被考虑, 那么data required time = clock_period + clock_latency - output_delay, 应该比不考虑clock latency要好很多吧。

我的帖子也是问个类似的问题, 我不理解为何PT仍然将CTS后的clock latency按照ideal, LZ要是有空请关注以下
http://bbs.eetop.cn/thread-318871-1-1.html
发表于 2012-1-10 11:13:28 | 显示全部楼层
回复 3# zgqgfkkkd


    请问如何打开useful skew 啊?请教下
 楼主| 发表于 2012-1-10 12:59:37 | 显示全部楼层
回复 8# xieqq


        在encounter中是这样设置的:setOptMode -usefulskew true,别的工具没用过,就不清楚了。
你还可以在setUsefulskewMode里面设置很多选项,控制usefulskew借用的大小,端口是否借用等等。
 楼主| 发表于 2012-1-10 13:06:35 | 显示全部楼层
本帖最后由 zgqgfkkkd 于 2012-1-11 00:11 编辑

回复 7# chris_li


        你好,我说的“没法看”指的是in2reg会正很多,而reg2out会负很多。虽然一个负很多,一个正很多,但都不能反映真实的port timing。
       你列出来的情况是reg2out的,在postCTS阶段timing设置virtual clock肯定是比不设置virtual clock要好的。
       关键看你设置的virtual clock和reg的real clock的skew大不大,
       如果不大,那么结果是比较合理的;
       如果很大,那么结果是不合理的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-25 00:28 , Processed in 0.028109 second(s), 10 queries , Gzip On, Redis On.

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