数字IC设计学习笔记_静态时序分析STA_配置STA环境2

数字IC设计学习笔记

配置STA环境2

1. 约束 Input path 和 Output path
2. 时序路径组Timing path groups
3. 外部属性建模

1. 约束 Input path 和 Output path

  • 约束 Input path
    对于input path的约束,主要针对于input port 2 reg 时序路径。
    在这里插入图片描述SDC脚本:
    set Tclk2q 0.9
    set Tc1 0.6
    set_input_delay -clock CLKA -max[expr Tclk2q + Rc1][get_ports INP1]

    在这里插入图片描述SDC脚本:
    create_clock -period 15 -waveform{5 12}[get_ports CLKP]
    set input_delay -clock CLKP -max 6.7[get_ports INPA]
    set_input_delay -clock CLKP -min 3.0 [get_ports INPA]

  • 约束 Output path
    约束 Output path,主要针对于reg2output 时序路径
    在这里插入图片描述SDC脚本:
    set Tc2 3.9
    set Tsetup 1.1
    set_output_delay -clock CLKQ -max [expr Tc2 + Tsetup] [get_ports OUTB]

    在这里插入图片描述
    SDC脚本:
    create_clock -period 20 -waveform{0 15}[get_ports CLKQ]
    set output_delay -clock CLKQ -max 7.4[get_ports OUTC]
    set_output_delay -clock CLKQ -min 0.2 [get_ports OUTC]

  • 约束Input path 和Output path
    SDC脚本:
    create_clock -period 50 -waveform{5 25}[get_ports CLKN]
    set_input_delay -clock CLKN -max 3.4[get_ports OUTA]
    set_input_delay -clock CLKN -min 0.05 [get_ports OUTA]
    set output_delay -clock CLKN -max 7.4[get_ports OUTC]
    set_output_delay -clock CLKN -min 0.2 [get_ports OUTC]

2. 时序路径组Timing path groups

  • 时序路径根据终点(endpoint)所在时钟域的不同,被分为不同的时序路径组(Timing path groups)。

3. 外部属性建模

对于input来讲,指定以下其中一个属性即可:

  1. set_drive:设置驱动能力

    用来在DUA的输入管脚指定一个驱动阻值(drive resistance)

    越小代表驱动强度越大,0代表驱动强度无线大;
    在这里插入图片描述
    脚本:

    1. 在输入的UCLK处指定一个100的驱动阻值 set_drive 100 UCLK

    2. 上升驱动于下降驱动是不同的:set_drive -rise 3[all_inputs] set_drive -fall 2[all_inputs]

    输入端口的驱动能力用来计算 transition time,以及从 input port 到 第一个cell的RC互连线的延迟。
    Delay_to_first_gate = (drive * load_on_net) + interconnect_delay

  2. set_drving_cell : 从库中调用某个于 INPB 具有差不多驱动能力的cell
    在这里插入图片描述
    脚本:

    1. INPB由 slow 库里 INV3 cell 驱动:set_driving_cell -lib_cell INV3 -library slow [get_ports INPB]

    2. 所有的输入由 tech13g 库里的 INV2 驱动 :set_driving_cell -lib_cell INV2 -library tech13g [all_inputs]

    3. 给所有的输入 testmode[3] 由tech90gwc库里的 BUFFD4 驱动:set_driving_cell -lib_cell BUFFD4 -library tech90gwc [get_ports {testmode[3]}]

  3. set_input_transition:直接指定输入的transition
    在这里插入图片描述
    脚本:

    1. 给 INPC 端口设置输入transition 时间 0.85 ns:set_input_transition 0.85 [get_ports INPC]

    2. 给所有输入端口设置输入transition 时间 0.6 ns:set_input_transition 0.6 [all_inputs]

    3. 给SD_DIN为开头的端口设置输入transition 时间 0.25 ns:set_input_transition 0.25 [get_ports SD_DIN]*

总结:计算第一个cell的delay时,一定要设置一个 drive 或者 driving cell 或者直接设置 transition time。若没有加,则默认为理想值。

对于output来讲,指定以下属性:
set_load:设置负载电容值(capacitive load),默认为0;
在这里插入图片描述
脚本:

  1. 在输出端口 OUTX 放置一个5 pf 的负载电容:set_load 5 [get_ports OUTX]
  2. 给所有的输出端设置一个 25 pf的电容:set_load 25 [all_outputs]
  3. 在指定的输出端口放置一个 7 fF 的管脚负载:set_load -pin_load 0.007 [get_ports {shift_write[31]}]

— 学习内容源于邸志雄老师的课件,Thanks^^

【注】:个人学习笔记,如有错误,望不吝赐教,这厢有礼了~~~


  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值