在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 13554|回复: 26

[求助] encounter中nanoroute之后怎么修改布线规则?

[复制链接]
发表于 2011-9-17 18:33:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
急求:encounter中nanoroute之后怎么修改布线规则?就是将单倍线宽单倍间距的线设为双倍线宽双倍间距,该怎么干?用哪条命令?
我本来用的editDelete -net $net,然后用speaficyAttribute(具体这个命令什么样记不清了)修改了布线规则,然后再ecoRoute来重新布线,可是根本没效果,线就没换掉
后改用deleteNet $net删线,可是再ecoRoute就布不上去了,
到底该怎么搞啊?纠结死我了,急求!
发表于 2011-9-18 00:06:25 | 显示全部楼层
NonDefaultRule, 在LEF里设最方便
发表于 2011-9-18 08:24:25 | 显示全部楼层
要2倍间距 还是要一开始设置吧, route完了再2倍就不一定有空间了,

NDR(non default rule)的应用是写一个lef ,比如

NONDEFAULTRULE   2xspaing_1xwidth
   Layer M1
       spacing  2Xspacing ;
        width  1xwidth
   LAYER  m2
       ......
END

然后 loadleffile  ndr.lef
setAttribute  -net @clock (或者别的net)  -non_default_rule  ndr_rule
selectNet  XXX  or  -clock
globaldetailrotue  -select

如果只是单纯的 几倍间距 ,很简单,不用设这个rule也行,用
setAttribute -extra_preferred_spacing 2~X  即可
发表于 2011-9-18 08:26:34 | 显示全部楼层
删除物理(wire)连线用的是 editDelete  -net XXX -type signal

deleteNet 是逻辑上删除,就是verilog里面删除,是要小心应用的
 楼主| 发表于 2011-9-18 09:26:34 | 显示全部楼层
谢谢各位老大的回帖!迫不及待,立马去试
 楼主| 发表于 2011-9-18 09:41:42 | 显示全部楼层
回复 3# icfbicfb


    不过我有一个疑惑,规则什么的我早都早lef里加好了,问题是,在最终布线之后更改布线规则不是需要删掉原有的线然后重新布吗?如果editDelete -net后,就选不中被删掉的线了,globaldetailRoute -select就没法用了,我也这样试过的,行不通。
难道最终布线后该布线规则没必要删掉原有的线???
发表于 2011-9-19 07:16:49 | 显示全部楼层
editDelete -net 只是删除wire吧,没有删除原来的net 关系,
selectNet  XXX
globaldetailroute -select 当然是可以的啊, 只要逻辑上存在这个net就行

有些ecoroute如果太大,还是建议一开始做,比如2倍spacing这种,
 楼主| 发表于 2011-9-19 12:27:14 | 显示全部楼层
回复 7# icfbicfb

在trailroute时做以前尝试过,因为跑完PT后在回去迭代周期太长,所以暂且先在si后做一部分试试。我的设计布线资源比较宽松,用globalroute工具好像会自动优化出合适的布线空间。

我尝试做一条时没什么问题,可是我写了个脚本,使用一个循环将所有的需要换的线都更改好布线规则,并选中后,统一做了一次globaldetailroute,结果换规则没有成功。这是什么原因?
难道非得做一条,就globaldetailroute一次吗?那样的话,换的线多了时间也太长了,我觉得工具应该不会这么笨才对,求教应该怎么做????
我的写法大致是
set nets [open vio_nets.txt r]
foreach net $nets {
                               setAttribute -net $net -non_defalut 3w3s.rule
                               editDelete -net $net
                               selectNet $net
                           }
globaldetailroute -select
close $net
注:vio_nets.txt 里放的是已经提好的要换的线
结果换规则没有成功,规则是写在lef里的,确信是没问题的,怎么才能有效率得成片换?
发表于 2011-9-19 17:17:38 | 显示全部楼层
set nets [open vio_nets.txt r]
foreach net $nets {
                               setAttribute -net $net -non_defalut 3w3s.rule
                               editDelete -net $net
                               selectNet $net
                           }

z这个是tcl 语言没写好吧

一般是  while {[get  $nets line] >= 0} {
$nets 是个句柄吧, 不能直接 foreach的,
 楼主| 发表于 2011-9-19 19:47:09 | 显示全部楼层
回复 9# icfbicfb


    是tcl语言,是我没写清楚。因为vio_net.txt里的格式是所有的线名都在一行,以空格隔开的,所以用了foreach来循环。
你说的那个是按行提取,用于一行只有一个线名的格式。
这个脚本很简单,没什么语法问题,我本来是想问需使用的命令是不是有掉的。
不过今天已经搞定了,做法没什么问题,可能是人品问题,前两天怎么试都不行,今天下午莫名其妙得好使了,现在也没搞明白怎么回事。
呵呵,十分感谢您的解答!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-29 17:49 , Processed in 0.023975 second(s), 11 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表