Saber MAST建模与模型测试

  • 格式:doc
  • 大小:289.50 KB
  • 文档页数:6

Saber MAST建模与模型测试
一、 主要内容
建模+测试
二、 建模
1. EDA分类:

EDA分为两类:
 实现类工具:产生加工图纸文件,可以直接用于生产的,layout和综合器(编程)。
软件主要有Protel、powerpcb等
 验证类工具:不产生加工图纸文件,用于对功能和性能进行验证,像时序仿真、系
统验证。软件主要有saber、modelsim、pspice等
2. saber仿真验证
1) 系统级仿真:如汽车、飞机等大系统,包含机械、电、液压、控制等。其关心的问

题是系统功能验证,一般是函数层面的东西,不关系系统实现(器件EDA模型)。
2) 模块级仿真:模块的定义与其所处的层次有关,可以上升为系统级,也可以下降为
器件级。部分关心功能,部分关心实现,如发动机、车门、闸、灯、轴等。
3) 元器件级:由若干器件组成的电路/系统。可以实现的,即可以由器件的EDA模型
组成。
在进行系统仿真之前要弄明白对象:系统是什么,模块是什么,其器件是什么。
3. 验证方法及方式
包含两种方法:Top->Down和Down->Top
1) Top->Down
自上至下分别是系统级-->模块级-->器件级,在系统级不关心器件,只关心传递函数层
面的实现;在模块级能用器件实现的用器件实现,其余的用传函实现;在器件级用器件的
EDA模型实现。
1
1ss
系统级

1
1s
模块级
器件级
2) Down->Top
首先由器件的EDA模型建立器件级模型,根据仿真的结果抽象处模块的功能,在模块
级用传函加器件的方式分析模块的功能,并进一步抽象得出系统级的功能和传函,进行系统
功能验证。
两种方式的区别:
1) Top->Down:属于定制类型的仿真验证,通用性较差,环境和电路参数改变后,模
块和器件级的构建都需要重新来过,器件级建模工作量小。
2) Down->Top:属于通用型的仿真验证,通用性较强,因为器件是通用的模型,能够
应用到不同的场合,所以顶层更改功能较容易实现,验证精度较高,但是器件级建
模工作量大。
4. 建模
1) 目标分类方法:
 定制建模:验证所关心的设计,器件的其余功能和性能不关心。
 通用建模:严格按照器件特性建模,工作量大。
如运放模型:定制模型可以只关心直流放大倍数A;通用模型还要考虑交流放大倍数、
频率响应特性、一阶频率特性等。
2) 系统层次和建模分类关系

在模块级根据需要来判断是选择定制型建模还是选择通用型建模。
5. 建模基本流程
1) 明确目标:
 器件行为:描述的是器件功能,比如运放起放大作用。
 器件特性:考量的是器件实现功能的精度,如5V逻辑的输出是4.9V。

系统级
器件级
模块级
定制

通用
 模型测试:测试行为和特性是否真的实现了。
2) 研究目标:研究目标的功能、行为和特性,一定要成文并且经过反复思考,必要时
征求设计人员的意见。
3) 选择建模方法:根据目标研究结果和时间进度要求选择Top->Down或者Down->Top
的方式建模。
4) 编写模型代码。
5) 测试:可能会占到建模的一半甚至是以上的时间。

先后写测试力的优缺点:
 先写测试力,针对研究目标,更改代码也会是针对目标而改的,考虑会比较全
面。
 后写测试力,往往会变成对所写代码的测试,不是针对研究目标。
6. 建模方法
按照优先级从低到高排列:

1) 参量化模板(template):Saber库中有很多通用模板,更改其中有把握更改的参数,
如改变名为model的参数。通用模板的default参数能够cover大多数应用情况。
基本原则:能够理解的参数,能够获得数据的参数去修改,没有把握的不要动。
2) 宏模型(macro-modeling):hierarchical层次化建模,利用MAST和Netlist方式建

3) 语言:在上述两种建模方式都无效的情况下才考虑用语言建模,主要用到MAST、
VHDL-AMS、Saber HDL、C、Fortran等
4) 至于Saber与其它工具的接口、协同只能算是技巧
7. MAST语言
1) template结构

header部分:
template name pinlist = parameterslist定义

明确目标 方法 写代码 测试
Debug
调试
写测试力
写测试力
pin 定义 digital state logic_4 electrical
parameter 声明
number:Saber的数据全是浮点型的,没有整数的概念
enum:枚举类型
struct:结构体,可以包含任意类型的元素
string:字符串类型
array:数组,其实是数字数组
body部分:
{
Netlist:网表引用
parameters{ }:number和string类型的变量在此处赋值
values{ }:定义成val类型的变量在此处赋值
when{ }:数字逻辑
control_section{ }:步长和初始化
equations{ }:var类型的变量在此处计算
}
网表语法:
primitive.ref p:n1 m:n2 = 参数定义
如:
l.l1 p:n2 m:n3 = l = 1m
c.c1 p:n3 m:0 = c = 10n Saber中gnd 为 0

n1n2
n3

2) parameters:不参与仿真,为仿真做准备,处理template 的header中定义的参数,
在Netlist时会有变化,做alter命令时会有变化,在simulation时没有变化。
3) values:做analog信号的处理,在仿真时才有变化,val类型变量在此计算
4) when:做digital信号的处理,可以有多个,不分先后顺序
5) control_section:起到配置作用、应力信息设置、报告错误信息等
6) equations:解算var类型的变量
三、 测试
1. 模型测试:

测试目标:系统、模块、器件
2. 分类
1) 功能测试:要做功能测试,首先需要了解Saber软件都有哪些分析功能。
 TR:瞬态分析
 DC:一说工作点分析,又说是稳态分析,即所有器件的响应都达到稳定状态
时电路中器件的参数,如电容达到稳态时,其中的电流为零,电感两端的电压
为零。

TR
DC
5V

RcDC:5V

在做直流分析时需要注意,某些系统可能做DC分析没有意义。DC认为是系统
稳定后的状态。
 AC:基本理论是输入信号的赋值对系统输出的影响可以忽略不计
 Dt:相当于对vsource按照步长的变化做vary分析,每一次变步长都是进行
DC分析
 sensitivity:后处理
 noise:只针对噪声的信号特征、频率和能量特征进行分析
 distort:非周期信号频域特征分析
 pz:在控制系统中使用,做传递函数分析,一般在电路器件级分析很少用
 two-port:端口的阻抗、跨导特性分析
 mc:
 stress:瞬时功耗超限不会带来严重的影响,但是最好不要出现,平均功耗超
限会导致严重的问题
 FMEA:
 Fourier:周期信号的时-频变换,考察信号质量、谐波特性
 FFT:非周期信号的频域特性分析
 IFFT:反变换
 Pareto:容差分析的后处理方法,不算做分析
2) 特性测试
根据编写的测试应力进行各项特性测试,如幅频特性、相频特性等,其中要定义好误差
项。
3) 失效测试(故障):
在多数情况下由于缺乏数据支持——>转向实物测试,如果建模能够做到circuit级,则
由于晶体管的模型准确详细,能够反应失效导致的结果,进行失效测试将是可行的。
前两个测试是标准的,失效测试可做可不做,能做最好。
3. 测试基本流程
1) 研究:功能指标

2) 定义测试目标/环境、案例(design):对同一个器件,不同的测试目的,案例可能
会不同
3) 建立测试环境:画原理图或者构建网表文件
4) 编写测试驱动(脚本),实现测试的自动化(可以使用macro-play功能)
5) 运行测试
6) 评估测试结果