我一直这样用没错
看你的case, 确定一下A是A.gds的top cell, B是B.gds的top cell
calibredrv create reference cell
calibredrv操作gds真的是太方便了,在介绍过了《calibredrv merge GDS file》和《怎么flatten一个GDS所有层次》后,有同学提出了怎么能把另一个新GDS调用到已有的GDS。其实方法有好几种,结果也稍有不同,下面举个常用的例子。
假设我们有个 A.gds, top cell是ATOP, 有了B.gds, top cell是BTOP, 之前说过的merge gds file, 可以把A.gds和B.gds合并,要么 ATOP和BTOP平级,要么 ATOP和BTOP同属一个新top的子cell, 那如何让 BTOP作为ATOP的子cell呢?也就是不改变ATOP的情况下把BTOP调用到ATOP。
其实这在 calibredrv的文档中 $L create cell 介绍时已经给出了现成的例子,如下
#Extracts a cell from an existing layout into a new GDS file: # Load existing layout. set Llayout [layout create mylayout.gds] # Create an empty layout. set Lnew [layout create] # Create topcell for new layout. $Lnew create cell TOP # Copy MyGeom cell to new layout, calling it MyGeomNew. Copies all # geometry, but not placements. $Lnew create cell MyGeomNew $Llayout MyGeom # Place MyGeomNew cell reference in new layout. $Lnew create ref TOP MyGeomNew 0 0 0 0 1 # Export new layout. $Lnew gdsout new.gds
这是创建了一个新的layout, 新的top为TOP, 并为这个TOP调用已有的mylayout.gds中的mygeomnew cell,最后保存为new.gds
但实际上我们要达到开头说的A和B的目的,还需修改一下这个例子
第一步,打开 A和B的gds, 用 layout create命令
# Load A.gds. set layoutA [layout create A.gds] # Load B.gds. set layoutB [layout create B.gds]
第二步,这时打开的是两个不同cell,所以需要所b.gds中的BTOP copy到a.gds 中
# Copy BTOP from B.gds to A.gds $layoutA create cell BTOP $layoutB BTOP
第三步,ATOP中调用BTOP, 用到create ref命令
#crate reference cell $layoutA create ref ATOP BTOP 0 0 0 0 1
最后用 gdsout命令保存新的gds
# Export new layout. $layoutA gdsout c.gds
完整的code如下
# Load A.gds. set layoutA [layout create A.gds] # Load B.gds. set layoutB [layout create B.gds] # Copy BTOP from B.gds to A.gds $layoutA create cell BTOP $layoutB BTOP #crate reference cell $layoutA create ref ATOP BTOP 0 0 0 0 1 # Export new layout. $layoutA gdsout c.gds
teriminal下输入
calibredrv xxx.txt
其实还有个layout import命令可以先把B的gds导入到A,再创建ref
或者将A.gds和B.gds 合并后再创建ref
除非注明,否则均为芯片版图原创文章,转载必须以链接形式标明本文链接
本文链接:https://www.chiplayout.net/calibredrv-create-reference-cell.html
发表评论
10 replies on “calibredrv create reference cell”
你好,请问用这个方法gdsB时,gdsB里比gdsA多一些layer,怎么保留这些layer不被删除呢
您好,请问一下layout import怎么使用呢?我现在会手动操作下面步骤,怎么变为脚本呢。
1、用calibredrv打开一包a.gds,然后File->import,导入需要的b.gds 2、选择Object->Creat Reference,调用b.gds,注意原点设为(0,0) 3、然后save一下。之后b就变成了a的一个子cell。a的top_cell_name还是a。
谢谢
您好,请问一下layout import怎么使用呢?我现在会手动操作下面步骤,怎么变为脚本呢。
1、用calibredrv打开一包a.gds,然后File->import,导入需要的b.gds 2、选择Object->Creat Reference,调用b.gds,注意原点设为(0,0) 3、然后save一下。之后b就变成了a的一个子cell。a的top_cell_name还是a。
谢谢
@wcc
$L import layout xx.gds FALSE rename -dt_expand
$L这里的L就是 set L [layout create xx.gds]中的L
您好,想请教一下这个脚本是写成 .txt文件,,然后用calibredrv 运行是吗?我看最后一行生成了c.gds。加入我想将b.gds导入a.gds,不新生成c.gds可以吗。
比如我文件夹下有两个gds,我将其中一个gds放入另外一个gds。文件下还是两个gds,只是其中一个gds里面包含了另一个gds。
感谢,致敬。
@wcc
最后一行gdsout使用你自己指定的名字就行
您好,想请教一件事:在导出GDS时候可以单独flatten某一两个层次吗?
如果要单独flatten还不如直接用calibredrv打开GDS,在cell list中右键flatten
- 浅槽隔离工艺(STI) 15173
- CMOS制作基本步骤 13786
- 关于芯片中的seal ring… 13512
- xbox one要求东方明珠实名认证 13086
- div+css不显示最后一个li标签borde... 12204
- CMOS制造中的轻掺杂漏(LDD)注入工艺 11962
- CMOS制作步骤(一):双阱工艺 11653
- IC封装形式COF介绍 11421
- match of layout(版图中的匹配) 10710
- IC版图设计中电容的基本匹配规则 10126
- Mentor calibre_V2008.1_20_linux_x86 17
- 工艺相关资料合集 13
- skill编写的cadence打label增强程序 13
- calibredrv create reference cell 10
- calibredrv merge GDS file 10
- Cadence Layout Turbo提取PAD坐标 9
- 亲测fedora16安装calibre2008所需... 8
- 博客软件WordPress宣布博客数破5千... 6
- 关于IC版图中的匹配规则 6
- htaccess将多域名301定向到主域名 6
- 关于芯片中的seal ring… 163
- xbox one要求东方明珠实名认证 93
- CMOS制作基本步骤 88
- 关于IC版图中的匹配规则 71
- cadence layoutXL使用简介 68
- 浅槽隔离工艺(STI) 61
- CMOS制造中的轻掺杂漏(LDD)注入工艺 59
- match of layout(版图中的匹配) 58
- IC Layout布局经验 47
- IC版图设计中电阻的匹配基础篇 39
近期评论
- admin posted
- 刘俊杰 posted
- Layout Merge posted
有两个gds(带IO的A.gds和dum.gds)做Layout Merge,能否使合并后的gds仍然保持A.gds的名称呢? 能否指定合并的gds的坐标呢?
- 1054145976 posted
set layoutA [layout create A.gds]
set layoutB [layout create B.gds]
$layoutA create cell B $layoutB B
$layoutA create ref A B 0 0 0 0 1
$layoutA gdsout C.merge.gds