每天分享 Cadence 操作 · Schematic 自动化
Cadence SKILL:如何创建 Schematic 并放置管子
从新建 schematic cellView 开始,获取编辑对象,放置 NMOS 与 PMOS,创建连线,最后保存并关闭。
本文通过一个最小示例演示如何用 Cadence SKILL 创建新的 schematic,并在其中放置 analogLib 的 NMOS 与 PMOS,再创建一条连接线。示例完成后会保存并关闭 cellView。
1. 创建新的 Schematic
使用 deNewCellView 创建并打开新的 cellView:
windowId = deNewCellView(
"test1"
"testschematic"
"schematic"
"schematic"
nil
)2. 获取正在编辑的 CellView ID
创建窗口后,需要取得对应的数据库对象 ID。后续放置器件、连线、保存等操作都依赖这个对象:
cvId = geGetEditCellView()3. 放置 NMOS
在坐标 (0 0) 放置 analogLib 中的 NMOS symbol,实例名为 nm0,方向为 R0:
nm0 = dbCreateInstByMasterName(
cvId "analogLib" "nmos" "symbol"
"nm0" list(0 0) "R0" 1
)4. 放置 PMOS
使用相同方法,在 (0 1) 放置 PMOS,使其位于 NMOS 上方:
pm0 = dbCreateInstByMasterName(
cvId "analogLib" "pmos" "symbol"
"pm0" list(0 1) "R0" 1
)5. 创建连接线
用 schCreateWire 在 (0 0) 与 (0 1) 之间创建一条 full wire:
schCreateWire(
cvId "draw" "full"
list(0:0 0:1)
0.0625 0.0625 0.0
)6. 保存并关闭
所有对象创建完成后,先保存,再关闭 cellView:
dbSave(cvId)
dbClose(cvId)完整示例
procedure(test1()
windowId = deNewCellView(
"test1" "testschematic"
"schematic" "schematic" nil
)
cvId = geGetEditCellView()
nm0 = dbCreateInstByMasterName(
cvId "analogLib" "nmos" "symbol"
"nm0" list(0 0) "R0" 1
)
pm0 = dbCreateInstByMasterName(
cvId "analogLib" "pmos" "symbol"
"pm0" list(0 1) "R0" 1
)
schCreateWire(
cvId "draw" "full"
list(0:0 0:1)
0.0625 0.0625 0.0
)
dbSave(cvId)
dbClose(cvId)
)
test1()下期预告
用 SKILL 创建基础反相器
下一篇将在本文基础上补齐器件端口连接、电源与输入输出网络,自动生成一个最基础的 CMOS 反相器。
查看更多 Cadence 教程
