Lockup latch的用法,看这个就够了

  • Post author:
  • Post category:其他




Lockup latch的用法,看这个就够了!

文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点。点击进去后出现任何损失与社区无关。

本公众号秉承 “越分享越有价值,越分享越幸运” 的理念,致力于数字 IC 后端实现方面(涉及逻辑综合,布局布线,静态时序分析,物理验证等)的技术经验交流和分享。目前短期计划是每周更新两篇技术干货分享,年度目标是实现 2018 年度发表 100 + 篇技术原创文章。

同时,小编也开通了知识星球,满足部分粉丝特别的需求(比如平时技术上或者职业规划等方面有比较多的困惑)。欢迎有兴趣的朋友加入。另外明天星球上会发布高性能 CPU 模块的设计实现教程。

吾爱 IC 社区公众号之前推送过一篇文章,简单分享过 LOCKUP LATCH 的概念及其应用。今天将带大家深入来了解 Lockup latch 实际的应用。


听说 Latch 可以高效修 hold 违例(Timing borrowing 及其应用)

Lockup Latch

如下图所示,DOMAIN1 和 DOMAIN2 分别为两个 clock domain,在 func mode 下两个 domain 不存在相互交互的 path。因此,在做时钟树综合(CTS)时,会各自独立长 clock tree,即他们之间的 clock latency 可能存在较大的差异。在 func 模式下不会有任何问题。

但是,在做 DFT 的时候,我们将 DOMAIN1 和 DOMAIN2 的寄存器串在一条链上了。在 scan shift 时是有问题的。他们之间是需要做 hold check(比如 DOMAIN2 的 clock latency 比较长)。对应的 setup 和 hold 检查波形图如下图所示。从波形图中得知,hold violation 比较大。为了解决这个较大的 hold violation,需要在 DOMAIN1 和 DOMAIN2 之间插入 LOCKUP LATCH,从而改善较大的 hold violations。

Positive or Negative Level Latch?

  • Launch flipflop 正沿触发,capture flipflop 也是正沿触发

这种情况需要加一个

低电平传输的 Lockup Latch

。也是最常见的 case。

  • Launch flipflop 负沿触发,capture flipflop 是正沿触发

这种情况无需加 Lockup Latch。

  • Launch flipflop 负沿触发,capture flipflop 也是负沿触发

这种情况需要加一个

高电平传输

的 Lockup Latch。

  • Launch flipflop 正沿触发,capture flipflop 是负沿触发

这种情况留给各位思考,自己画波形图就可以知晓


深入浅出讲透 set_multicycle_path,从此彻底掌握它

Lockup Latch 应该加在哪里?

这里以第一种情况为例(即 Launch flipflop 和 capture flipflop 均是正沿触发的情况)。通过以上的分析得知,需要在这两个 domain 之间加 Lockup latch,才能够显著减少 hold violations。那么问题来了,这个 Lockup latch 应该加在靠近 Domain1,还是靠近 Domain 2?

  • 靠近在 Domain2 中

将 Lockup latch 加在靠近 Domain2 中后的简易电路结构如下图所示。由于时钟树综合阶段工具会做将 Lockup latch 和 Domain2 中的寄存器做 balance,因此 clock skew 会比较小,这里假设 skew 为 0。对应的 setup 和 hold 检查波形如下图所示。

从波形图中得知,Domain1 中的 DFF 到 Lockup latch 的并没有改善(与之前 Domain1 中 DFF 和 Domain2 中 DFF 的 hold 一样大)。因此,这种 Lockup latch 加的方式是不正确的。

  • 靠近 DOMAIN1 中

将 Lockup latch 加在靠近 Domain1 中后的简易电路结构和波形图如下图所示。

从波形图得知,Domain1 中的 DFF 到 Lockup latch 的 hold 明显得到了改善。同样 Lockup latch 到 Domain2 中的 DFF 的 hold 也没有问题。虽然 setup 检查变严格了,但是由于 scan 模式下,

scan clock 是低速的

。所以 setup 也没有问题。

加 buffer 抑或加 LOCKUP?

众所周知,传统修 hold violation 的方法就是插 buffer。理论上当你的 hold violations 比较大的情况,都可以采用 insert Lockup latch 的方法来解决(

Func 下慎重,需要确认不影响逻辑功能

)。比如在某个 endpoint 点存在 1ns hold violation,此时你可能需要在这个 endpoint 上插几十个甚至上百个 hold buffer。这种方式解决 hold violation 存在以下几方面的弊端。

  • Hold buffer 太多,可能导致 routing congestion 问题

  • Hold buffer 太多,可能导致 power consume 问题

  • 由于 large skew 和 OCV 效应,timing 在各个 corner 下 variation 会比较大,容易导致 setup 和 hold 冲突

关于 setup 和 hold 冲突的解法方法,会推送在小编的知识星球上。有需要的可以关注起来。

LOCKUP LATCH 的应用

  • Clock skew 非常大的情景

Clock skew 特别大,往往是由于前端设计时,时钟结构规划不合理导致的。比如 scan clock 和 func clock 太早分开。一方面可以通过前期

更改时钟电路结构

。另一方面可以后期 Timing fixing 阶段

通过 ECO 方式加入 Lockup latch

。关于如何做这种 ECO 留给各位思考,其实很简单。

  • uncommon clock path 非常长

在吾爱 IC 社区之前推送的关于时钟树综合的分享中,提到想得到一个比较好的,比较小的 clock skew,一定要将 uncommon clock path 做到最短。Uncommon clock path 越长,受 OCV 的影响越大,不同 corner 下 variation 越大,hold 越不好收敛。


数字后端设计实现之时钟树综合实践篇


小编知识星球简介:

在这里,目前已经规划并正着手做的事情:

  • ICC/ICC2 lab 的编写

  • 基于 ARM CPU 的后端实现流程

  • 利用 ICC 中 CCD(Concurrent Clock Data)实现高性能模块的设计实现(

    本周四发布

  • 其他内容待定

在这里,各位可以提问(支持匿名提问,提问从此不再害羞),小编会在 24 小时内给予解答(也可以发表你对数字后端设计实现中某个知识点的看法,项目中遇到的难点,困惑或者职业发展规划等)。

反正它是一个缩减版的论坛,增强了大家的互动性。更为重要的是,微信有知识星球的小程序入口。星球二维码如下,可以扫描或者长按识别二维码进入。目前已经有

十八位

星球成员,感谢这十八位童鞋的支持!欢迎各位铁杆粉丝加入!(

星球的门槛将越来越高,成员满 20 后,由目前的 128 元调整为 168 元


相关文章推荐(不看保证后悔)


深度解析 Create_clock 与 Create_generated_clock 的区别


盘点数字后端设计实现用到的各种文件


clock jitter 是否对 hold time 有影响?(文末有福利)


为什么时钟树上要用 clock inverter(min pulse width check)


LVS 就是这么简单!(数字后端物理验证篇)


揭秘为何 net delay 是负值(数字后端实现时序篇)


PBA(Path Base Analysis)想说爱你不容易(静态时序分析基础篇)


一网打尽时钟树综合 Clock Skew


数字后端设计实现之时钟树综合实践篇


【惊呆了!】你居然还在用 flatten 方式进行 timing signoff


数字后端面试问答 No.16-18


合理的时钟结构能够加速 Timing 收敛(时钟树综合中级篇)


数字后端面试问答 No.13-15(每日三问)


【机密】从此没有难做的 floorplan(数字后端设计实现 floorplan 篇)


数字后端面试问答 No.10-12(每日三问)


数字后端面试问题 No.7-9(每日三问)


听说 Latch 可以高效修 hold 违例(Timing borrowing 及其应用)


15 天零基础入门到精通 python – 最全的视频教程


数字后端面试问答 No.4-6(每日三问)


IR Drop 分析之 Redhawk 分析流程


CRPR 能补偿 crosstalk 吗?


原来电路最高工作频率是这么算出来的(STA 基础篇)


数字后端面试问答 No.1-3(每日三问)


秒杀数字后端实现中 clock gating 使能端 setup violation 问题


教你轻松调 DCT 和 ICC 之间 Timing 与 Congestion 的一致性


数字芯片设计实现中修复 setup 违例的方法汇总


数字 IC 设计中 ECO 的那些事,其实并不是事!


Scan chain reordering 怎么用你知道吗?


如何评价数字后端设计中 floorplan 的好坏?


数字后端实现时 congestion 比较严重,你 hold 得住吗?


数字后端实现 place 过程进阶


Final netlist release 前,你应该做好哪些工作?


基于 Physical Aware 的动态功耗优化实现方案


深入浅出讲透 set_multicycle_path,从此彻底掌握它


【大师必备】最全的数字 IC 设计经典书籍电子版下载


你与数字后端大神的差距在这里,快来瞧瞧!


数字后端实现时 congestion 比较严重,你 hold 得住吗?


时钟树综合(clock tree synthesis)基础篇


【福利】数字 IC 后端各种 Userguide 下载

好了,今天的码字就到这里了,

原创不容易,喜欢的可以帮忙转发和赞赏,你的转发和赞赏

是我不断更新文章的动力。小编在此先谢过!与此同时,吾爱 IC 社区(

52-ic.com

)也正式上线了。吾爱 IC 社区(

52-ic.com

)是一个专业交流和分享数字 IC 设计与实现技术与经验的 IC 社区。如果大家在学习和工作中有碰到技术问题,欢迎在微信公众号给小编留言或者添加以下几种联系方式进行提问交流。

打赏的朋友,请长按下方二维码,识别小程序进行打赏,欢迎砸钱过来!小编晚饭能不能加个鸡腿,全靠它了,呵呵!

作者微信:


https://mp.weixin.qq.com/s/36zbJSni-PwD_gy3h-WtNA



版权声明:本文为weixin_37584728原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。