我是靠谱客的博主 俊逸水池,最近开发中收集的这篇文章主要介绍如何用CalibredrvMergeGDS如何用CalibredrvMergeGDS一、Calibredrv中用于merge gds的基本命令二、基于Calibredrv使用的merge gds的tcl脚本示例总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

如何用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脚本示例总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部