Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1450112
  • 博文数量: 254
  • 博客积分: 8696
  • 博客等级: 中将
  • 技术积分: 2961
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-03 16:46
文章分类

全部博文(254)

文章存档

2015年(4)

2014年(18)

2013年(16)

2012年(8)

2011年(25)

2010年(2)

2009年(74)

2008年(107)

分类:

2008-07-06 15:26:37

用MAST语言来描述系统连接式元件特性的单位是模板,模板是MAST语言的核心,使用MASY语言的目的就是要建立反映系统连接或元件特性的模板。
一个通用模板可能包括11个部分,它们是单位定义、指针定义、头文件、全局申明、局部申明、参数段、网表、when段、vulues段、控制段、方程段。
一个模板的各个部分主要有二个部分,申明部分主要是指明仿真器可用的变量和引用的一些变量。
一、 模板头的定义,它是为了给一个模板去一个名,并且指定模板类型,该模板的连接点以及使用该模板需要的参数。它决定了该模板的使用方法。
模板的类型有两种,一个是标准模板,另一种是元件模板。元件模板应在模板前加element关键词。这两种模板的区别一种是模板内部的节点可见,另一种是模板内的节点不可见。模板头的定义规则维:
[element] template template-name connections [argument]
定义模板的关键词是template,如果是元件模板,则其关键词为element template。
template-name 是模板名,它应与文件名一致。
例子:element template vesistor p m [= r,tnom]。
二、 全局申明:在头文件种,只有template-name 项是可知的,而连接点和argument没有说明。
Pin-type (implied unit ) id,id
State unite id,id
Ref unite id,id
Var unite id,id
Argument 三类基本数 三类复合数
在全局申明中就是用来说明这一部分的,它主要是说明连接点上的类型和argument的类型。(互感元件k用了ref端点)。
三、 局部申明
局部申明是用来说明在函数体内需要用到的指针,连接点,argument等的说明。这一部分的使用规则与全局申明的规则一样。
四、 参数段
参数段是一个操作段,它是用来处理参数。并不是在每个步长中都要处理该段,只是在仿真器读输入文件时,以及改变argument只时或进行monte carlo分析处理该段。对参数段的执行是从上到下逐条执行,这与C或fortran程序相似。参数段的关键词parameters,其定义规则为:
parameters{
statements
}
在参数段中的statements可以是赋值语句,可以是条件语句,也可以调用C或fortran函数,利用其函数计算的返回值,它可以用MAST语言的库函数,但它布能用d_dy_dt函数和delay函数,在该段中唯一可用的仿真变量simvar就是statistical
例子
parameters{
if (model→type==-n{
[
p=1
}
else (model→type==-p{
[
p=-1
}
rb=area*model→rb
work=spq(1,model,rb,temperature)
}
五、 在前面已经看到,用MAST语言解一个反映系统连接的模板其实就是一个网表,在解一个元件模型时,有时也要用到网表。网表的目的就是在一个元件中调用已有的模板,并对调用模板的argument量赋值。元件模板中的网表与系统网表的用法相同,其调用语法规则:
templatename. refdes connection-pt-list[=argument]
templatename是调用的模板名,它是由模板头所确定的,refdes是设计的参考,它在设计中必须是唯一的,connection pt-list模板的连接方式。
e.g.
element template v p m =dc ,tran ,ac
electrical   p ,m
number dc=0
union{
number off
struc{number v0=0, va , f, ,td, theta}sin
struc{number v1,v2, ,td, tr, tf, pw, per}pulse
struc{number v1,v2, ,td1, tau1, td2,tau2}exp
number pwl[*]
struc{
number v1,v2,period,rtime,width,ftime,delay
}clock
}tran=( off=1)
struc{number mag=0,phase=0}ac=(0,0)
v.v1 p:a m:0=dc=5
v.v2 b   0=5
v.v3 c   0=vcc
v.v4 d   0=tran=(sin=(va=1,f=10k,td=0.theta=0))
v.v5 e   0=tran=(sin=(0,1,10k,0,0))
v.v6 f   0=tran=(pwl=[0,0,10n,0,11n,5,20n,5,21n,0])
v.v7g   0=tran=(sin=(0,1,10k,0,0)),ac=(mag=1,phase=0)
六、 when段
when段是一个操作段,该段的操作总是和时间联系在一起的,即在什么时候操作。它可以离散模拟信号,操作数字信号,测试模拟波形穿越门槛,确定触发事件,确定仿真器的时间等。
when段语法定义为:
when(condition){
statements
}
在when段时,关键词是when,而条件将被监视,一旦条件得到满足,函数体中的语句将逐条被执行,在when段中的条件通常由事件触发函数event-next-time和门槛比较函数threshold充当,同时仿真器变量也经常作为when中的条件来使用,而在statements中紧张用到的函数schedule-event,schedyle-next-time。
在statements中可以使用赋值语句,被赋值量一定要是状态量。
Values段
values段既是声明段又是操作段,在这一段中主要是对val类型的变量赋值,它主要是为方程段服务的。
values段并不是在每一个时间步长上都要进行计算,只是在系统需要时候才进行计算。当只有在该段设有与时间相关的量时在每个时间步长上才至少计算一次,但斐然当然如果有非线性部分,如果有必要的话将进行叠代。在该段中被赋值的变量一定要是val型(仿真器变量中next-time和step=size也能在该段作为被赋值的变量。
values段的声明语法:
values{
statements
}
其中关键词是values。在statements中可以是赋值语句、条件语句,也可以是有MAST语言的内部函数(除d_dy_dt,delay函数外)。

网页模板就是已经做好的网页框架,使用网页编辑软件输入自己需要的内容再发布到自己的网站。每个网模板压缩包内包含:PSD图片文件(可用Photoshop    或 Fireworks修改),按钮文件和字体文件,推荐使用Dreamweaver软件向网页模板添加内容。网页模板就是已经做好的网页框架,使用网页编辑软件输入自己需要的内容,再发布到自己站。

    每个网页模板压缩包内含:PSD图片文件(可Photoshop或Fireworks修改),按钮文件和字体文件,推荐使Dreamweaver软件向网页模板添加内容。

(http://hi.baidu.com/wanhaipeng/blog/item/a74c01fa2c2b889459ee90de.html)

阅读(1010) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~