如何用dbShape并显示dbShape运算之后的结果

电子说

1.2w人已加入

描述

主要内容:如何用dbShape并显示dbShape运算之后的结果

我们可以在Innovus中通过dbShape来对一些shape进行几何运算,比如OR AND XOR等,这些对于我们写一个版图上Check的custom tcl或者基于版图的分布情况生成一些Placement/Routing blockage等等是非常有帮助的。比如星球分享过的:

如何写脚本检查设计中是否Missing filler(也就是std cell之间存在gap)问题,并且将Error显示在Error browser中?

那么对于运算之后的结果,我们如何将它显示出来呢?

我们可以通过add annotation的方式来完成,在ICC2里面命令是gui_add_annotation,在Innovus里面是add_gui_shape,示例如下:  

  GUI

两个图形直接做OR运算之后得到的是一个polygon,是不能直接用add_gui_shape -polygon来实现的,因为两者格式不一样,感兴趣的可以试一下就知道了,下面给出一个解决方案:

可以把polygon里面的多个rect来分别显示出来,也就是用多个rect拼起来显示出polygon的形状:

foreach i [dbShape $shape1 OR $shape2 -output rect] {add_gui_shape -rect $i -layer xxx}

效果如下图所示: 如果你觉得出来的结果是空心的不方便看,那么还可以通过下面的命令来修改显示的pattern和线宽

setLayerPreference xxx -color yellow -lineWidth 9 -isVisible 1 -stipple Cross

GUI  

现在你可以思考一个问题,我们如何计算上面运算结果的多边形Shape的面积呢?应该用什么命令呢? 你可以自己思考探索一下。    

下面公布结果:

答案还是dbShape命令:

[DEV]innovus 6> dbShape $shape1 OR $shape2 -output area 28

任何dbShape运算产生的多边形都可以用上面或者下面的方式来得到它的面积:

[DEV]innovus 7> dbShape [dbShape $shape1 OR $shape2] -output area 28

和真实面积是吻合的:4*4*2-2*2=32-4=28







审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分