概述
如何用CalibredrvMergeGDS
文章目录
- 如何用CalibredrvMergeGDS
- 一、Calibredrv中用于merge gds的基本命令
- 1.layout create
- 2.create cell
- 3.create ref
- 4.import layout
- 5.layout merge
- 6.exists cell
- 7.topcell
- 8.gdsout
- 二、基于Calibredrv使用的merge gds的tcl脚本示例
- 总结
一、Calibredrv中用于merge gds的基本命令
1.layout create
打开一个layout文件并获得该文件的句柄。
使用方法:
layout create fileName
可选option flag:
[-dt_expand] [-preservePaths] [-ignoreGDSBoxes] [-preserveTextAttributes]
[-preserveProperties][-noReport]
注:在尽量保持原版图不变的情况下,选择如下option flag:
-dt_expand -preservePaths -preserveTextAttributes -preserveProperties
2.create cell
在layout中创建一个cell。
使用方法:
$L create cell cellName
3.create ref
在layout中创建cell的调用关系。用于cell的hierarchy关系创建。
使用方法:
$L create ref incell refcell x y mirror angle mag
注:【x y mirror angle mag】分别为x放置坐标、y放置坐标、镜像、放置角度、放大倍数。一般情况是使用【0 0 0 0 1】。
4.import layout
在当前layout中导入新的layout。当前layout中存在新导入layout的ref时,可以选择覆盖原cell,这种替换方式可以保持原来的ref关系。
使用方法:
$L import layout {handle | file} del mode
handle 表示layout的文件句柄变量。
del 表示是否删除input layout,可选项有 { TRUE | FALSE }。
mode 表示当存在cell名重复的情况下采取的处理方式,可选项有 {append | overwrite | rename}。
可选option flag:
[-dt_expand] [-preservePaths] [-ignoreGDSBoxes]
[-preserveTextAttributes] [-preserveProperties][-ignoreDuplicateRefs]
注:在尽量保持原版图不变的情况下,选择如下option flag:
-dt_expand -preservePaths -preserveTextAttributes -preserveProperties
5.layout merge
merge两个(或多个)layout并创建一个TOP包含这些layout。
使用方法:
layout merge {handle1| file1} {handle2| file2} bump
bump 表示指定merge导入的file2的layer number会在导出的gds中表示为 bump+layer number。这个设定用于区分gds的layer number,一般情况不区分设定为【0】。
可选option flag:
[-mode mode]
[-dt_expand][-preservePaths] [-ignoreGDSBoxes] [-preserveTextAttributes]
[-preserveProperties][-autoAlign]
注:[-mode mode]可选mode有{append | overwrite | rename | force_rename}
在尽量保持原版图不变的情况下,选择如下option flag:
-dt_expand -preservePaths -preserveTextAttributes -preserveProperties
6.exists cell
判断在layout是否存在指定cell,存在返回1,不存在返回0。
使用方法:
$L exists cell cellName
7.topcell
获取layout的cell name。
使用方法:
$L topcell
可选option flag:[all]
当选择 all时返回layout中的所有cell name,不选择时返回top cell name。
8.gdsout
导入(处理完的)gds文件。
使用方法:
$L gdsout fileName
可选option flag:
[ cellName ] [-place] [-texttype texttype][ -map L [ layer [datatype] ] ] *
[-maxPolygonVertices value] [-maxPathVertices value] [-noEmptyCells [noRefs]]
注:一般情况不选择可选option。
二、基于Calibredrv使用的merge gds的tcl脚本示例
代码如下:
######################################
#Please set GDS that want to merge.
#Usage :calibredrv <scriptfile>
######################################
set topGDS ./xxxxxxxxxxxxtop.gds
set mergeGDSs {
./Dummy.gds //可以填入多个gds,脚本以循环列表的方式逐个导入
}
###################################
# Load topGDS and get topname.
set layoutTOP [layout create $topGDS -dt_expand -preserveProperties -preserveTextAttributes]
set layoutTOP_topname [$layoutTOP topcell]
# merge GDS and keep hierarchy.
foreach mergeGDS $mergeGDSs {
set layoutMergeCell [layout create $mergeGDS -dt_expand -preserveProperties -preserveTextAttributes]
set layoutMergeCell_topname [$layoutMergeCell topcell]
if {[$layoutTOP exists cell $layoutMergeCell_topname] == 1} {
puts "WARNING(USER) :$layoutMergeCell_topname already exists in $layoutTOP_topname, it will be appended soon."
} else {
puts "WARNING(USER) :$layoutMergeCell_topname does not exist in $layoutTOP_topname, it will be created soon."
$layoutTOP create cell $layoutMergeCell_topname $layoutMergeCell $layoutMergeCell_topname
$layoutTOP create ref $layoutTOP_topname $layoutMergeCell_topname 0 0 0 0 1
}
$layoutTOP import layout $mergeGDS FALSE append -dt_expand -preserveProperties -preserveTextAttributes
}
# Export merged layout.
$layoutTOP gdsout $layoutTOP_topname_merged_dummy.gds
总结
以上就是calibredrv merge gds的方法和示例,希望对大家有用。merge gds以外的命令没有列举,有需要的可以参考manual学习。
最后
以上就是俊逸水池为你收集整理的如何用CalibredrvMergeGDS如何用CalibredrvMergeGDS一、Calibredrv中用于merge gds的基本命令二、基于Calibredrv使用的merge gds的tcl脚本示例总结的全部内容,希望文章能够帮你解决如何用CalibredrvMergeGDS如何用CalibredrvMergeGDS一、Calibredrv中用于merge gds的基本命令二、基于Calibredrv使用的merge gds的tcl脚本示例总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复