用calibre抽取power line的command file
我也想知道,最好是能做到检查power的大小
calibre can do it?
我也想知道。
这个问题最后你那边解决了吗?
估计得自己写吧,好像没有现成的东东
我也想知道
我能解决,但是请先告诉我power line的具体定义,免得我误会了。
什么具体定义啊
比如VDD要连接到所有pmos
VSS要连接到所有nmos这样吗?
这不是检查ERC的范畴吗?
我只是不明白"抽取power line" 是抽取电源地的寄生还是指把属于电源地的layer抓出来?
是把属于电源的layer抓出来,能否提供一下思路,谢谢
m1_vdd=m1 net "?vdd?"
m2_vdd=m2 net "?vdd?"
m3_vdd=m3 net "?vdd?"
....
power_net{@power net
(m1_vdd or m2_vdd) or (m3_vdd or ...)
}
谢谢snk88
我想把这些layer抓出来,并以gds的格式输出
后面是不是还要加上一句输出,是吗?
那就得分开写了,tvf最好了。
给个例子
懂tcl应该很容易看懂,如果看不懂,那就 看这句
set lay_num [list M1i 7 M2i 9 VIA1i 6 ]
层名和层号对应
举一反三
- #! tvf
- namespace import tvf::SETLAYER tvf::VERBATIM tvf::RULECHECK tvf::OUTLAYER
- VERBATIM {
- //////////////////////////////////////////////
- // flowing lines defined layers
- //
- LAYERM1i7// First Metal layer
- LAYERVIA1i6// Define connect for M2 to M1
- LAYERM2i9// Second Metal layer
- LAYER A1_text 1001
- LAYER MAP 121 TEXTTYPE 0 1001
- TEXT LAYER A1_text
- ATTACH A1_text M1i
- CONNECT M1i M2i by VIA1i
- }
- set lay_num [list M1i 7 M2i 9 VIA1i 6 ]
- foreach {lay num} $lay_num {
- tvf::DRC SELECT CHECK POWER_LAYER_$lay
- puts "CHECK POWER_LAYER_$lay"
- tvf::RULECHECK POWER_LAYER_$lay {
- tvf::@ POWER LAYER $lay
- tvf::OUTLAYER "$lay net vdd"
- }
- puts "drc check map POWER_LAYER_$lay GDSII $lay $num"
- tvf::drc check map POWER_LAYER_$lay GDSII $num0 "output.gds" MAXIMUM RESULTS ALL
- }
试试我给的tvf
非常感谢snk88!
这个tvf文件,也可以用calibre运行吗
用它跑calibre drc
好的
1、得到全部接电源的金属和孔
outM1 { NET M1 "?VDD?"}
outV1 { NET V1 "?VDD?"}依次类推,写完所有的metal和via。
2、将outM1、outV1等rule输出成GDS. 使用的命令是 drc
check
map,具体语法找手册看看就知道,我忘记了。
这样的话就会有多个gds出现啊
我只想一个power就只有一个gds出现就ok的
那就应该这样写了
outM1 { NET M1 "?VDD?"}
outV1 { NET V1 "?VDD?" }
............
............
.............
power_net_vdd {outM1 OR outV1
...........................
}
DRC CHECK MAP power_net_vddpower_net_vdd.gds GDSII
可以设置成只产生一个gds,具体可以参考dummy fill文件,有两种方式
这样写不对。outM1已经是rule名了,不能在放到rule中。要写DRC CHECK MAP语句多次,每次输出一个rule.
你就用我的tvf好了,层次越多,效率越高
恩,我照搬了你的tvf,但是可能我的layer number没有改,gds输出没有东西
我想问下layer map 121 texttype 0 1001这句话是什么意思
我改了layer number号后,output.gds仍然是没有东西,
问题出在哪里呢?
GDSII $num 0
这个“0”是什么意思呢?
谢谢!
当然要层定义的,我的测试用的,跟你的不一定能对上。
0,是datatype,
Specifies datatype or texttype maps from GDSII or OASIS input to Calibre layer numbers.
“0”是哪一层的datatype?
layer map 121 texttype 0 1001
其中这个“121”是谁的layer num?
为什么输出的layer num 是“0” 呢?