MAST语言建模.ppt_第1页
MAST语言建模.ppt_第2页
MAST语言建模.ppt_第3页
MAST语言建模.ppt_第4页
MAST语言建模.ppt_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MAST语言建模 MAST语言建模概述 MAST语言是一种硬件描述语言 它是用数学的方法来描述的 它可以描述硬件的结构 也可以描述硬件的功能 建立描述硬件结构的模型比较难 如果建立得比较好 其精度较高 建立描述功能的硬件模型相对比较简单 但在使用这种模型的时候受到比较多的限制 MAST语言的结构和功能 MAST语言可以描述很多种类型的器件 包括模拟器件 数字器件等 MAST语言的结构主要包括两种方式 一种是structured方式 另一种是unstructured方式 structured方式就是将程序体分成许多段 即在程序体中包括许多程序段 unstructured的程序体中的程序没有分段 structured和unstructured的比较 理想恒流源的模型 templateisourcepm iselectricalp mnumberis 100 equations i p m is 理想恒流源模板简介 模板头 头说明和模板体 在模板体中包含方程段 模板头说明模板名 模板的连接点和使用模板时需要赋值的变量 这个变量必须是在网表中进行赋值 定义模板头的格式为 templatetemplate nameconnectionpoints arguments定义模板头的关键字为template和elementtemplate 这两者的区别一个是内部节点可见而另一个是内部节点不可见 理想恒流源模板简介 续1 template name是模板名 在通常情况下该模板的文件名和这个模板应该一致 Connectionpoints是定义的端点名 而argument则是使用这个模板时需要赋值的变量 这个变量是通过网表来赋值的 模板头说明 说明在模板头中出现的除模板名以外的所有变量 它应位于模板头之下 在恒流源模板中 有两个类型的变量需要说明 一个是节点类型 另一个是变量类型 理想恒流源模板简介 续2 模板连接点是一种特殊的数据类型 在SABER中叫pin类型 它与建立的模板有关 pin类型可以是机械连接点 热连接点电连接点 由于在恒流源的连接点是电 因此其连接点说明为electricalp m 作为头说明的另一部分就是对模板参数的说明 它需要说明的是模板参数的类型 即数的类型 关于数的类型将在后面讲述 在本模板中就定义了一个数 numberis 理想恒流源模板简介 续3 对于一个模板来讲 连接点和模板参数并不是必须的 在一些模板中并没有连接点 也有一些模板就可能没有参数 对于一个模板而言 通常情况下除了模板头以外还有模板体 模板体都是在一对括号中 在isource模板中的模板体就是一个方程段 理想恒流源模板简介 续4 isource中的方程段是用MAST语言结构体的形式描述恒流源的特征 实际上就是用模板方程来描述器件模拟端口的特征 在恒流源模型中 电流是从p点流进从m点流出 因此在方程段中要描述这一特征 在MAST中描述这一特征i p m is 系统对模板的调用 假设有一个系统调用了这个恒流源模板isource 在这个系统中这个恒流源的名字为i1 这个恒流源的两端与节点a b相连 恒流源电流的大小为2 则调用这个模板的语句为 isource i1ab is 2 网表与模板间的对应关系 isource i1ab is 2templateisourcepm is 理想恒流源模型的创建 上述模型描述的电流从p点流进 m点流出 其电流的大小为is 在使用这个器件时在网表中要对这个值进行赋值 用任何文本编辑器编写上述这段文本后 以文件的扩展名为 sin存盘 通常情况下文件名和模板名要一致 如果文件名和模板名不一致时在使用这个模板的网表中要包含这个文件 线性电容模板 templatecapacitorpm capelectricalp mnumbercap equations i p m d by dt cap v p v m MAST模板的搜寻机制 当SABER仿真器遇到了先前没有定义的模板时x 它首先在x sin文件中寻找该模板 如果没有这个文件 则SABER仿真器将在include语句中所包含的文件中去寻找x模板 如果在include文件中仍没有找到x模板 则将在映射文件中寻找x模板 如果仍没有找到该模板 就送出错误信息 pin类型数据 在MAST语言中 所谓指针就是元件模板的对外连接点的一种形式 它也是模板对外连接的最常用的一种形式 定义指针实际上就是定义了元件的一种连接方式 pin类型数据是SABER仿真器中定义的一种数据 这种数据是专门针对器件的连接点 它包括很多种类型的连接点 它们是通过量纲来定义连接端点的类型的 pin类型数据 1 每定义一种连接点就定义了一对变量 一个是cross变量 另一个是through变量 定义一个端点和定义一个连接点的cross变量和through变量是等价的 在定义一个pin变量的同时也定义了这个变量的量纲 模拟量单位的定义 unit 缩写 全称 描述 名字unit rpm revolutions minute argularvelocity wunit A Amperes Current iunit V Volts Voltage v cross变量和through变量 cross变量是系统变量 其主要特征是经过任何一个回路 cross变量值的和位0 在电气系统中的cross变量是系统中节点电位 through变量是与cross变量相对应的系统变量 through变量的主要特征是任意一节点其值的和为0 在电气系统中的through变量为电流 连接点的定义 pinidentiferacrossuint1throughunit2或pinidentiferthroughunit1acrossunit2pinelectricalthroughiacrossvpinrotationalthroughwacrosst在编程时 之所以可以利用electrical这样的端点定义 是因为在SABER中有一个文件unit sin 在其中定义了这个端点 在这个文件中定义的所有其它端点 都可以在编程中不需要定义直接使用 但是如果要使用在该文件中没有定义的端点 则需要自己定义 SABER仿真的过程 节点分析法 根据电路的结构 应用KCL定律 用节点电压去表示之路电流 最后求解节点电压的方法叫节点电压法 从上面的叙述可以看出 节点电压法是根据电路的结构 首先求出电路的节点电压 然后再求电路中各个之路的电流 SABER仿真过程 续1 SABER仿真器解方程时采用的是节点法 在通常情况下器件端点电压是由系统的结构决定了 也就是说如果系统的结构一定则系统中各个器件端点电压就是一定的 因此SABER仿真器认为系统中各个器件的端点电压是已知的 而需要求的就是各个器件的电流 SABER仿真过程 续2 恒电压源的工作过程 从前面的介绍可以知道 仿真器是以获得电流为最终目的 如果一个系统的一个之路的电流没有获得 仿真器则认为没有达到最终的目 但是恒压源的的电流受系统结构的限制 如果系统结构不能确定 则恒压源的电流将不能确定 恒电压源模板 templatevsourcepm vselectricalp mnumbervs variivsequations i p m ivsivs v p v m vs 恒电压源模板简介 在SABER仿真器都是采用节点法解方程 并以求解之路电流为最终目的 也就是说如果求得了之路电流 SABER仿真器就认为完成了任务 在恒电压源模块中 由于电源电压和电流之间的关系受系统的影响 在系统不确定时不可能通过电源的电压来求得电源的电流 恒电压源模板简介 续 在模板体中设置一个变量 该变量为系统变量 var型变量 用这个变量来描述电源的电流 电源电流的确定要满足两个条件 一要满足电源电压恒定 二要满足KVL定律 在模板中有多少个系统变量 在方程段中就应该有多少个方程 在模板体中设置系统变量的方法 var是在模板体中常用的变量 var型变量为系统变量 在系统中如果增加一个var变量 则在方程段中就要增加一个方程来求解该变量 varunitname name 在方程段中指定方程的格式为 var variable expression1 expression2 templateinductorpm indelectricalp mnumberind variilequations i p m ilil v p v m d by dt ind il 线性电感模板的特点 在前面已经讲过 SABER仿真器是以解之路电流为最终目的 因此在方程段中建立方程时都是以解电流为目的 但是在电感的特征方程中电流是电压的积分 为了将其转换为微分方式 在模板体中添加了一个系统变量 利用系统变量来转换这种关系 在模板间使用MAST系统变量 在本部分主要内容是模板间的参数相互调用而不需要连接点 这类器件比较多 在SABER元件库中也有这类器件 例如互感器件 受控源等 耦合元件的使用 耦合器件的仿真波形 在模板间使用MAST系统的方法 在一个模板中定义了一个through变量 如果在系统中的其它模板要用这个变量的值 则可以在模板中定义一个端点变量 该变量的类型为ref型 模板可以从ref型端点变量中输入through变量值 而不需要经过连接点 CCVS模板 templatecvtcipm kreficielectricalp mnumberk variiequations i p m ii v p v m k ci CCVS模板的特点 该模板在头说明中定义了一个ref变量 该变量为一个端口变量 其值为仿真系统中其它模板的through变量 但是ref型端点变量由两部分组成 一部分是引用模板名 另一部分是模板中被引用的变量名 ref型变量的特点 ref变量和var变量都是系统变量 对于任何一个系统变量都因该有一个方程与之对应 对于一个pin类型数据 它有两个系统变量 一个是对应的through变量和cross变量 SABER仿真器认为cross变量为已知量 在通常情况下它通过KCL定律来求解through变量 对于设置的var变量 在方程段中因该指定方程来求解该变量 对于ref变量 也因该有一个方程来求解这个变量 但这个方程不在定义ref变量的模板内 而在被引用的模板内 ref型变量的特点 续 ref变量的定义通常在模板头中 refunitpnameCCVS模板的引用方法 cvt 1i v 1 ab 1kv 1cd 5v模板是SABER库中的模板 而i是其作为var变量的分支电流 从这个引用中可以看到 ref变量的赋值有两部分 一个是模板的实例名 另一个是模板实例中的through变量名 CCVS模板方程段的特点 在本模板的方程段中添加了一个方程来求解系统变量 这个系统变量是在模板体中设置的 其设置的原因与恒电压源的情况相同 互感器件模板的使用 inductor l1p p1m m1 ind 1inductor l2p p2m m2 ind 2mutind 1i1 il inductor l1 i2 il inductor l2 m 0 98 sqrt ind inductor l1 ind inductor l2 互感器件模板 templatemutindi1i2 mrefii1 i2numberm equations i1 d by dt m i2 i2 d by dt m i1 在本模板中 没有确定电流i1和i2 在这个模板中的i1和i2都是引入量 求这两个量的方程分别在电感模板中方程段il v p v m by dt ind i 在本模板的方程段中定义了变量i1和i2的关系 CCVS模板和互感模板的区别 这两个模板的相同点就是这两个模板都用了ref型变量 从这两个模板中可以体会到ref变量的使用 这两个模板的不同点就是在方程段中 CCVS模板在方程中没有方程来描述ref变量 但在互感模板中的方程段中的方程就描述了两个ref变量间的关系 无论在方程段中是否有方程来描述ref变量 但是该方程决不是求解ref变量 ref变量在本模板中不能求解 它的解因该在被引用的模板中 电容模板 elementtemplatecapacitor 1pm cap icelectricalp mnumbercap ic undef valqqcvalvvcvalues vc v p v m voltageacrosscap qc vc cap chargestoredincap control section initial condition vc ic equations i p m d by dt qc currentthroughcap 电容模板的特点 在模板定义中使用的是elementtemplate而不是template 这说明这个模板内部节点可见 在头说明中添加了一个量ic 这个量描述的是电容初始状况 在头说明还用了一个数字就是undef 这在SABER仿真器中是一个数 这个数可以对变量赋值 在本模板中它对ic赋值 它可以用在条件语句中 但是这个数不能计算 ic undef表明如果没有其它值赋值的情况下 电容初始状况可以忽略不计 电容模板的特点 续1 在建立实际系统时常常使用value段 这主要是因为 定义一种变量 val型变量 这种变量主要好处就是可以通过extract指令来提取 这样在不增加仿真时间的情况下可以获得更多的信息 一个val变量通常作为中间变量 而val变量的赋值就在value段中 调用foreign例程和噪声源的定义通常都是在这段 value段既是一个程序段 也是一个说明段 作为程序段 在执行该段程序时是从上到下的顺序 因此在编程时引用的变量一定要在前面定义 作为一个说明段 仿真认为需要该变量时才会执行该段对应的语句 电容模板的特点 续2 电容模板的另一个特点就是在仿真完成后需要提取一些变量 为仿真提供更多的信息 在仿真结束后 本模板可以提供电容两端的电压和电容储存的电荷 这两个量可以通过extract命令来提取 也可以在siglist中设置 因此在Value中定义了两个val变量 Value段的特点 在value段中可以包括赋值语句和条件语句 赋值语句的格式为 variable expressionvalue段既是一个顺序段 也是一个说明段 作为程序段 在执行该段程序时是从上到下的顺序 因此在编程时引用的变量一定要在前面定义 作为一个说明段 仿真认为需要该变量时才会执行该段对应的语句 value段的关键词是value Value段的特点 续 只有仿真器需要提取相关变量时才会执行Value段 当方程段中需要Value段中的变量时才会执行Value段 如果不需要时 模板中的Value段是不会被执行的 因此在模板程序中编写Value段不会增加仿真时间 在提供相同信息的情况下 但是如果在需要的话 模板程序可以提供更多的信息 val变量的定义 val变量必须为局部变量 即val变量必须在程序的模板体中定义 valunitname name name valqqcvalvvval型变量必须在value段中赋值 如果模板为unstructured 则必须在模板体中赋值 控制段 控制段是为仿真器提供仿真系统的系统信息而不是仿真系统中元件的信息 控制段的关键词是control section 在关键词后接 在本模板中 使用了initial condition vc ic 它确定的是系统仿真时的电容初始条件是端电压为vc initial condition的使用 在一些模板中 需要确定其初始条件 确定初始条件通常都是在控制段中 initial condition variable value 其中variable为需要确定初始条件的系统变量或系统变量的差 value为初始条件的值 多类型电压源 下面将建立一个电压源模板 该模板有如下功能 1 提供恒压源在作直流分析和时域分析2 在作时域分析时电压源提供一个指数函数的电压波形 3 在作小信号AC分析时 它可以作为一个频域信号 这个电压源模拟了三种不同的输出函数 多类型电压源模板 1elementtemplatevsource 1pm supply tran ac2electricalp m headerdeclarations3numbersupply 045struc startoftranstructure6numberv1 0 initialvoltage7v2 0 voltageattime inf8tau 0 000001 timeconstant9 tran endoftranstructure1011struc startofacstructure12numbermag 0 ACmagnitude13phase 0 ACphase14 ac endofacstructure 15 starttemplatebody16variis localdeclarations17valvvs 组合数 简单数 多类型电压源模板 续 values 19if dc domain time domain Iflargesignal20if tran v1 0 tran v2 0 tran tau 0 21 Ifwaveformisdefined22vs tran v1 tran v2 tran v1 1 exp time tran tau 23 sourcevoltage waveform24 atcurrenttime25else otherwise26vs supply sourcevoltage supply27 28 29elseif freq mag orifsourceisacmagnitude30vs ac mag sourcevoltage magnitude31 32elseif freq phase orifsourceisacphase33vs ac phase sourcevoltage phase34 模板体结构 V段的作用 方程段 多类型电压源模板的特点 在模板头说明中定义了一个supply变量 该变量在直流分析或时域分析时提供恒压源 在头说明中 定义了两个结构体 用于确定时域分析时的指数电压源和频域分析的激励源 在结构体中 使用了仿真器变量 simvar 在value段中使用了使用了条件判据 MAST语言中的简单数 简单数据 简单数据有三种类型 它们分别是number enum string 它们分别是数值型数据 枚举型数据和字符数据 数值型数据 在MAST语言中 实数和整数都可以对数值型变量赋值 在使用是不区别 枚举型数据的定义 对象的名字有有限个 而在一个时刻其中只有一个是正确的 字符数据 这些数据就是有字符串组成 其内容通常要用引号 数值 枚举 字符 电源 MAST语言中的数值型数据 数值型变量的定义 numberid1 init id2 init e gnumbervcc 5 dc input rload 10k cload如果上述数据是一个中的变量 则可以通过网表赋值 其赋值的方式分别为 argument templatename refconnectionpoint 5 2 7 10k 47n templatename refconnectionpoint cload 47n vcc 5 dc input 2 7 rload 10k 返回 MAST语言中的枚举数 enum evalue evalue id int1 int2 e g enum n p bjt type n如果定义的枚举型数据为一个变量 则可以在网表中对该变量赋值 argument templatename refconnectionpoint bjt type n 返回 MAST语言中的字符数 字符数的定义stringid init init stringcoretype iron 如果字符为一个变量 则其值可以通过网表赋值 其赋值方式为 templatename refconnectionpoint coretype iron 返回 MAST语言中组合数据 组合数据 组合数据有两种基本类型 一种是结构数据 struc 另一种是联合数据 union 采用结构数据的目的是把一些相关变量构成一个整体 而采用联合变量的目的是希望一个变量在不同的时候处理不同类型的信息 组合数据都由四个部分组成 关键词 数据名 数据定义和数据对象的实体 但是联合数据的每一个实体只有数据定义中的一个对象 而结构数据则没有这个特点 电源 联合 结构 结构体的定义 结构体是一种数据类型 其定义的方式为 struc structurename member member id initial value id initial value struc为定义结果体的关键词 structurename为结构体的名 member为结构体成员 id为结构体变量 由于本设计中描述指数输出波形的函数为 Vout V1 V2 V1 1 e time t 因此在tran这个结构变量中的成员为3 结构体的定义实例 struc startoftranstructurenumberv1 0 initialvoltagev2 0 voltageattime inftau 0 000001 timeconstant tran endoftranstructure 5struc 6numberv1 0 7v2 0 8tau 0 0000019 tran struc numberv1 v2 tau tran 0 0 0 000001 结构体的使用 结构体变量的值要么在初始化结构体获得 要么通过网表传输进来 如果一个结构体的数据在初始化时就赋值了 在网表中又赋值 则仿真器将采用网表输入的数据 如果一个结构体在初始化时没有赋值 在网表中也没有赋值 则在仿真时将报错 返回 联合数据的定义 联合数据的定义 定义结构数据用关键词union 其定义的语法为unionunionname declarationdeclaration id init init 联合数据的定义实例 unionsource numberdcstruc numbermagnumberphase ac input1 dc 5 input2 ac 定义了一个联合类型的数据 该数据由两个选项dc和ac组成 其中ac为一个结构体 联合数据的定义实例 1 unionsource numberdcstruc numbermagnumberphase ac input1 input2unionsourceinput1 dc 5 input2 ac 在模板头中引用时为templatename refconnectionpoint input2 ac mag 1 phase 0 返回 模板函数体的结构 电压源模板 仿真器变量 条件判断 仿真器系统变量 SABER仿真器中有一套仿真器系统变量 用它们来判断仿真器所进行的仿真类型和对仿真器的控制 这些变量为系统的内部变量 在使用这些变量时 不需要定义这些变量 如果将这些定义变量时使用了这些变量名 出现的后果不可预计 仿真器系统变量表 直流 时域 控制 模板体结构 频域 频域分析仿真器系统变量的说明 freq domain 系统作频域分析时该变量值为1 其它情况下该变量值为0 freq

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论