系列文章目录
记录一下spice及Hspice学习
内容简要
- 系列文章目录
- 前言
- 一、SPICE是什么?
- 二、使用步骤
- 总结
前言
随着半导体行业在国内兴起,多学一点芯片仿真工具才能在职场迎刃有余
一、SPICE是什么?
SPICE有Ispice、Hspice、Pspice等不同版本,但都是基于伯克利大学的SPICE(simulation program with integrated circuit emphasis)算法,其中Hspice与Pspice应用较多,Pspice被OrCAD公司收购已集成进OrCAD中,需要可以到OrCAD官网申请学生版。
下面是spice的发展历史:

二、使用步骤
Hspice的文件语法分析
文件首行:
每个 .sp 文件的第一行,无论你写什么,HSPICE都会把它当作标题。你可以选择写一些描述性信息,也可以干脆空着这一行。如果第一行写的是 #simple voltage devider,那它就会被看作是这个电路的名称或描述。
注释的正确写法:
-
除了文件首行,可以在文件中任何位置插入注释。
-
用 * 符号在行首开始完整的注释行。
-
用 符号在一条HSPICE语句的末尾添加注释。注意 前至少要有一个空格。
-
在标准的HSPICE语法中,# 并不是官方文档定义的注释符。所以,把它放在文件开头,仅仅是因为第一行的"标题"特性,才让这行文字被忽略。在其他地方使用 # 则可能导致语法错误。
Hspice 规范写法
c
* Simple Voltage Divider $第一行写啥都行 不做语法解析
.title Simple Voltage Divider * 标题也可用 .title 语句
.options post=2
* 定义电路元件
V1 in 0 DC=5V * 输入直流电压源
R1 out in 1k * 上方电阻,1kΩ
R2 out 0 1k * 下方电阻,1kΩ
* 执行分析
.dc V1 0 5 0.1 * 扫描输入电压从0V到5V,步长0.1V
.control
run
print v(out)
.endc
.end * 文件结束
1.引入库
.include 语句:简单粗暴的"全盘引入"
如果你的工艺库文件就是一个独立的、完整的文件,里面包含了所有你需要用到的模型和子电路定义,那么用 .include 是最直接的方法。
代码如下:.include 'path_to_your_library_file'
- 功能:它会把指定文件的全部内容原封不动地复制并插入到你的网表中该语句所在的位置
- -示例:
c
* 假设库文件和你的.sp文件在同一目录下
.include '65nm_bulk.pm' [citation:8]
.lib 语句:精准的"按需引入"
大部分来自晶圆厂(Foundry)的PDK模型库文件,为了管理不同工艺角(Process Corner,如TT, SS, FF),会在一个文件里定义多个模型段。这时就需要用 .lib 来精准指定引入哪一部分。
-
功能:它会在指定的库文件中,寻找由 .lib 和 .endl 标记的特定代码块,并将其引入。通过改变 entryname,可以方便地在不同工艺角间切换。
-
示例:
- 引入文件 m180.lib 中名为 'TT'(典型工艺角)的模型段
.lib 'm180.lib' TT
- 引入文件 m180.lib 中名为 'TT'(典型工艺角)的模型段
2.读入数据
读入数据即读取文件,代码如下(示例):
c
.inc "./mysubckt.ckt"
如何选择和使用.include和.lib
打开库文件看一眼:用文本编辑器打开你的 .lib 或 .pm 文件。
-
如果里面只有纯粹的模型定义(如 .MODEL 语句),没有 .lib TT 这样的标记,就用 .include。
-
如果里面有很多以 .lib SLOW 、.lib FAST 等开头,并以 .endl 结尾的段落,就用 .lib。
总结
本文档主要介绍了Hspice的发展和简单的使用语法