2.1 网表结构:把电路写成文本


文档摘要

2.1 网表结构:把电路写成文本 本节摘要:网表由器件卡、模型卡、分析卡、输出卡四个家族构成,每行一条语句、以器件名或点命令开头。本节给出完整的器件首字母代码表、工程后缀规则与模型卡挂接方法,并用 RC 低通与二极管检波两个电路把语法落到实处。 语句的四大家族 任何 SPICE 网表,无论多长,都能按功能拆进四个家族。器件卡描述电路里"有什么":一个电阻、一个晶体管、一根传输线。模型卡描述器件"长什么样":同样以 D 开头的二极管,硅整流管与肖特基管的伏安特性天差地别,差异全部写在模型卡的参数里。分析卡以点号开头(.OP、.DC、.AC、.TRAN),向仿真器提问。输出卡(.PRINT、.PLOT、.MEASURE)决定答案以什么形式交出。除此之外还有 .END 收尾、星号注释行与加号续行。

2.1 网表结构:把电路写成文本

本节摘要:网表由器件卡、模型卡、分析卡、输出卡四个家族构成,每行一条语句、以器件名或点命令开头。本节给出完整的器件首字母代码表、工程后缀规则与模型卡挂接方法,并用 RC 低通与二极管检波两个电路把语法落到实处。

语句的四大家族

任何 SPICE 网表,无论多长,都能按功能拆进四个家族。器件卡描述电路里"有什么":一个电阻、一个晶体管、一根传输线。模型卡描述器件"长什么样":同样以 D 开头的二极管,硅整流管与肖特基管的伏安特性天差地别,差异全部写在模型卡的参数里。分析卡以点号开头(.OP、.DC、.AC、.TRAN),向仿真器提问。输出卡(.PRINT、.PLOT、.MEASURE)决定答案以什么形式交出。除此之外还有 .END 收尾、星号注释行与加号续行。

语句格式的三条铁律贯穿所有家族:一行一条语句;器件卡以器件名开头且首字母决定器件类型;点命令必须以点号开头。长语句可以拆行,续行以加号开头——写长模型卡时几乎必然用到。

器件首字母代码表

首字母体系是网表的"部首",认识它们就能读懂任何参考设计:

首字母 器件 首字母 器件
R 电阻 E 电压控制电压源
C 电容 F 电流控制电流源
L 电感 G 电压控制电流源
K 耦合电感(互感) H 电流控制电压源
V 独立电压源 D 二极管
I 独立电流源 Q 双极型晶体管 BJT
T 无损耗传输线 J 结型场效应管 JFET
X 子电路调用 M MOS 场效应管 MOSFET

受控源四兄弟 E、F、G、H 值得单独记一笔:它们是行为级建模的基石,第 4 章搭建运放宏模型时会大量使用。X 是子电路调用,让网表可以像搭积木一样复用电路块,第 4 章后半段专门展开。

数值与后缀:一次讲清

SPICE 接受两种数值写法:科学计数法(如 4.7e-6)与工程后缀法(如 4.7u)。工程后缀不区分大小写,常用的全表如下:

后缀 含义 后缀 含义
T 太,10 的 12 次方 M 或 m 毫,10 的负 3 次方
G 吉,10 的 9 次方 U 微,10 的负 6 次方
MEG 兆,10 的 6 次方 N 纳,10 的负 9 次方
K 千,10 的 3 次方 P 皮,10 的负 12 次方
F 飞,10 的负 15 次方 MIL 25.4 微米(历史遗留)

最危险的一对是 MEG 与 M:前者是兆,后者是毫,书写差三个字母,数值差九个数量级。历史原因很直白——后缀体系诞生于 FORTRAN 时代,M 已被 milli 占据,mega 只能另造 MEG。此外后缀后面还能再跟单位注释,仿真器只解析字母后缀、忽略其后的文字,比如 1pF 与 10uH 里的 F 和 H 会被直接跳过,所以"10uh"与"10u henrys"等价。

模型卡:器件与模型的分离

简单器件(R、C、L)的参数直接写在器件卡上;半导体器件则必须"实例加模型"两段式描述:器件卡只说明它接在哪两个节点、用的是哪个模型,电气特性全部由 .MODEL 卡定义。看一个二极管半波整流电路:

* 半波整流:正弦源加二极管加负载 V1 in 0 SIN(0 5 50) D1 in out Dmod RL out 0 10k .MODEL Dmod D(IS=2.52n RS=0.568 N=1.752 CJO=4p M=0.333) .TRAN 10u 100m .PRINT TRAN V(in) V(out) .END

D1 的写法是"名字、正极节点、负极节点、模型名"四段式,最后的 Dmod 指向下面的模型卡。.MODEL 行左侧是模型名,D 声明模型类型,括号里是参数:IS 是反向饱和电流,RS 是串联电阻,N 是发射系数,CJO 是零偏结电容。这套参数的物理含义在第 4 章展开,现在只需要建立"实例引用模型"的结构感——一个模型可以被任意多个器件实例共享,改一处参数,所有引用它的器件同步更新,这正是工艺库的组织方式:晶圆厂给一套 .MODEL 卡,全公司的设计都引用它。

再补一个 RC 低通的完整例子,它将在第 3 章的分析实战里反复出场:

* 一阶 RC 低通 V1 in 0 AC 1 R1 in out 1k C1 out 0 100n .END

注意 V1 的 AC 1 写法:它声明这个源在交流分析里的幅值是一伏,供 .AC 分析使用。同一个源可以同时携带 DC、AC 与瞬态三种描述,各分析各取所需——这是 SPICE 源设计里非常优雅的一点,2.3 节会系统展开。

图:一条器件语句的字段解剖

图:一条器件语句的字段解剖

本节要点回顾

  • 四家族:器件卡、模型卡、分析卡、输出卡,加注释与续行规则构成网表全部语法。
  • 首字母即类型:R、C、L、V、I、D、Q、J、M、X 十余个代码是网表的部首。
  • 后缀陷阱:M 是毫、MEG 才是兆,两者差九个数量级,检查网表时优先看这里。
  • 实例与模型分离:半导体器件只写连接关系,特性集中在 .MODEL 卡,一处定义多处引用。

语法识字课还剩两块:控制求解过程的 .OPTIONS 与量测结果的 .MEASURE(下一节),以及让电路"动起来"的激励源(本章最后一节)。

问题:节点名有什么讲究,能全部用数字吗

可以,但零号必须留给地。用数字命名的节点会被当作编号处理,用字母开头则纯属标签——两者混用完全合法。工程惯例是"见名知义":输入叫 in、电源叫 vdd、中间节点用功能缩写。三个月后回看网表,节点名是你唯一自带的注释;n1、n2 满天飞的网表,读起来像破译密码。

问题:一行写多少内容合适,宽度有限制吗

老版 SPICE 沿用八十列卡片传统,部分方言至今默认截断超长行——这是续行语法存在的根本原因。现代工具的行长限制宽松了许多,但给参数表、长表达式主动断行是好习惯:一行一件事,review 网表的人和你自己都受益。遇到超长模型卡,用加号续行拆成逻辑段落,比塞满一行再猜哪里被截断强得多。

问题:怎么快速看懂别人写的大型网表

先分层再逐块。第一步找所有的 .SUBCKT 定义与点命令,画出"目录";第二步看顶层调用区,数清有多少个 X 调用、各挂什么模型;第三步才进感兴趣的子电路内部读器件行。大型工艺库网表动辄上万行,但结构永远是"定义区加调用区",按这个套路拆,半天就能建立全图——比逐行硬啃快一个数量级。

阅读检查

给出三句话自测:受控源的四个首字母分别对应什么受什么控制;后缀 M 与 MEG 相差多少倍;二极管器件卡为什么只需要四个字段。这三问分别对应本节的受控源、后缀与实例模型三个要点,答不顺就回去再扫一眼对应小节。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U