You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SKILL脚本能否实现原理图元器件的查找与替换功能?

SKILL 原理图批量元器件替换实现方案

实现逻辑总览

整个功能分为三个核心环节:读取CSV中存储的原始器件-替换目标映射关系→遍历当前打开原理图的所有元器件实例→匹配映射规则后调用原生API执行替换,保留原有连线和属性。

各环节实现说明

1. CSV映射表读取

你已经掌握SKILL文件I/O能力,可直接将CSV中的映射关系读取存入SKILL关联表,方便后续快速匹配。示例CSV格式为原始库名,原始单元名,目标库名,目标单元名,目标视图名,读取代码如下:

; 初始化映射关联表
replaceMap = makeTable("replaceMap" nil)
; 替换为你的CSV文件实际路径
csvPath = "/your/path/replace_list.csv"
inFile = inopen(csvPath "r")
if(inFile then
    while(getLine(inFile)
        line = getCurrentLine(inFile)
        ; 按逗号拆分字段,可根据实际CSV分隔符调整
        fields = parseString(line ",")
        if(length(fields) >= 5 then
            ; 用原始库+原始单元名作为匹配key
            matchKey = strcat(nth(0 fields) ":" nth(1 fields))
            replaceMap[matchKey] = list(nth(2 fields) nth(3 fields) nth(4 fields))
        )
    )
    inclose(inFile)
else
    printf("CSV文件打开失败,请检查路径\n")
    return()
)

2. 原理图元器件遍历

通过SKILL原生API获取当前打开的原理图对象,遍历所有元器件实例:

; 获取当前激活的原理图窗口
schWin = schGetCurrentWindow()
if(!schWin then
    printf("请先打开需要处理的原理图文件\n")
    return()
)
; 获取原理图对应的cellview对象
curCV = schGetWindowCellView(schWin)
; 遍历所有元器件实例
instList = curCV~>insts

3. 元器件替换核心API

SKILL原生提供schReplaceInstance()函数专门用于原理图元器件替换,支持保留原有连线、属性等配置,核心参数说明:

  • 第一个参数:待替换的元器件实例对象
  • 第二到第四个参数:目标元器件的库名、单元名、视图名
  • 可选参数?keepProp t:保留原器件所有用户自定义属性
  • 可选参数?keepConn t:保留原器件所有连线关系
  • 可选参数?pinMap <映射表>:如果替换前后器件引脚名不一致,可指定引脚映射关系

匹配替换的示例代码:

foreach(inst instList
    curKey = strcat(inst~>libName ":" inst~>cellName)
    ; 匹配到替换规则则执行替换
    if(replaceMap[curKey] then
        targetLib = car(replaceMap[curKey])
        targetCell = cadr(replaceMap[curKey])
        targetView = caddr(replaceMap[curKey])
        ; 执行替换
        schReplaceInstance(inst targetLib targetCell targetView ?keepProp t ?keepConn t)
        printf("已替换器件 %s:%s/%s → %s/%s\n", inst~>name inst~>libName inst~>cellName targetLib targetCell)
    )
)

注意事项

  • 执行脚本前请先备份原理图文件,避免误操作导致数据损失
  • 请提前确认目标元器件在当前Cadence工程的库搜索路径中可正常访问
  • 若替换前后器件引脚定义存在差异,需自行补充?pinMap参数配置引脚映射关系
  • 可根据需求调整匹配规则,比如加入按元器件位号匹配的逻辑

内容的提问来源于stack exchange,提问作者tlietz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 16:15:02