SPICE 编程基础:实用指南
用 SPICE 编程电路仿真遵循与其他基于文本的编程语言相同原则。你在纯文本文件中编写命令,保存,然后运行解释器将源码转为计算机可执行的动作。
在 SPICE 中,解释器是必须安装在计算机上的专用程序。源文件——通常称 网表——包含一系列行,每行称一张 卡,描述元件和特殊指令。因 SPICE 是解释型语言,网表逐行读取执行,无需单独编译步骤。
网表在纯文本编辑器中创建(避免用文字处理软件,因其引入非 ASCII 格式导致解释器无法理解)。语法直观:每行定义一个电路元件或控制命令,元件通过分配节点号连接。例如:
v1 1 0 dc 15 r1 1 0 2.2k r2 1 2 3.3k r3 2 0 150 .end
此处 v1 是节点 1 和 0 间的 15V 直流源;r1、r2、r3 是连接指定节点的电阻。元件相接处共享相同节点号。
创建网表后,从终端调用 SPICE。典型命令如下:
spice < example.cir
spice 启动解释器,< 将 example.cir 内容重定向给它,仿真运行。SPICE 也可将输出管道传给 more 分页查看:
spice < example.cir | more
或重定向输出到文件供后续查看:
spice < example.cir > example.txt
因输出为纯 ASCII,可用任何文本编辑器或文字处理软件编辑、添加注释、重排标题、打印,目标机器无需安装 SPICE。
下方是示例网表的典型控制台输出,含仿真头部、解析后网表、节点电压、电源电流、总功耗、执行时间。
1*******10/10/99 ******** spice 2g.6 3/15/83 ********07:32:42***** 0example netlist 0**** input listing temperature = 27.000 deg c v1 1 0 dc 15 r1 1 0 2.2k r2 1 2 3.3k r3 2 0 150 .end *****10/10/99 ********* spice 2g.6 3/15/83 ******07:32:42****** 0example netlist 0**** small signal bias solution temperature = 27.000 deg c node voltage node voltage ( 1) 15.0000 ( 2) 0.6522 voltage source currents name current v1 -1.117E-02 total power dissipation 1.67E-01 watts job concluded 0 total job time 0.02 1*******10/10/99 ******** spice 2g.6 3/15/83 ******07:32:42***** 0**** input listing temperature = 27.000 deg c
为更清晰呈现,可重定向输出到文件后裁剪。精简示例:
example netlist v1 1 0 dc 15 r1 1 0 2.2k r2 1 2 3.3k r3 2 0 150 .end
node voltage node voltage ( 1) 15.0000 ( 2) 0.6522
voltage source currents name current v1 -1.117E-02
total power dissipation 1.67E-01 watts
因输入输出均为纯文本,跨平台通用易共享。可用文字处理功能美化输出、添加解释性注释、整合进报告和演示。
高效使用 SPICE 的关键步骤:
- 在纯文本编辑器编写网表并保存。
- 运行 SPICE 查看输出。
- 若报错,编辑网表重跑。
- 迭代至获得期望结果。
- 验证后重定向输出到文件以便格式化打印。
遵循此循环,你将建立对 SPICE 网表语法的信心,学会高效调试常见问题。
注:SPICE 文件扩展名灵活;.cir、.inp、.txt 或无扩展名均可,只要文件名符合操作系统规则。
文中图片展示 SPICE 命令结构与输出,嵌入如下:
工业技术