EETOP 创芯网论坛 (原名:电子顶级开发网)

标题: 怎样做ICC的布局 [打印本页]

作者: albert_eetop    时间: 2012-7-19 16:33
标题: 怎样做ICC的布局
我以前用encounter的。在做place之前,一般会把power (ground)net连好。在ICC里怎么做这部分工作?
在做完create_rectangular_rings和create_power_straps以后,需要将IO、RAM block上的电源、地连接到VDD或VSS上,我用edit->create->custom wires...连接,怎么不让我进行连续,报DRC error(当连线接近RAM的VSS或VDD的pin上时)。
还有std cell上的power(ground)线怎么连接到power(ground) ring上啊? (encounter挺简单的,但在ICC中找不到对应的命令)
不知我这样的做法对不对?听说ICC用脚本就可搞定。受encounter的影响,以上的步骤弄不过去,请高手指点,谢谢!
作者: damonzhao    时间: 2012-7-19 16:54
preroute_instances
preroute_standard_cells

个人觉得还是EDI做FloorPlan好用,呵呵
作者: albert_eetop    时间: 2012-7-19 17:18
回复 2# damonzhao

这两条命令是做什么用的?
我试了一下,好像做了什么,但layout view上没什么反应啊?
作者: albert_eetop    时间: 2012-7-19 17:24
还有,楼上damonzhao 能不能给些详细的解释,指点一下怎么做floorplan,谢谢!
作者: damonzhao    时间: 2012-7-19 17:45
preroute_instances是连接macro的power的

preroute_standard_cells是连接stdcell的power的

你可以到坛子里面找lab数据,有一节就是将dp的,你可以用它的脚本体验一把
作者: albert_eetop    时间: 2012-7-20 09:55
回复 5# damonzhao

谢谢!
作者: 何奎    时间: 2012-7-23 20:00
有没有derive_pg_connection?
作者: edayz    时间: 2012-11-1 11:55
学习了!
作者: half_honey    时间: 2012-11-2 12:43
回复 5# damonzhao


   和derive_pg是一个效果?
作者: damonzhao    时间: 2012-11-2 13:22
回复 10# half_honey


   不一样
作者: half_honey    时间: 2012-11-2 13:40
回复 11# damonzhao


   具体点吧 - -
作者: damonzhao    时间: 2012-11-2 13:48
derive_pg只是定义了连接关系
但是具体的route命令才用metal将他们连接起来
作者: half_honey    时间: 2012-11-2 14:54
回复 13# damonzhao


   苦等了好久。。。才发现你又木有回复我。。。
作者: damonzhao    时间: 2012-11-2 15:04
回复 14# half_honey


   纯操作失误
作者: xdfghj    时间: 2012-11-14 17:05
回复 2# damonzhao


    大侠,我描述一个问题:使用工具为ICC,在进行数模混合布局布线时,会有将数字部分放在一块拥有电源环的区域内,即placement standard cell时,可以做怎样的处理,连线多的std cells区域放置数量少一些,连线少的std cells区域放置多一些,也就是std cells不是简单地放置,而是有某种设置的和技巧的放置?希望您能给些建议,谢谢
作者: damonzhao    时间: 2012-11-14 17:42
回复 16# xdfghj


   一般timing driven和congestion来控制吧
有时候也要用placement blockage来约束下,需要具体分析了
作者: xdfghj    时间: 2012-11-15 09:12
回复 17# damonzhao

那您在具体的项目中在放置标准单元的时候都做过怎样的处理,可不可以列举一二?谢谢你。
作者: damonzhao    时间: 2012-11-15 09:24
回复 18# xdfghj

其实都是看项目需要,看floorplan的情况去调整。place的也是为了cts和timing再就是绕线。
  比如 需要提前固定的cell,那就优先处理;需要放置到一起的cell就提前约束;如果存在拐角的区域,那就用blockage控制比率;如果绕线比较拥挤,要分析是局部utilization太高还是组合逻辑太多;还要根据具体情况判断是约束合不合理,绕线资源够不够,面积够不够等。
我也只是泛泛的说说,没有很绝对的东西,要具体去判断,去考虑,去应对。欢迎多交流!
作者: xdfghj    时间: 2012-11-15 10:56
回复 19# damonzhao


    你好,主要是刚出这行,问的问题可能比较浅显:请问一、做怎样的约束才能让我把想放置在一起的std cells放置在一起,有具体的命令吗?二、ICC工具什么命令可讲某个cell设置为叶子单元?三、在准备库的初期,MW库中的LM文件是不是就可以不需要了啊?(Astro是一定要的,ICC工具有db文件是不是就不需要LM文件了)?四、在ICC读入天线效应的规则文件时,并不认文件中的语法,请问是不是要手动修改规则文件还是有其他的方式去处理?五,怎样设置不被优化的std cells?(Astro里的命令,ICC都不认),一下子问了那么多,麻烦了,谢谢你。
作者: damonzhao    时间: 2012-11-15 11:35
回复 20# xdfghj


1. IC Compiler Implementation User guide 2010.03 page6-8
2.没明白,是CTS的时候么?IC Compiler Implementation User guide 2010.03 page7-18


3.IC Compiler Implementation User guide 2010.03 page3-2。LM应该就是Logic library部分。


4.IC Compiler Implementation User guide 2010.03 page9-7


5.set_dont_touch


好多问题,优先从user guide找出答案。官方的文档最准确,最全面。也避免了很多的盲目。命令的使用说明,就找command的文档说明。
多翻翻这些文档有益无害。也欢迎多到置顶的后端概念贴中讨论。
作者: xdfghj    时间: 2012-11-15 13:15
回复 21# damonzhao


    谢谢你,我会仔细看的,你人真的好好啊。
作者: damonzhao    时间: 2012-11-15 14:24
回复 22# xdfghj

呵呵,每个人学习中都有差异,互相交流,互相学习吧能想到很多问题是很厉害的。找到答案了,就慢慢累积起来了
作者: jrmjrf    时间: 2012-11-19 21:12
布局布线刚开始学感觉挺难的~~
作者: xdfghj    时间: 2012-11-22 13:59
回复 23# damonzhao


    你好,我已经可以用ICC进行一个小芯片的布局布线了,可是到最后一步有天线效应违例,请问怎么修复啊?谢谢你。
作者: Alicezw    时间: 2012-11-22 14:32
回复 25# xdfghj


    你route里面用了什么命令啊?
作者: xdfghj    时间: 2012-11-22 15:01
回复 26# Alicezw


    route_zrt_auto用的这个命令,请赐教
作者: Alicezw    时间: 2012-11-22 15:13
回复 27# xdfghj


    哦,我也是新手啊,很多不会呢。呵呵!
   你再试试route_zrt_eco,route_zrt_detail.
   还可以查查相关的命令,man一下它的作用。然后再捣鼓捣鼓。呵呵!
作者: damonzhao    时间: 2012-11-23 19:24
回复 25# xdfghj


    有antenna的tcl,设置constrains后,然后工具会自动修复

或者设置加diode,或者切换线,或者加buffer
作者: malin2011    时间: 2012-11-23 20:21
回复 29# damonzhao


    damonzhao 真是好人啊,回答了这么多问题。。
我是刚接触这个软件不久,出了这么两个问题:1.unable to get layer METAL2/3 in physical library
                                                           2.No floorplan is defined for current design

我用Astro创建的Milkyway 库,里面有单元的CEL 和FRAM view,但是做到Floorplan的时候就出了上面的错误,在网上查了好久根本查不到,不知道我描述清楚了问题没,希望damonzhao  一定帮帮忙啊!
再次感谢!
作者: Alicezw    时间: 2012-11-23 20:45
回复 29# damonzhao


    再问一下版主,执行了 antenna的tcl之后,还是有天线效应违规,除了手动跳线,还可以用什么命令解决吗?
    非常感谢!
作者: damonzhao    时间: 2012-11-24 10:40
回复 30# malin2011


   好人不敢当,大家一起讨论问题嘛
Astor我没用过,只提供一个思路:

检查下tf文件,看里面定义的met的名称是怎样的,看能否对应。
作者: damonzhao    时间: 2012-11-24 10:43
回复 31# Alicezw


   跳线不需要手动,工具就会尽力去做了。
还有就是你选择有error的net,显示一下看看,一般是因为连线过长,有迂回绕线等原因造成、
可以选择合适的location,手动插入buff即可
作者: malin2011    时间: 2012-11-24 11:39
回复 32# damonzhao


   我创建的milkyway库应该是没问题的名字叫做mw_lib,里面已经有单元的CEL FRAM view,做工程时候,首先打开这个mw_lib,但是坐到后面就会发现有这样的Information: No physical library loaded                         warning     :Should load the physical library before reading the design。。
                         Error         :cannot find site in physical library with w=660 h=5040
                         Error         :unable to get layer METAL2/3 in physical library

难道我打开的mw_lib不是physical library吗?我要是基本概念没搞错了,请大家轻喷我啊,我被这个问题搞颠覆了都!
作者: damonzhao    时间: 2012-11-24 12:06
回复 34# malin2011


   创建design library不是需要tf文件么?
作者: Alicezw    时间: 2012-11-24 14:41
回复 33# damonzhao


    哦,谢谢!
    我们一般在ICC里用脚本insert diodes,没问题之后再到Cadence Virtuoso里calibre验证DRC和LVS和天线效应,这个时候要是有很少的违规就会在版图上手动跳线。
    我对这一块不太清楚,就是之前做的一个module,在ICC中修了之后还有很多问题,不知道可以用什么命令解决?
    你说在ICC中插buffer,嗯,没试过这种,以后可以尝试一下。呵呵!
    非常感谢你的帮助。
作者: xdfghj    时间: 2012-11-26 15:48
回复 29# damonzhao


    好的,谢谢你。
作者: malin2011    时间: 2012-11-27 09:44
回复 35# damonzhao


    我有tf文件,并且加载正确了,你创建库的时候用ICC的命令create_mw_lib ,还是GUI,还是用别的工具?具体怎么怎么弄的啊,我每种方法都试过了,但就是报上面的错误,真不知道该怎么继续了,求指点啊!!多谢了。。
作者: damonzhao    时间: 2012-11-27 10:29
回复 38# malin2011


   command和gui都可以啊
推荐你找个lab,按照人家说的走一遍,这种错误的确没碰到过。感觉就是某个地方出error了,但是你没注意到,多留心log文件。
作者: malin2011    时间: 2012-11-27 10:54
恩,多谢了
作者: uiliti    时间: 2012-11-27 16:01
可以参考create_fp_placement的摆放结果,然后进行调整
作者: xdfghj    时间: 2012-12-4 10:33
回复 37# xdfghj


    大侠你好,在用ICC进行时钟网络布线时,教程中有讲要自定义单独的布线规则(比如两倍间距,两倍金属宽),请问这个布线规则是一定要的吗?或者说为什么需要不同的布线规则?谢谢你。
作者: Alicezw    时间: 2012-12-4 10:55
回复 42# xdfghj


    可以看看use guider关于route的部分。
    一般是.18或.13或90nm以下才会考虑,增加金属宽度是为了降低IR drop,增加间距是为了避免串扰。
作者: xdfghj    时间: 2012-12-4 15:22
回复 43# Alicezw

我用的是180nm的工艺,也就说时钟树的布线一定要用特殊的布线规则了?谢谢你。
作者: Alicezw    时间: 2012-12-4 16:18
回复 44# xdfghj


    也不是一定的啦,看你实际工程需要吧,我们一般是用这个的。
    我只是个菜鸟,仅供参考。
作者: xdfghj    时间: 2012-12-4 16:43
回复 45# Alicezw


    好的,谢谢你。
作者: xdfghj    时间: 2012-12-10 17:28
回复 5# damonzhao

你好,我只有工艺厂给的适用于Astro工具的天线效应的规则文件,我将其修改成适合ICC工具的tcl语言,但是我不能保证设置的对应参数是否正确,麻烦帮忙确认一下好吗?谢谢你。
( , 下载次数: 129 )
作者: damonzhao    时间: 2012-12-11 10:41
回复 47# xdfghj


   能问一下是什么process的么?
作者: kai.chen    时间: 2012-12-11 11:04
学习!
作者: xdfghj    时间: 2012-12-11 15:19
回复 48# damonzhao
.18工艺
作者: alicez719    时间: 2012-12-11 15:36
回复 47# xdfghj


    可以在建库时用Astro中导进去,在ICC中用命令写出来阿  ,这样就不用自己手动改了
作者: damonzhao    时间: 2012-12-11 16:15
回复 50# xdfghj


   应该没问题,你可以先跑一边,然后导出gds给calibre做下验证
如果有问题,你可以把ratio改小点。
作者: xdfghj    时间: 2012-12-11 16:19
回复 51# alicez719


    这个方法也好,谢谢你。还想请教一个问题哈,我知道set_dont_use命令的格式,可查到,但是在我不能使用某个库中的一个cell时,具体的命令可否给一个实例啊,一直不成功,说找不到那个cell,是不是还要把库的路径写出来啊,是db库?谢谢
作者: xdfghj    时间: 2012-12-11 16:20
回复 52# damonzhao


    好的,我试试看,谢谢
作者: alicez719    时间: 2012-12-11 16:30
回复 53# xdfghj


    set_dont_use  [ get_lib_cells  $lib_name/$lib_cell_name]
作者: xdfghj    时间: 2012-12-11 17:04
回复 55# alicez719


    设置成功,谢谢你,最后一个问题,我用set_clock_tree_exceptions  -exclude_pins  设置clk引脚到某个引脚之间在时钟树综合时不插入buf单元而是直接连线,但是实际时钟树综合后还是插入了以两级时钟buffer,请问是否不是用这个命令去实现的啊?能讲一下用什么命令吗?谢谢你!
作者: alicez719    时间: 2012-12-18 17:38
回复 56# xdfghj


    你尝试一下set_clock_tree_exceptions -dont_buffer_nets ###
你在终端中man一下set_clock_tree_exceptions 讲的很清楚
不好意思   刚看到你的留言
作者: xdfghj    时间: 2013-1-22 16:50
回复 2# damonzhao
你好,大侠,我是用的工具时ICC

在sdc中设置set_max_capacitance  0.1   [current_design]
                   set_max_transition    1      [current_design]
                   set_max_fanout        20     [current_design]
然后设置set  psynopt_high_fanout_legality_limit   20命令,在进行完place_opt后,report_net  nRst  得到其Fanout为513,  请问是什么原因啊?谢谢你
作者: damonzhao    时间: 2013-1-22 17:02
回复 58# xdfghj

你的那条net有没有特殊属性呢?dont touch啥的
作者: kusunoki    时间: 2013-1-22 17:51
进来学习一下
作者: xdfghj    时间: 2013-1-23 08:45
回复 59# damonzhao


    没有,它类似于一个高扇出信号。
作者: damonzhao    时间: 2013-1-23 09:38
回复 61# xdfghj

就是HFNS问题吧

place_opt过程就会做。


create_buffer_tree也会做。


看看user guide启发下。place_opt后也没处理这就需要分析下net的属性了,不是ideal或者dont touch就好
作者: xdfghj    时间: 2013-1-23 17:06
回复 62# damonzhao


    OK,谢谢你
作者: xdfghj    时间: 2013-2-21 13:36
回复 62# damonzhao


    您好,再次麻烦您啦:有这样一种单元(比如或非门,其一端AN接时钟信号,一端B接控制信号,也就是类似于时钟门控单元),在Astro和PT工具中会直接报出到B的时序信息违例,而在ICC中即使设置timing_separate_clock_gating_group变量为true也不会报出这类信息,请问,在ICC中怎样设置才会报出这样的时序信息啊?谢谢!
作者: damonzhao    时间: 2013-2-25 15:41
本帖最后由 damonzhao 于 2013-2-25 15:43 编辑

回复 64# xdfghj


   你直接用report_timing来报一下看看能出来不
ICC不报出来,PT可能报出来,很正常,PT的结果比ICC更悲观些准确些
作者: xdfghj    时间: 2013-2-26 08:46
回复 65# damonzhao


    report_timing不能报出来,就是那个cell不能被认为时钟门控,不知道有什么命令?
作者: half_honey    时间: 2013-2-26 09:47
回复 52# damonzhao


   这个ratio怎么理解?
作者: damonzhao    时间: 2013-2-26 15:19
回复 67# half_honey


   antenna ratio,简单的定义就是与栅氧区相接的metal的面积/栅氧区的面积。
作者: rlatnrud0310    时间: 2013-5-14 01:14
谢谢!
谢谢!
作者: whynoreason    时间: 2013-5-28 15:53


   
回复  damonzhao


    你好,主要是刚出这行,问的问题可能比较浅显:请问一、做怎样的约束才能让我把 ...
xdfghj 发表于 2012-11-15 10:56



请问你的问题一怎么解决的,后来用的哪条指令呢?我的实际情形就是:两个或非门组成的rs latch,想把这两个放置在一起,该如何设置呢?多谢!
作者: xiaoyisimonguo    时间: 2017-8-12 05:30
回复 59# damonzhao


   after I used

create_fp_placement



I got this:
Error: Found macro cell without fixed placement: 'I_CLOCK_GEN/I_CLKMUL' (PNR-151)

but how could I fix the placement, I tried to use DEF the same fashion as IO and IO fillers
it failed

please help
作者: fxty    时间: 2017-8-12 08:47
就不能看个user guide ? 上面都有
作者: ralphtwtw    时间: 2017-8-13 22:08
who know it???
作者: aiwyy    时间: 2020-8-7 20:22
   不一样
作者: xiaocheng12345    时间: 2021-3-11 18:13
preroute_instances连接macro的power,连接的不是很好,就是比如IO会连接两个挨着的pad中间的部分出线,这样浪费空间,还有SRAM这样有很多电源的,会占用更多空间,没有手动连接省空间。




欢迎光临 EETOP 创芯网论坛 (原名:电子顶级开发网) (https://bbs.eetop.cn/) Powered by Discuz! X3.5