https://www.cnblogs.com/yeungchie/

ski-db

打开一个文件获取 lib 对象 dbImport

set file "layout.gds"
set lib [dbImport $file]

从 lib 对象获取 libId dbLibGet

set libId [dbLibGet -lib $lib -attr id]

获取数据精度

set dbum [expr int([dbLibGet -lib $lib -attr dbuPerUm])]

获取顶层单元名 dbLibTopCell

set top [dbLibTopCell $lib]

从 lib 对象指定名称获取 cell 对象

dbCellGetByName

set cell [dbCellGetByName -lib $lib -cellName $top]

获取 cell 的 bBox dbCellGetBBox

set box [dbCellGetBBox -cell $cell]

创建一个新的 newlib dbLibCreate

set newLib [dbLibCreate "NewLib" -dbu $dbum]

在 newLib 中创建一个新的 newCell

dbCellCreate

set newCell [dbLibCreate -lib $newLib -cellName "newCell"]

在 cell 中搜索实例 dbFindInst

set insts [dbFindInst -cell $cell -masterNamePattern ".+"]
# 正则匹配所有名字就是全都搜出来

获取实例参数 dbFigGet

set master [dbFigGet $fig -attr master]
set xy [dbFigGet $fig -attr pos]
set ori [dbFigGet $fig -attr orient]
set mag [dbFigGet $fig -attr mag]

在 cell 中搜索 label dbFindLabel

set labels [dbFindLabel -cell $cell -strPattern ".+" -regexp]
# 这个函数需要指定 -regexp 才会启用正则

获取 label 参数 dbFigGet

set layer   [dbFigGet $fig -attr layer]
set purpose [dbFigGet $fig -attr purpose]
set xy [dbFigGet $fig -attr pos]
set text [dbFigGet $fig -attr str]
set height [dbFigGet $fig -attr height]
set ori [dbFigGet $fig -attr orient]
set justify [dbFigGet $fig -attr justify]

获取最大层次深度 dbLibMaxLevel

set level [dbLibMaxLevel $lib]

查看当前库(文件)信息 dbLibSummary

set sum [dbLibSummary $lib -general]

查看数据类型

regexp {Format\\s+:\\s+(\\S+)\\s} $sum _ format
puts $format

导出 lib dbExport

  • GDSII
dbExport $lib "filename.gds" -preserveProp -emptyCell skipNone -skipSwitchCell
  • OASIS
dbExport $lib "filename.gds" -preserveProp -oasis -replaceInAString -writeInvalidString -cblock -cblockTable -emptyCell skipNone -skipSwitchCell
# 需要指定 -oasis 才是 OASIS 格式导出
# 且部分参数只有 OASIS 才支持,导出为 GDSII 时使用会报错

ski-flash

快速 LVL

ski-flash layout_1.gds TOPCELL layout_2.gds TOPCELL lvl.rep [-OASISIN]

Tcl

不换行 puts

set blog "YEUNGCHIE"
puts -nonewline $blog

刷新标准输出缓冲区

flush stdout

等待获取标准输入

gets stdin reply
puts $reply

查看数组中某个元素的位置

也可以用来检测是否存在

set array [list a1 a2 b3 b4 5]
lsearch -exact $array b4
# 3 在第 3 的索引位置
lsearch -exact $array ab
# -1 返回 -1 代表不存在

数组排序

  • 简单排序
lsort [list a12 a1 b0 a10 a8 a1]
# a1 a1 a10 a12 a8 b0
  • 如果字符串中存在数字,按照正确的数字大小排序
lsort -dictionary [list a12 a1 b0 a10 a8 a1]
# a1 a1 a8 a10 a12 b0
  • 排序并去重
lsort -dictionary -uniq [list a12 a1 b0 a10 a8 a1]
# a1 a8 a10 a12 b0

Skipper & Tcl 笔记的更多相关文章

  1. tcl使用笔记

    tcl语法网站:http://www.tcl.tk/man/tcl8.5/TclCmd/contents.htm 1)拷贝文件 set PRJ_HDL_DIR "../prj/hdl&quo ...

  2. TCL语言笔记:TCL中的数组

    一.介绍 Tcl 中的数组和其他高级语言的数组有些不同:Tcl 数组元素的索引,或称键值,可以是任意的字符串,而且其本身没有所谓多维数组的概念.数组的存取速度要比列表有优势,数组在内部使用散列表来存储 ...

  3. TCL语言笔记:TCL中的列表操作

    一.介绍 列表则是具有特殊解释的字符串.Tcl 中的列表操作和其它 Tcl 命令一样具有相同的结构.列表可应用在诸如 foreach 这样的以列表为变元的循环命令中,也应于构建 eval 命令的延迟命 ...

  4. TCL语言笔记:TCL中的String命令

    一.介绍 字符串是 Tcl 中的基本数据类型,所以有大量的字符串操作命令.一个比较重要的问题就是模式匹配,通过模式匹配将字符串与指定的模式(格式)相匹配来进行字符串的比较.搜索等操作. 二.strin ...

  5. TCL语言笔记:TCL中的控制结构命令

    一.引言 控制结构允许程序根据不同的状态.条件和参数来选择不同的处理和执行路径,从而使代码具有更强的灵活性.健壮性和可读性. Tcl 提供了 if.if/else.if/elseif.foreach. ...

  6. TCL语言笔记:TCL中的数学函数

    一.TCL数学函数列表 函数名 说明 举例 abs(arg) 取绝对值 set a –10  ; #a=-10 set a [expr abs($a)]; # a=10 acos(arg) 反余弦 s ...

  7. TCL语言笔记:TCL基础语法

    一.什么是TCL Tcl 全称是 Tool command Language.它是一个基于字符串的命令语言,基础结构和语法非常简单,易于学习和掌握. Tcl 语言是一个解释性语言,所谓解释性是指不象其 ...

  8. Tcl语言笔记之二

    1,表达式 1.1 操作数 TCL表达式的操作数通常是整数或实数.整数一般是十进制的, 但如果整数的第一个字符是0(zero),那么TCL将把这个整数看作八进制的,如果前两个字符是0x则这个整数被看作 ...

  9. Tcl语言笔记之一

    1,一个TCL脚本可以包含一个或多个命令.命令之间必须用换行符或分号隔开 2,置换 substitution %set y x+100                               // ...

随机推荐

  1. win server 2012下安装IIS 8后配置ASP网站的注意事项

    1,安装IIS时,如果你用不到asp.net 在web下的应用程序开发只需要勾选ASP这一项就可以. 2,IIS测试成功后,需要在你设定的主目录添加权限,找到你的主目录-属性-安全-编辑,添加Ever ...

  2. Python 基础知识自检,离深入掌握 Python 还有多远

    1. 模块化编程思想 模块化编程是 Python 的基本思想.初学 Python,都应该使用过小海龟.随机.数学模块.使用模块之前,需要导入模块,然后根据自己的问题需要使用这些模块. Python 提 ...

  3. Spring MVC 04-- 接收前端参数json格式的方式

    /** * 第一种:以RequestParam接收 * 前端传来的是json数据不多时:{"id":1},可以直接用@RequestParam来获取值 * * @param id ...

  4. Linux中8个有用的touch命令

    在Linux中,每个文件都有时间戳,并且每个文件都存储上次访问时间,上次修改时间,上次改变时间的信息.因此,无论什么时候我们创建新的文件,访问或者修改一个存在的文件,那个文件的时间戳会自动被更改. 在 ...

  5. C++ 关于map,function的简单应用

    map<string,function<int(int, int)>> funs =    {        {"+", add},        {&qu ...

  6. leetcode-3无重复字符的最长子串

    题目原题: 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 ...

  7. mac安装git

    https://blog.csdn.net/shaock2018/article/details/91127607 继续报错 rm -rf /usr/local/Homebrew/Library/Ta ...

  8. HashMap 链表和红黑树的转换

    HashMap在jdk1.8之后引入了红黑树的概念,表示若桶中链表元素超过8时,会自动转化成红黑树:若桶中元素小于等于6时,树结构还原成链表形式. 原因: 红黑树的平均查找长度是log(n),长度为8 ...

  9. Xshell 连接虚拟机OS Linux 设置静态ip ,网络配置中无VmWare8 的解决办法

    前序:最近开始研究Hadoop平台的搭建,故在本机上安装了VMware workstation pro,并创建了Linux虚拟机(centos系统),为了方便本机和虚拟机间的切换,准备使用Xshell ...

  10. 什么是 Spring Batch?

    Spring Boot Batch 提供可重用的函数,这些函数在处理大量记录时非常重要,包括日志/跟踪,事务管理,作业处理统计信息,作业重新启动,跳过和资源管理.它还提供了更先进的技术服务和功能,通过 ...