icc 如何创建不规则core size?
各位大牛,请教 icc 如何创建不规则core size?
我没有试过,但是根据脚本,不是有个create_die_area -poly {xxxx}嘛,那个{}里面就可以设置坐标啊。
个人意见,仅供参考啊。
create_die_area -poly {xxxx} {}里面的是外框的大小,这个我不希望改变的,只希望能改变内框的大小core_size ,并且希望core ring,能沿着这个不规则的core_shape创建;
在icc里面试验了一下 reshape,结果内外都改了!
想通过get_attribute 得到core 的bbox,但是还没试验成功!
谢谢你的解答,继续求解中!
哦,不知道你有没有用GUI的Floorplan里面的选项试试?ring那个没关系,到时候设个blockage或者create的时候分开一条条布也行。
也希望你能尽快解决。
cut row
前两天调休,这两天我试试;以前用magma,手动就可以调内框大小的,很方便;刚用icc 还不很熟悉。
这个命令我正在试,还没创建ring呢,发现itf出了些问题,这了两天这个问题应该解决了;下面就是cut row完了创建ring了,我再试试
die area不知道怎么调
ring的话用GUI里面的custom wires 那个操作起来比较方便
的确很方便,我开始用 create_rectilinear_rings -exclude_instances {analog1 analog2 ... } 自动执行的,然后手动调整;不过这个图形化的很方便!
之前一直想创建一个不规则的core_size,经过试验,到目前为止发现, core_area 是个不可更改的对象,row是可以cut的,所以就更改row好了;
不规则的ring 和 row都创建好了之后,创建了strap,发现strap可以自动extend ,但是ring 凹进去的部分,就超过去了,只能自行裁剪;
create_rectilinear_rings -exclude_instances {analog1 analog2 ... } 这个倒是没试过撒。改天去试试。手动调整比较怕有drc问题,所以我基本不愿意在自动之后再手动。
请教如何更改row?
strap的话我基本没裁剪,就是设终点的时候注意一下
cut_row -area { {x1 y1} {x2 y2} }
strap我也试试设置终点!刚裁了半天;
多谢!
create_boundart -core -poly {}
不行啊,刚试了下,指定了 -core 必须指定 -coordinate ,但是 -coordinate和 -poly 是互斥的,也就是说 create_boundary -core -poly {point point ...} 是无法执行的。
我用的是D-2010.03-ICC-SP5, 你用的是什么版本的,能执行吗?
那就没办法了,你可以先把die area弄大一些,使得core的形状改变在die区域自由进行。用set_object_shape设定想要的形状,然后在设定合适的die size。
可以执行:
我选中 core ,然后执行set_object_shape r [get_selection] -lengths {4000 4000}
但是 set_object_shape -shape只有:rect,l,t,u,cross , 我希望的形状不在这里面,如果有个-poly选项就好了,还有什么方法吗?
试试set_object_boundary
这个可以改变core为poly,但是die area 也会跟着更改;相当于reshape命令;
我希望die area 是rect,core是很复杂的poly(非 r,l,u.t,x) ,这就难办了
那我也无能为力了。
没关系,谢谢你! 我就创建不规则的ring然后cut row好啦!
不明白cut_row到底有什么意义?能麻烦小编能详细讲解一下。谢谢!
还有add_row和cut_row的面积无法对应,比如cut_row -area {{0 0} {100 100}}之后,我又add_row -area {{0 0} {100 100}}会报错,说:No area left after cutting off the overlapped region.Invalid bbox {{0 0} {100 100}}。我要是改成add_row -area {{1 1} {99 99}}又可以了。是不是这里面有什么面积要求?
再次感谢您的帮助!
设计中某些区域,不希望摆放standcell,也不希望创建rail,就用这个命令;我对row进行了更改(不是用cut row ,而是选中site row,做window stretch),做detailed_placement的时候报错:
Error:The distance between the left edge of the core area and the left edge of row STD_ROW_2041 is not of multiple site width.(PSYN_326);
所以对row的操作,肯定是有要求的,这里面要求被切掉的row的边沿到core的距离,必须是core site width(unit tile)的整数倍
首先感谢您的解答!
我本来也以为cut_row之后不会放标准单元也不会走线,但是我create_power_straps和preroute_standard_cells在cut_row的area中还是可以走线的,所以很郁闷,就来请教您了。可能是我哪里设置不对了,希望能指点一下!
您说的那个core site width是add_row出现的error的原因吗?
非常感谢您的帮助!
你报的:No area left after cutting off the overlapped region.Invalid bbox {{0 0} {100 100}} ,显然是overlapped,所以,你可以先cut 之后,再仔细量一下,是不是你期望的;
啊?您的意思是工具cut不是根据我设的area?还会有偏差?
我的猜测是cut之后再add会有一些缝隙,不能回到原来的样子。但是究竟是怎么回事,就不知道了,所以之前看到您的帖子就来请教了。
谢谢您的解答!
客气了,我是icc菜鸟一枚;add_row 不会完全按照我们给定的形状创建,会做调整,所以会和你之前的切剩下区域overlap
木有啦,都是慢慢成长的。我是菜菜鸟啊,哈哈!
哦,这样啊,谢谢您的解答!
想知道搂主为什么要创建不规则的core ring?想实现什么目标?
如果仅仅是为了画不规则core ring、摆放不规则floorplan等
完全可以有更好的办法
最终还是希望创建不规则的floorplan ,同时希望core ring 环着这个不规则的floorplan创建, ;我现在只能用 create_rectilinear_rings, 和cut row 来创建满足我要求的floorplan,但是core area 还是rectangle形状; 不知道您有什么好方法,请赐教!
不规则floorplan,可以用placement blockage控制
不规则core ring:举例如下
set pogon {{168 168} {3681 168} {3681 3681} {1756 3681} \
{1756 3409} {168 3409}}==〉指定不规则图形顶点坐标
synthesize_fp_rings -nets {VDD VSS} -polygon \
$pogon -corner_bridge -layer {M5 M6} -width {25 25} -space {0.6 0.6} -offset {5 5}
还有其他要求吗?欢迎提问