Script Set to Plugin - Unit 5: PG Mesh Script

 

​今天来讲讲PG Mesh的脚本过程,给以前都是比较粗略的讲Power Plan就带过了,做PG最终还是要用脚本,脚本累计累积就可以做成一个EDA工具的插件一样的东西,稳定灵活多变。...

  ↑ 点击 “IC物理设计” 关注,欢迎转发到朋友圈。
我们的努力需要你的肯定。


今天来讲讲PG Mesh的脚本过程,给以前都是比较粗略的讲Power Plan就带过了,做PG最终还是要用脚本,脚本累计累积就可以做成一个EDA工具的插件一样的东西,稳定灵活多变。



当然没有哪一个PG Mesh的结构是适合所有的设计的,很多时候不同的需求催生出来的不同的structure。我在本文中并不是讲怎么具体的写一套脚本,把脚本贴出来,我写出思路,希望我的思路可以给你一点启发,或者你寻着我的思路做一遍PG脚本,做出来的效果不错呢,借鉴这种思路养成写flow的好习惯,你会发现你的脚本库越来越强大,编写具体功能变得越来越顺手。

所以我们从脚本的角度来说,如果你想要编写一套完整的PG Mesh脚本,怎么开始呢?
01

基础知识

EDA Tool Command Knowledge

如果你说我即使是要自己用,而且也不需要那么通用,我不建议你这么开始,在时间允许的情况下不要做得那么急躁,我们的目标是在经过三版的脚本完善之后,基本不需要怎么干预就可以做出比较好的没有DRC的PG。

你需要了解的当然是工具用什么命令来画Metal或者画成片的PG,比如create_shape,比如create_pg_strip等等。如果需要支持多套工具,最好的是可以把某些命令wrap起来,在主程序中调用wrap就可以了。其次你需要了解shape的计算命令,ICC和Innovus都有polygon或者rect的计算命令,挺好用。
02

工作流程

Work Flow to work smart

基础知识准备好之后,我们开始从需求和实际应用出发,指定一些 work flow,比如第一版PG脚本的作用是占住Metal Resource以及评估PG quality主要是IR Drop;第二版是对第一版问题的修缮,而且可以更加细致的关注一些比如channel,analog IP上的PG;第三版是完善脚本,排除DRC。

第一版,利用polygon的计算,将Macro和Std区域分别计算出来,Macro上的PG是比较特殊的,比如有些Memory是需要Always On的Power的,有些是Metal4是横向的等等,而Std Cell的区域比较固定,放rail,metal bridge以及top layer。如果你有多种pattern,或者说多个power domain,还需要结合route blockage,分别多不同的区域做处理,循环重复。

第一版做出来之后,你可以做一下Power Analyze,如果你自己会做当然好,如果有专门的Power Team,出DEF叫他们帮你分析,或者在PNR工具里也是可以粗略地看的。

这版PG做完了其实你可以做Place,在Run Place的时候可以抽空完善PG,做PG的第二版,将Memory和IP上的PG做好,以及一些Boundary上的处理做好,还有Channel里也要考虑,哪些Weak的地方要enhance,哪些Power Switch要调整等等。

第二版应该是一个比较好的版本了,对于Placement的影响不大,你可以将Place之后的DB中的PG全部Remove,然后DEF IN新的PG,这样就可以去Check PG的DRC了。

等有了DRC结果,你就可以趁有空的时候去晚上PG脚本,将一些DRC挑出来,改良PG脚本来避免这些DRC,如果是随机的,那没有法子,如果是可以通过脚本修正的,岂不妙哉。



小结

任何一套flow的建立都不是一蹴而就的,你的一个souce命令可能凝聚着小伙伴一周甚至更多的辛劳。做一套简单的flow,首先你要熟悉你面对的工具或者design的属性,behaviour,然后指定一套有效的work flow,尽量将公共的function提取出来可以共享,然后细化,同时要不断的自我检测flow的可靠性和准确性。

配图来自网络,如有不妥请联系,提供版权证明立即更正。

IC物理设计

微信号:ic_pdi



长按识别二维码关注我们


    关注 IC物理设计


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册