电涡流检测
电涡流检测在火车轮箍探伤中的应用
电涡流传感器的选型
电路设计
整体架构
文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点。点击进去后出现任何损失与社区无关。
最近一直在帮同事解决各种问题。由于临近项目后期,所以很多问题的解决方法并不能只是告诉他们调整 flow,重新跑 flow。有几个问题也是比较常见的问题,大家或多或少可能都遇到过。今天小编挑选几个主题,做一个简单的分享,也算做个简要的归纳,希望对大家能够有所启发。
Power off 模块输出端未设置 dont_touch
大家都知道,对于一个可以 powerdown 的模块,其输出是不可控的。所以需要在其输出端添加 Isolation cell,将其 clamp 为 0 或者 1,保持一个稳定的状态。
在数字后端实现时,需要将 Isolation cell 的输入端与 powerdown 模块的输出直连,确保中间没有 buffer。为了实现这个目的,可以通过将 Isolation cell 的输入端设置为 dont_touch。
另外,还需要将这类 Isolation cell 摆放在 port 门口。目的是确保 powerdown 模块的输出端与 Isolation 输入端的距离足够近,没有 transition 问题。具体实现方法可以通过magnet placement 来实现。
这些低功耗设计实现经验,你真的懂了吗?
那如果碰到比较粗心或者经验不足的数字后端工程师,他们在实现时并没有注意或者遗漏这些问题,导致在 powerdown 模块的输出端加了 buffer(输出端的 port 有上千个),而且此时已经是项目后期,没有足够时间重新跑 flow。那么应该如何解决呢?
解决方法其实很简单,完全不需要重新跑 flow,甚至都不需要去挪 isolation cell 的位置。只需要做一个简单的 ECO即可。将 power down 模块的输出的 net 断开,和 Isolation cell 的 input pin 连接起来,再把 Buffer 连接到 Isolation cell 后面即可。
时钟树重要技能
小编也是很好奇,为何很多三四年甚至工作年限更长的数字后端工程师,对于复杂时钟结构的时钟树综合仍然摸不着头脑?真的有那么难吗?显然没有。
数字后端工程师必须掌握的时钟树综合的技能
理清时钟树结构,并画出时钟结构图。这点小编在公众号分享时钟树综合相关分享时,每次都要提到,可是真正会的人可能并不多。
编写长时钟树的 constraint。有了时钟结构图后,我们就可以写 cts constraint,这个 constraint 是用来引导告诉工具如何长时钟树,即告诉工具某个 clock 的 root 点在哪里,sinks 是哪些,哪些 clock 是要做同步的,哪些 clock 是需要做 inter-balance 的,各个 mode 下时钟如何长 tree 等。
这个 constraint 真心不难写 。不外乎就是 create_clock create_generated_clock set_clock_group 以及设置一些 exception。这些命令估计没有一个人不会的。只要你理清了时钟结构,还是很容易可以写好的。下图为一个复杂时钟结构电路中最简单的一个分支,大家看看应该如何写 constraint?
其实理清时钟树结构,编写 cts constraint 这项工作,完全可以说这个是数字后端工程师最核心的一项技能,没有之一。而且也是数字后端实现整个环节中最具技术含量的一项工作。对于一个复杂时钟结构的设计,如果你能够很清楚地写出 cts constraint,长出很 “漂亮” 的 clock tree,那么整个数字后端实现还有其他的难点吗?
深度解析 Create_clock 与 Create_generated_clock 的区别
为什么时钟树上要用 clock inverter(min pulse width check)
数字后端设计实现之时钟树综合实践篇
合理的时钟结构能够加速 Timing 收敛(时钟树综合中级篇)
Route 后没 short,hold fixing 后存在 short
有的数字后端工程师做事情就是不够认真。比如拿 route 后的数据进行了一轮 hold fixing 后,发现没有 short,以为就万事大吉了,不再做后续的 hold fixing 了(评估阶段)。等最后拿到 final netlist,进行 final run 后发现 hold fixing 会引入大量的 short。主要原因有以下几点:
前期评估 hold 所用的 corner 比较少,所以 hold 数量偏少。后期将所有 corner 都考虑进去后,发现 hold buffer 太多,从而导致 route 出现 short。
Clock skew 比较大,说明 tree 长的不平。虽然 setup 可能是 meet 的,但是两个 clock tree latency 差距比较大的寄存器进行 hold check 时,很容易出现较大的 hold violation。所以在局部区域需要插入特别多的 hold buffer,这样就容易出现 short。
一网打尽时钟树综合 Clock Skew
这种情况其实还是蛮常见的。虽然局部区域 cell density 已经达 97-100%,但是 route 和 timing 都是 OK 的。所以,很多初级后端工程师误以为这不是潜在的地雷。其实这是非常危险的,如果碰到这种情况,不做特别处理,后期 hold fixing 和解 route 问题都是非常棘手和痛苦的一件事。
所以,小编一直反复强调每个 stage 都需要查看 congestion map,cell density map 和 pin density map。这绝对不是为了好玩哦。
字后端实现时 congestion 比较严重,你 hold 得住吗?
动态 IR Drop 偏大
通常情况高翻转模块,也是 design 中 timing 比较紧的地方。在该区域预先插 decap cell 可能会导致 timing 变差。因此,插 decap cell 的方式就显得尤为重要。主要围绕两个原则,一个是 timing 所受的影响较小,在可接受范围之内,第二是 decap cell 要足够多,足以改善 IR Drop issue。
特别是对于需要做 power domain 的模块,更容易出现 IR Drop 问题。由于 Power switch 本身电阻较大,Global VDD 到 Power switch 就存在一定的压降,这个压降比例值往往能占到 1.5%。所以,如果能够定制一款低电阻值的 power switch cell,岂不是一种很好的解决方法。
高层金属比较宽,比较厚,所以电阻值相对较小。所以通常都是用高层厚金属来打 power。
对于项目后期发现的动态 IR Drop 问题,可以从 Redhawk 结果中分析找出压降比较大的点,然后在该区域局部加密 power 的密度。
IR Drop 分析之 Redhawk 分析流程
小编知识星球简介:
在这里,目前已经规划并正着手做的事情:
ICC/ICC2 lab 的编写
基于 ARM CPU 的后端实现流程(已经发布)
利用 ICC 中 CCD(Concurrent Clock Data)实现高性能模块的设计实现(已经发布)
基于 ARM 四核 CPU 数字后端 Hierarchical Flow 实现教程(准备中)
时钟树结构分析(规划中)
低功耗设计实现(规划中)
定期在星球布置作业题(星球已经支持布置作业功能)
在这里,各位可以就公众号推文的内容或者实际项目中遇到的难题提问,小编会在 24 小时内给予解答(也可以发表你对数字后端设计实现中某个知识点的看法,项目中遇到的难点,困惑或者职业发展规划等)。
反正它是一个缩减版的论坛,增强了大家的互动性。更为重要的是,微信有知识星球的小程序入口。星球二维码如下,可以扫描或者长按识别二维码进入。目前已经有四十五 **** 星球成员,感谢这四十五位童鞋的支持!欢迎各位铁杆粉丝加入!终极目标是打造实现本知识星球全员年薪百万的宏伟目标。 (星球的门槛将会越来越高,有需求的朋友趁早上车)****
相关文章推荐
想要彻底掌握 placement 各种技巧,这个一定可以如你所愿!
IC 自媒体访谈:吾爱 IC 社区
教你轻松玩转天线效应 (Process Antenna Effect)
深度揭秘异步复位同步释放原理
数字后端面试问答 No.19-21(每日三问)
这些低功耗设计实现经验,你真的懂了吗?
Lockup latch 的用法,看这个就够了!
深度解析 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 社区。如果大家在学习和工作中有碰到技术问题,欢迎在微信公众号给小编留言或者添加以下几种联系方式进行提问交流。