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

Lockup latch的用法,看这个就够了相关推荐

  1. python java混合编程_详解java调用python的几种用法(看这篇就够了)

    java调用python的几种用法如下: 在java类中直接执行python语句 在java类中直接调用本地python脚本 使用Runtime.getRuntime()执行python脚本文件(推荐 ...

  2. python 人脸识别调整人脸大的距离_Python 人脸识别就多简单,看这个就够了!

    原标题:Python 人脸识别就多简单,看这个就够了! 今天给大家介绍一个世界上最简洁的人脸识别库 face_recognition,你可以使用 Python 和命令行工具进行提取.识别.操作人脸. ...

  3. lockup latch clock gating cell

    Latch功能 Latch的电路结构如下图: Latch电路结构 当 E = 1 时,latch直传(transparent),D端信号的变化会即时反应在Q端: 当 E = 0 时,latch关断(c ...

  4. 十大经典排序算法动画与解析,看我就够了

    作者 | 程序员小吴 转载自五分钟学算法(ID: CXYxiaowu) 排序算法是<数据结构与算法>中最基本的算法之一. 排序算法可以分为内部排序和外部排序.内部排序是数据记录在内存中进行 ...

  5. python免费入门教程-python入门免费教程看这些就够了

    原标题:python入门免费教程看这些就够了 python入门免费教程看这些就够了 自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程.Python已经成为 ...

  6. 关于javascript的原型和原型链,看我就够了(二)

    温故 创建对象的三种方式 通过对象直接量 通过new创建对象 通过Object.create() js中对象分为两种 函数对象 普通对象 仔细观察如下代码 function Foo(name) {th ...

  7. 云小课 | 网站接入WAF失败怎么办?看这里就够了

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要: 网站接入WAF失 ...

  8. 关于javascript的原型和原型链,看我就够了(一)

    关于js的原型和原型链,有人觉得这是很头疼的一块知识点,其实不然,它很基础,不信,往下看 要了解原型和原型链,我们得先从对象说起 创建对象 创建对象的三种方式: 对象直接量 通过对象直接量创建对象,这 ...

  9. python免费全套教程-python入门免费教程看这些就够了

    原标题:python入门免费教程看这些就够了 python入门免费教程看这些就够了 自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程.Python已经成为 ...

最新文章

  1. 从来都没有爱情发生的人生
  2. Java各种数据类型详细介绍及其区别
  3. [2018.12.9]BZOJ2153 设计铁路
  4. 诊断网络层和应用层交互_基于SoC的数据采集与交互系统解决方案
  5. c# 泛型List的定义、作用、用法
  6. React开发(175):注意在回调里面重新渲染列表
  7. STM32与SHT1X温湿度传感器通讯
  8. python urllib发送post请求_python爬虫 urllib模块发起post请求过程解析
  9. DB-Engines 9月数据库排名:ClickHouse一路猛冲,Redis坐稳第7
  10. android 刷新标题栏,Android 自定义标题栏的实例详解
  11. 20款免费响应式的 HTML5 网站模板下载
  12. [转载] 程序员如何成功追到女神?
  13. 自动控制原理基础学习
  14. 字符串循环移位 编程之美3.1
  15. 3DSMAX和ZBRUSH打造神秘性感美女
  16. mac命令行压缩解压rar文件
  17. java 流计算_Java 流收集器 ( Stream Collectors ) ( 一 ) - 统计计算
  18. 文章分享-七巧板拼凸多边形-PAUL SCOTT tangrams
  19. element audio 标签 不显示_不闪屏,HDR,带鱼屏全都有,LG 29WK600宽屏显示器测评...
  20. 计算企业发放的奖金根据利润提成

热门文章

  1. [ZJOI2009]狼和羊的故事
  2. 12月小红书彩妆、护肤类KOL影响力视频图文排行榜
  3. EXCEL 自定义函数之公历转农历,VBA通过爬虫实现
  4. mysql 时间字符串 1_Mysql 中的日期时间字符串查询
  5. 第三方物流学习(二)
  6. SEO黑帽技术只多少
  7. STM32开发笔记31: STM32F4系列LQFP64封装引脚的兼容性
  8. **10种常用的网络营销方法**
  9. Likecloud—吃、吃、吃(P1508)
  10. 华为开发者认证与DevEco Studio编译器下载