异步电路后端实现流程(cdc signOff 后端做什么)

1.一种后端异步电路的signOff流程

同步电路和异步电路分别signOff

对于同步电路,后端会分析sta setup/hold,这里不在赘述。在该scenario下 异步电路是不会分析,也不会关注异步电路之间的走线

在cdc scenario(mode)下sdc有一下设置:

  1. 将所有同名的clk之间的path都设为falsePath

          该scenario下不检查同步电路的sta

foreach_in_collection per_clk_cdc [get_clocks *_cdc] {
    set_false_path -from ${per_clk_cdc} -to ${per_clk_cdc}
}

     2.将所有的clk hold检查设为falsePath

        该scenario下不检查时钟之间的hold

set_false_path -hold -from [get_clocks *_cdc] -to [get_clocks *_cdc]

     3.对所有不同名的clk 做双向的max_delay检查

设 有clk_a,clk_b;周期分别为period_a和period_b,则两者之间最小的周期为period_min_ab,做一下max_delay检查

set period [expr ${period_min_ab} * ${cdc_ratio}];#normally, we can set cdc_ratio=0.7
set_max_delay -from clk_a to clk_b ${period} -ignore_clock_latency
set_max_delay -from clk_b to clk_a ${period} -ignore_clock_latency

以上约束的含义就是 对所有a to b和b to a的clk做两者之间快时钟周期的0.7倍 max_delay检查。

因为这是异步时钟域的检查,所以可以ignore 所有的clk latency。只关注dataPath的maxDelay

        在设置了max_delay的约束之后,综合和布局布线工具不一定能满足所有的约束,这时就会像setup检查一样出现violation【max_delay vio】,根据vio报告设计人员确认哪些需要后端去迭代或者手动去修,哪些不需要修改

        maxdelay和setup检查的path Type都是max,但不同的地方是,setup检查data required time是来自(clk path delay - lib setup) 时间;而maxdelay的data required time是设置的(maxDelay - lib setup)时间。

那么就有两个问题:

  1. 为什么要做max_delay的检查
  2. 如果有不同名字的clk 原本是同步时钟域 该怎么办
  3. 如果有异步电路不能满足0.7倍的fastclk maxDelay检查该怎么办?

带着这些问题我们进入下一节。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值