数字IC设计学习笔记_静态时序分析STA_多时钟域 Timing分析

数字IC设计学习笔记

多时钟域 Timing分析 (timing cross clock domain)

1. 慢时钟域到快时钟域
2. 快时钟域到慢时钟域

1. 慢时钟域到快时钟域
在这里插入图片描述

  • Launch:对原时钟做了4分频/频率变成4倍,周期减少到1/4
  • 分频电路,这种情况,1. 定义为generated clock;2. 定义为两个时钟

脚本

  • Create_clock -name CLKM\ -period 20 -waveform {0 10} [get_ports CLKM]
    Create_clock -name CLKP\ -period 4 -waveform {0 2.5} [get_ports CLKP]

时序图
在这里插入图片描述

时序报告

Setup检查

  • Launch path

在这里插入图片描述

  • Capture path
    在这里插入图片描述
    Hold time检查
    在这里插入图片描述

  • Hold time: 在setup检查边沿的前一个时钟周期的上升沿

  • 注意:如果用一个快时钟的一个周期的时序要求慢时钟的数据,是不合理的。所以我们设置多周期路径,快时钟在第四个时钟周期检查setup
    脚本:Set_multicycle_path 4 -setup\ -from [get_clocks CLM] -to
    [get_clocks CLKP] -end

  • 针对于慢时钟域到快时钟域,快时钟时接收数据端,所以约束-end

时序图
在这里插入图片描述

  • 在快时钟的第四个上升沿检查setup,这样组合逻辑的延迟就可以为1个clock
    cycle,就不需要那么严苛,相对合理。在setup检查边沿的前一个时钟周期的上升沿,检查hold。

时序报告

Setup检查

  • Launch path
    在这里插入图片描述
  • Capture path
    在这里插入图片描述

Hold检查

  • Launch path
    在这里插入图片描述

  • Capture path
    在这里插入图片描述

注意

  • 这种情况下,setup的约束时不合理的,因为数据最长的,我们可以让它慢一点,最短的,其实很短,就比0多一点点,这样如果我们用15约束hold
    time,是不合理的,所以我们想办法,让hold time检查的边沿,也挪到0,也就是在
    setup检查边沿再向前挪N-1个时钟周期;这样就相对合理很多,所以在约束hold时,可以约束到N-1。

脚本

  • Set_multicycle_path 3 -hold \ -from [get_clocks CLKM] -to [get_clocks
    CLKP] -end;

时序图
在这里插入图片描述

总结

  • 对于从慢时钟域到快时钟域的这种多时钟域下的静态时序分析检查,一定要指定第N个时钟周期为setup检查沿,在默认的hold检查边沿,向前N-1个时钟周期,进行hold检查。

2. 快时钟域到慢时钟域在这里插入图片描述

脚本

  • Create_clock -name CLKM \ -period 20 -waveform {0 10} [get_pots CLKM]
    Create_clock -name CLKP \ -period 5 -waveform {0 2.5} [get_pots CLKP]

时序图
在这里插入图片描述

  • 最严苛的情况:launch edge在setup4,到capture的setup检查边沿只有1个fast clock cycle;hold检查在setup检查前1个slow clock cycle的上升沿。

时序报告

Setup检查

  • Capture path

在这里插入图片描述

  • Launch path
    在这里插入图片描述

Hold检查

  • Capture path
    在这里插入图片描述
  • Launch path
    在这里插入图片描述

注意

  • 实际上,这种情况,对于慢时钟来说,也是比较苛刻的,不合理的;

改进

  • 针对于快时钟,设置多周期路径-start

脚本

  • *Set_multicycle_path 2 -setup\ -from [get_clocks CLKP] -to [get_clocks CLKM] -start
  • Set_multicycle_path 1 -hold\ -from [get_clocks CLKP] -to [get_clocks CLKM] -start*

时序图
在这里插入图片描述

时序报告

Setup检查

  • Launch path
    在这里插入图片描述
  • Capture path
    在这里插入图片描述

Hold检查

  • Launch path
    在这里插入图片描述
  • Capture path
    在这里插入图片描述

总结

  • 对于从慢时钟域到快时钟域的这种多时钟域下的静态时序分析检查,setup检查:一定要指定launch edge为fast clock 的第N个时钟周期,capture edge为slow clock的第二个时钟周期的上升沿;hold检查:在默认的hold检查边沿,向前N-1个时钟周期,进行hold检查。

[参考资料]

  1. 邸志雄老师的课件
  2. 集成电路静态时序分析与建模

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


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值