CADENCE SKILL · BEGINNER GUIDE

Cadence SKILL 入门:从零输出 Hello, World!

用一个最小案例认识 CIW、printf、SKILL 文件与 load。完成后,你会拥有第一个可重复运行的 Cadence 自动化脚本。

入门约 8 分钟Virtuoso CIW
Cadence Virtuoso CIW 中执行 printf 并输出 Hello, World 的示意截图

图 1:在 CIW 命令行直接执行第一个 SKILL 表达式。截图为界面示意,不同 Virtuoso 版本的窗口外观会有差异。

1. 先认识运行入口:CIW

启动 Cadence Virtuoso 后,找到 CIW(Command Interpreter Window)。CIW 是交互式命令窗口:你输入 SKILL 表达式,Cadence 立即求值并显示结果。对初学者而言,它非常适合验证一行代码是否正确。

2. 在 CIW 输出 Hello, World!

在 CIW 底部的输入区键入下面的表达式,然后按 Enter:

CIW
printf("Hello, World!\n")

随后会看到一行输出:

output
Hello, World!
  • printf 是格式化输出函数
  • 双引号内是要输出的字符串
  • \n 表示换行
  • 最外层圆括号包住函数参数

3. 把代码保存为 hello.il

交互式命令适合试验;真正可复用的代码应保存到文件。新建文本文件 hello.il,写入:

hello.il
procedure(helloWorld()
  printf("Hello, World!\n")
)

这里定义了名为 helloWorld 的过程。第一对空括号表示它不接收参数;过程体调用 printf 输出文字。

编辑 hello.il 并在终端加载运行的示意截图

图 2:将过程保存到 hello.il,再从 CIW 加载。截图为操作示意,代码以正文为准。

4. 加载文件并调用过程

假设 CIW 当前工作目录中有 hello.il,执行:

CIW
load("hello.il")

文件加载成功后,再执行:

CIW
helloWorld()

CIW 会输出 Hello, World!。若文件不在当前目录,请给 load 传入完整路径,例如:

CIW
load("/home/user/skill/hello.il")

5. 常见错误排查

load 提示找不到文件
先确认文件名是 hello.il,而不是 hello.il.txt;再使用绝对路径加载。Linux 路径区分大小写。
输入后没有换行
检查字符串末尾是否包含 \n。printf 不会自动替你添加换行。
出现语法错误
重点检查双引号与圆括号是否成对。建议先把一行 printf 放进 CIW 单独验证,再加载整个文件。
修改文件后结果没变化
保存文件后重新执行 load,再调用 helloWorld。SKILL 不会自动重新读取你刚刚编辑的文件。

6. 下一步练习

给过程增加一个参数,让它输出不同名字:

hello_name.il
procedure(helloName(name)
  printf("Hello, %s!\n" name)
)

加载后执行 helloName("Cadence"),输出应为 Hello, Cadence!。这一步引入了参数和 %s 字符串格式符,是从最小示例迈向实用 SKILL 脚本的第一步。

完成检查

你已经跑通第一个 SKILL 脚本

  • check会在 CIW 中执行 SKILL 表达式
  • check会用 printf 输出文本
  • check会把过程保存为 .il 文件
  • check会用 load 加载并调用过程
查看更多技术教程

    参考:Cadence Community 的 Custom IC SKILL 讨论与 Cadence SKILL 初学者公开教程。具体菜单位置与界面样式随 Virtuoso 版本变化,本文的核心代码与 CIW 工作流保持一致。