长文 - 如何分析并手工修复Noise问题 ​- 附tcl脚本分享

科技   2024-06-25 18:18   上海  


公众号粉丝数突破3W了

感谢大家的支持

本文选自知识星球,星球原文:

https://t.zsxq.com/xh6qP

同时星球还有SI专题系列,更多干货知识以及后端笔记、视频教程等,欢迎加入星球进行查看。

星球上线了基于GPT4和个人IC设计知识库的IC设计 AI机器人 ,且最近将模型升级为了GPT-4 128K模型,也加入了更多IC知识库,星球成员可以免费使用!!AI机器人24小时随时随地都能立刻回答用户的提问哦,效果非常棒!可以同时在电脑、手机、平板等多个平台上使用。

AI机器人还有绘图功能哦,最近几期的封面都是用AI机器人绘制的。

AI机器人的所有功能介绍如下:

基于GPT4和个人IC设计知识库的IC设计机器人v1.0正式上线

同时星球QQ群还有分享高达55万+字的个人数字后端设计笔记,欢迎加入。


《长文 - 如何分析并手工修复Noise问题 

- 附tcl脚本分享》

本文6页半,将近4千字,干货多多。

前面依次分享了:

《数字IC后端设计中noise违反的修复方法 - 1 理论知识 - 如何解决xtalk问题?》

https://t.zsxq.com/04IuNfQV7


《在ICC中如何报告设计中是否存在Noise违反并让工具自己修复Noise违反》

https://t.zsxq.com/042zFIam6

这里接着分享一些其他的工具无法修复的Noise问题我们该去如何分析并修复,然后会分享一个我常用的修复的Tcl脚本,解决Noise问题非常高效。


如果ICC里面自动修复无法修掉的话可能就得手修了或者就是让PT做ECO来修,这里先讲下如何手修。基本的思路就是前面理论部分分享的内容,这里以增大间距和插入buffer断开Net为例进行演示:

方法1

icc_shell> all_connected xxx/u_e203_exu_csr/n239

{xxx/u_e203_exu/u_e203_exu_csr/U402/ZN xxx/u_e203_exu/u_e203_exu_csr/U401/A2}


report_noise_calculation -from xxx/u_e203_exu/u_e203_exu_csr/U402/ZN -to xxx/u_e203_exu/u_e203_exu_csr/U401/A2


above low没有问题:

Below high有违反:

高亮最大的aggressor以及victim,可以看到它们距离非常近,平行走的距离非常长:


可以手工把aggressor net挪到旁边空的地方,防止平行走太长距离:

修复之后检查结果:

update_timing

report_noise -all

可以看到上面的那个问题已经被修掉了,但是你会发发现,产生了一个新的更大的违反,这个应该是aggressor对新的附近的net产生的问题,这种方法就存在这种风险,所以最好是找一个比较空的,附近几个track没有shape的地方去挪,这样不容易产生这种问题。或者也可以通过加ndr的方法(这个在星球对应的QQ群里面有几十万字的ICC笔记,里面有分享的,这里就不讲解了)。

接下来分享另一种比较高效的方法:


插入Buffer的方法:

前面两个违反是同一个Net上的,因此修一下就能解掉两个违反。

两个fanout的绕线和飞线连接:

用add_buffer_on_route去打断net:

add_buffer_on_route -location "650 3471 65" xxx/u_perips_apb_pwm/u_tim0/u_in_stage/n86 BUFHDV2

线会自动连好,不用ECO再连了,Log:

Nets that have been changed:

Net 1 = xxx/u_perips_apb_pwm/u_tim0/u_in_stage/eco_net_0_n86

Net 2 = xxx/u_perips_apb_pwm/u_tim0/u_in_stage/n86

Total number of changed nets = 2 (out of 105782)

修复之后的结果(可以看到前面两个最大的违反一下子就被解掉了):



上面的方法比较麻烦,需要手工去定位哪里去插入Buffer,这里分享一个自己编写的Tcl脚本,它可以找到net里面最长的shape和layer(一般noise问题就是长的shape并行走比较长的距离导致的),自动找到中点然后add buffer on route修复Noise(对于解DRV也很有帮助):


使用示例,source脚本之后执行:

icc_shell> hq_eco_add_buff_on_longest_shape -net xxx/u_core/n72 -buf BUFHDV2

Will add_buffer_on_route at location (3629.68 2613.28), layer: METAL3 (63), buf: BUFHDV2, shape length: 300.160

剩下两个net用这个方法修了之后的结果:


Tcl Proc分享

见星球原文:https://t.zsxq.com/xh6qP



星球简介


目前星球中一共分享了19本+系统性的、整理成册的笔记,高达55万字+,2024年星球将分享更多私人笔记,逐步完善整个IC设计生态。
以后知识星球也会陆续会开放:
《Timing/DRV修复的专题笔记》 《ICC2 flow教程》 《Makefile在IC设计中的应用》和 《RedHawk教程笔记》 等等。
目前已上传的笔记有:
  • 低功耗设计技术总结 - 3万字,129页
  • IR drop的分析与修复总结 - 4.3千字,20页
  • 数字后端理论及实践-ICC干货笔记 - 11万字,423页
  • 数字后端理论及实践-Innouvs教程(第4版)- 5.7万字,316页
  • ICC2教程-星球精编版 - 2万字,125页
  • 数字后端理论及实践-Innouvs教程(第5版)- 11.8万字,635页
  • 面试笔试题整理 面试笔试经验分享(第1版)- 1.6万字,48页
  • 面试笔试题整理 面试笔试经验分享(第2版)- 2.3万字,87页
  • ICC2 ICC与Innovus的命令对照(第1版)
  • Tcl与DesignCompiler教程(第1版)- 6.1万字,183页
  • DRC规则讲解、DRC的检查与修复(第1版)- 7.3千字,26页
  • Congestion的分析与修复专题(第1版)- 1.2万字,41页 
  • Perl-Tk教程(第1版)- 1.6万字 73页
  • 星球精华推文分类整理合集(第1版)- 1.8万字,75页
  • 星球精华推文分类整理合集(第2版)- 4.4万字,160页
  • 面试笔试题整理 面试笔试经验分享(第3版)- 2.7万字,96页
  • 星球精华推文分类整理合集(第3版)- 6.6万字,240页
  • 时序分析与sdc专题笔记(第1版) - 3.1万字,115页
  • 星球精华推文分类整理合集(第4版)- 8.4万字,296页
  • 更多教程、笔记持续更新中。。。 


集成电路设计及EDA教程
知识 前端 后端 DFT 低功耗 验证 EDA 1rtl检查:LEDA 2仿真:VCS 3逻辑综合:DC 4形式验证:Formality 5布局布线:ICC 6STA:PT 7功耗分析:PTPX 8DRC LVS:Calibre
 最新文章