lef文件如何描述非矩形block
请问大侠如何在lef文件中描述一个非矩形的block。在encounter中input database的时候要看到这个非矩形的block。
在macro的描述中size只有width by heigth 这个描述,也就是说无法完成一个非矩形的描述。
所以想问下对于非标准矩形的block ,lef文件中是如何描述的?
没办法吧
这还真是奇怪, 我看了 几个 polygon 的 block的lef,
SIZE这栏也是简单的 SIZEXxY 这种,
可能是 port的位置和 OBS 的位置描述了这种形状 ,
难道所有的IP都是矩形的?
所以出现polygon的形状,大家都是怎么解决的啊?
astro里面的数据格式,可以吐出比较好的非矩形的lef文件。但是在用encounter 吃进这些lef的时候,还是有一个比较大的外框。就是size by的格式。std cell 如果需要放在这个非矩形的空白部分,就没有办法连线。
所以我就只接将这个size by 改小,然后用blockage 屏蔽出那个多余的部分。
认为不会有问题。形状应该是任意的,但不能有非90角
楼上,如果确实知道的话请给出解决办法
lef是abtract抽取的,又不是写的,你画成什么样就抽出什么样啊,有问题吗
比如你画成凹形,抽出来肯定凹形的,形状是随意的,只是非90度的是没什么实用意义的而已。
表征你的cell 尺寸信息的应该是一层cell blockage之类的layer ,还不够详细吗
请仔细看看小编的问题先。不是lef是不是可以是多边形,而是在encounter中怎么看到多边形。
lef不是多边形,怎么可能看到多边形?小编问怎么使lef多边形,lef多边形encounter才可以看到多边形。
encounter中看到多边形是必然的,如果你的lef是多边形。反之就是你的lef有问题,解决还是要溯源。
回楼上
抽多边形的lef自然没问题。
问题就在于“encounter中看到多边形是必然的”。我没用过encounter不好瞎说,但是icc和astro中似乎只能看到矩形的fram,尽管实际上矩形比多边形多出来的那些地方是没有obs的。
其实,encounter/icc任一个ip的形状,不是认obs,obs是layer的blockage,形状标识的layer是frame layer,或cell blockage ,与obs 无关,default,obs必须(或应该)在frame内部。
lef,obs,fram等等定义不讨论。
第三次替小编说下,问题是如何在encounter等apr工具中看到多边形的macro fram view。
现在的事实是,即使你layout是多边形的,到encounter里也只认size的XxY,这样你看到的fram view一定是个矩形。
我觉得我理解了小编的真正意思,也是真心的希望能讨论出这个问题的解决办法。
但是也许是表达能力不行,大家再听不明白问题所在我也不解释了。
sorry,理解力有问题。 我手头的项目中就有一个ip 是L形的, 是encounter9.1 。
所以我没有遇到过是多边形却看不见的情形。 我还是固执的认为,lef有问题。这也很好证明啊,
是lef的问题还是tool的问题,你打开lef文件看看ip的尺寸描述是矩形还是多边形就行了,如果描述是矩形,那就是lef的问题,如果是多边形,那就是tool的显示问题。请小编回答,期待答案。
这么说那这个问题有解。
我遇到相关问题是很久以前,只能看到矩形的fram,在该矩形之内是非矩形的macro,画个图吧
等着小编解决了这个问题给个方案
说一下我的经验,仅供参考。
在上一个项目中,芯片四个角分别被四个较大的L形IP占据,每个L的直角的朝向对应着芯片的四个角,且每个IP自身都已集成了std IO,我把这四个IP的FRAM做的跟corner一样大(用某层layer如prBoundary来定义),并把IP当做corner来处理,结果抽出的lef的FRAM是正方形(形状与corner等同),但OBS超出FRAM很多,这样做可能对后续的floorplan稍有影响,但只要手工稍加修改即可
一开始也想抽出L形的FRAM,可是最终总是得出矩形,而矩形中去除L后的空白的区域不能用来place std cell了,太浪费了。没办法,只能把它们当做corner来处理。
楼上说的是种解决办法,但也是无奈之举啊。如果不采取措施的话,fram范围内的空白区域是可以放其他ip的,std没试过,大家说不行那就是不行了。
再说一次,你在tool里看到的形状是与你prbondary有关的,如果你的bondary做成的矩形,看到的当然是矩形,即使你里面真正的版图部分是L形,与那无关,是你cell bondary做成什么形? 我算是做lib出身,我不明白我的项目中ip形状做成L形,在icc中就是L形,为什么大家无法得到想要的图形呢?
很简单的事到这里成了无解题了。郁闷
学习。
可能是我没深入研究吧。当时做库的不是我。说是做不出L形的milkyway,就将就用了。回头有时间再试验下。
感谢各位大侠的回复!
问这个问题的本意是这样:就是用cadence abstract提取一个非矩形的block的lef 文件,然后将这个lef导入encounter8.1,发现这个block还是一个矩形的fram view,而且是按照数据最大的边边来定义的矩形。所以就想知道lef中如何描述一个非矩形,而且在encounter8.1中看到的也要是一个非矩形的fram view。
现在我的解决办法是将这个block 用astro提取fram view,然后再转出lef。这样虽然fram view是矩形,但是里面的obs是按照block真实的形状来的;之后再修改fram view大小。再适当用blockage来达到floorplan的目的。
实际上是这样的,lef描述这能矩形,但是我们可以做出任意多边形,条件是只能有90度角转弯。我们是利用多个矩形0 space 拼装出来的,只能这样才可以得到多边形,如L型或凸凹形状。无论encounter view还是astro view,都一样。over
这个问题居然这么多人在这里纠结,我公布一个解决办法吧:
用简单的矩形拼凑起复杂的图案,这个手工处理有效可行,encounter就这样。
再次把这贴顶起来,去年碰到这问题,今年还是,想知道是不是真的在ICC里无法看到“L”形的IPboundry了。
To yueluofenghen:你是houxy吧:) 看见这贴再帮忙顶顶,呵呵
今天刚遇到这个情形。从LEF的规则来看,是无法在其中定义非矩形的外框的,只能采用OVERLAP的方式,使空间不致浪费。
我在同事的提醒下,用Milkyway修改了IP FRAM的cell boundary. 在Milkyway中,可以删除原来的boundary,然后用geAddRectilinearBoundary命令可以创建想要的外框。修改后,保存FRAM,就可以在ICC中看到L形的外框了。
我在修改后再输出一次LEF,结果在SIZE部分仍为矩形,在OBS部分有OVERLAP的内容。
刚才试了一下,非常管用,多谢楼上的了
解决的方法就是在提取的时候,
在pin step 下Boundary 标签
Using geometry on layers:
这里需要填写layer层次,可以只写prboundary;然后再在extract的是overlap
也只写prboundary layer。这样提取出来的lef,就差不多了。
用vim 编辑将prboundary 改成overlap 就大功告成!
再次感谢各位回复!
可以請大大分享一下成功定義非矩形的LEF 內容嗎?
感激不盡。
可以看到非矩形形状的阿
具体怎么生成的没试过,坐看经验