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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 13121|回复: 14

[求助] 时序报告中的library hold time

[复制链接]
发表于 2011-8-9 14:48:34 | 显示全部楼层 |阅读模式

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

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

x
时序报告中的library hold time是给的lib中的值吗?这个值与flip flop的结构有关?为什么对于同一个端口(比如说终点都是后面reg3的D端口),不同路径(比如说从reg1和reg2的CK开始)上的library hold time的值不同呢?
flip flop的hold time和setup time不是跟其内部结构有关吗?
发表于 2011-8-9 17:13:32 | 显示全部楼层
setup /hold time 不是固定值,和 D pin和related clock pin的transition有关,
如果transition越差 ,setup/hold time 越大,

见一个
cell (SDFCND0) {
  area : 11.16;
  cell_footprint : "sdfcnd1";
  pg_pin (VDD) {
    pg_type : primary_power;
    voltage_name : COREVDD1;
  }
。。。。。。
pin(D) {
    direction : input;
    nextstate_type : data;
    related_ground_pin : VSS;
    related_power_pin : VDD;
    capacitance : 0.0007567;
    rise_capacitance : 0.0007567;
    fall_capacitance : 0.0007462;
    timing () {
      related_pin : "CP";
      timing_type : setup_rising;
      rise_constraint (constraint_template_3x3) {
        index_1 ("0.0046, 0.0663, 0.5596");
        index_2 ("0.0046, 0.0663, 0.5596");
        values ( \
            "0.07022, 0.0857, 0.1652", \
            "0.05304, 0.0678, 0.1465", \
            "0.02379, 0.03817, 0.1009" \
        );
      }
      fall_constraint (constraint_template_3x3) {
        index_1 ("0.0046, 0.0663, 0.5596");
        index_2 ("0.0046, 0.0663, 0.5596");
        values ( \
            "0.09933, 0.1132, 0.2137", \
            "0.07799, 0.09132, 0.1919", \
            "-0.02286, -0.008814, 0.09107" \
        );
      }
    }
timing () {
      related_pin : "CP";
      timing_type : hold_rising;
      rise_constraint (constraint_template_3x3) {
        index_1 ("0.0046, 0.0663, 0.5596");
        index_2 ("0.0046, 0.0663, 0.5596");
        values ( \
            "-0.04327, -0.05849, -0.1232", \
            "-0.0315, -0.04615, -0.1095", \
            "-0.007945, -0.02199, -0.07701" \
        );
      }
      fall_constraint (constraint_template_3x3) {
        index_1 ("0.0046, 0.0663, 0.5596");
        index_2 ("0.0046, 0.0663, 0.5596");
        values ( \
            "-0.02274, -0.03682, -0.1168", \
            "-0.007162, -0.02089, -0.102", \
            "0.071, 0.05877, -0.02542" \
        );
      }
    }


然后你看
lu_table_template (constraint_template_3x3) {
    variable_1 : related_pin_transition;
    variable_2 : constrained_pin_transition;
    index_1 ("0.0001, 0.0002, 0.0003");
    index_2 ("0.0001, 0.0002, 0.0003");
  }

这个表是pin和realted clock pin 的transition来构造的,
具体为什么会变 是由触发器内部结构决定的,
transition 不一样 , setup/hold time不一样
发表于 2011-8-10 09:00:33 | 显示全部楼层
回复 2# icfbicfb


    你好,那个transition不是高低电平跳变时间吗,不是直接在给出的时钟信号上定义的吗?
发表于 2011-8-10 11:23:39 | 显示全部楼层
transition 又叫slew time,就是高低电平的转换时间,

你说直接给出的是 set_clock_transition 0.1  这种吧,这种是 PR之前对clock transition的一种估计,

CTS后,就让set_propagated_clock 自动计算 这个leaf pin上的transition了,

和D pin的transtion一起 ,就可以得出当时的setup/hold time值了,
所以这个lib 里面的setup/hold time是个变值,靠查找表来找的,
发表于 2013-9-12 14:53:49 | 显示全部楼层
回复 4# icfbicfb


    请问下版主,一般这个transition值的定义依据什么来定义?根据chip的频率还是其他的,谢谢
发表于 2013-9-12 14:55:46 | 显示全部楼层
回复 4# icfbicfb


    请问下版主,一般这个transition值的定义依据什么来定义?根据chip的频率还是其他的,谢谢
发表于 2014-12-17 17:54:31 | 显示全部楼层
领教啦!
发表于 2014-12-18 09:14:47 | 显示全部楼层
slew是library characterize的时候自己设计的

真正分析timing的时候按照实际情况插值运算
发表于 2016-8-25 12:02:15 | 显示全部楼层
谢谢分享!
发表于 2016-10-20 16:52:01 | 显示全部楼层
回复 2# icfbicfb


   版主解答不错。我再贴一下怎么计算library setup time, 本质上和普通的cell delay计算一样,也是查表加插值。
pt_shell > report_delay_calculation -from reg1/CLK to reg1/D

…… ……

input tran 可以在timing report中看到。
output load 可以通过下面命令查到

pt_shell > get_attr [get_pins reg1/D] pin_capacitance_max
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2025-2-12 20:07 , Processed in 0.021928 second(s), 8 queries , Gzip On, Redis On.

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