面向对象的混合模式电路仿真方法_第1页
面向对象的混合模式电路仿真方法_第2页
面向对象的混合模式电路仿真方法_第3页
面向对象的混合模式电路仿真方法_第4页
面向对象的混合模式电路仿真方法_第5页
已阅读5页,还剩2页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、面向对象的混合模式电路仿真方法*陈刚戴先中马旭东摘要混合模式仿真(mixed mode simulation)是电路仿真领域内的最新发展方向, 提出了将面向对象思想应用于混合模式电路仿真的新思路,以解决器件模型和仿真算法的可重用、 易扩展性问题, 并以原型系统OOSim(Object-Oriented circuit Simulator)为例, 系统地阐述了面向对象思想在混合模式电路仿真软件设计中的应用. 关键词电路仿真; 面向对象; 器件建模分类号TP 73.113Object Oriented Mixed Mode Circuit SimulationChen GangDai Xianzh

2、ongMa Xudong (Research Institute of Automation, Southeast University, Nanjing 210096)Abstract:Mixed-mode circuit simulation is the latest developing trend in the field of circuit simulation, an object-oriented way is presented in this paper in order to solve the expandability problem of device model

3、 and simulation algorithm in traditional simulator, and the process of implementing object-oriented designing method is fully discussed through the demonstration of a prototype system-OOSim. Key words:circuit simulation; object-oriented;device modeling 1混合模式电路仿真在电路仿真中, 为了降低大规模、 数模混合电路对计算能力的巨大需求, 电路设

4、计者往往对被仿真电路进行不同程度的抽象,以达到简化电路复杂度、 加快电路仿真速度的目的. 这种抽象可以应用于单个器件、 局部和整个电路, 它表现了电路设计者对电路中不同部分的关注程度. 混合模式电路仿真1中的抽象级别自下而上分为模拟级(electrical level), 开关级(switch level), 门级(gate level), 寄存器传输级(register transfer level)和行为级(behavioral level). 通常, 随着抽象级别的提高,仿真运算速度逐渐加快, 伴随而来的则是仿真精度的降低. 但是, 由于采用不同的抽象级别来描述被仿真电路中的不同组件,并

5、对不同级别的器件模型采用不同的仿真算法, 因此它在仿真速度和电路规模上远远超过传统的数模混合仿真器,更加符合自顶向下(Top-Down)和自下而上(Bottom-Up)的现代大规模电路设计方法. 本文以面向对象设计方法为指导思想, 针对传统混合模式电路仿真程序中器件模型和仿真算法的可重用、 易扩展性问题进行了探讨, 提出了新的解决办法. 2应用面向对象的思想来分析电路仿真问题电路仿真研究的是仿真对象由于各种组成部分(电子器件)相互作用而表现出来的物理行为. 因此在这个问题域内应当受到关注的是各种电子器件(对象)及器件间的有机联系(如基尔霍夫电压定律和电流定律等约束条件). 电子器件作为电路仿真

6、的主要研究对象在被仿真电路中是以器件模型的形式体现出来. 器件模型就是电路设计者对该电子器件物理行为的抽象表示, 由于设计者的精度要求和关注细节的不同,这种抽象表示可以有不同的层次, 不同的层次之间存在相似性和继承性的特点. 因此, 可以用面向对象方法中类的概念来描述电子器件及其抽象模型. 面向对象的器件建模与传统混合模式器件建模相比, 器件模型不再局限于特定的抽象级别,而是通过对象类的继承和重载机制, 由上而下地不断细化,逐步扩展. 这种面向对象的器件建模过程使得设计者可以通过成果复用和快速原型化开发等手段达到加速设计进程、 降低设计成本的目的. 电子器件之间的有机联系, 是电路仿真算法研究

7、的主要对象. 在模拟电路仿真程序SPICE中, 所有器件模型同处于模拟级,模型之间按照基尔霍夫电压和电流定律紧密地耦合在一起形成电路方程, 通过直接的矩阵方法进行求解. 在混合模式仿真中, 由于器件模型具有不同的抽象级别,采用直接方法形成和求解统一的电路方程是非常困难的, 因此可以采用基于对象的、 事件驱动的(Event-Driven)、 选择跟踪的(Selective-Trace)混合仿真算法. 当前, 一些通用的混合模式电路仿真器如 DYMOLA, SABER2和APLAC3等在电子器件的建模机制上已经具备了基本的面向对象特征, 能够借助于各种模型描述语言按照类的层次结构来组织器件模型,但

8、是它们共同的缺点在于缺乏与经典的SPICE器件模型的兼容性, 使得大量经实践检验过的器件模型无法得到充分的复用;由于模型描述语言语法格式的限制, 不能完全支持面向对象思想中的重载机制. OOSim是一种面向对象的混合模式电路仿真器, 它与普通混合模式仿真器的主要差别在于:在系统分析、 设计和实现过程中完全遵循了面向对象的设计思想, 而不仅仅是采用面向对象的语言工具(C+等)进行软件开发. OOSim通过采用对象化封装的形式将经典的SPICE器件模型融入自身的器件模型库, 通过在器件模型的行为描述部分引入函数和子程序语法结构改善了对面向对象思想中重载机制的支持.3OOSim的设计和实现3.1设计

9、思想OOSim的设计目标是将器件模型与仿真算法合理地分割开来,让模型实现者在不用了解仿真算法的情况下进行建模,这样可以得到更好的器件模型;解除算法设计者对模型的开发和支持任务,让其专注于算法的设计和实现,从而得到最好的仿真算法.OOSim设计的重点是实现一个面向对象的框架结构, 以支持类的继承和重载机制及对象之间的消息传递机制,来为电路仿真问题服务. 框架本身并不包括器件模型类库和仿真算法类库, 它只是实现了对类和对象的支持机制. OOSim的系统结构见图1. 图1OOSim系统结构OOSim的面向对象特性体现在: 面向对象的器件建模(OOM)、 面向对象的混合模式仿真算法(OOSA)和面向对

10、象的用户接口(OOUI). 面向对象的器件建模是为了解决模型的复用和扩展问题, 仿真算法的面向对象化是为了增强算法的扩展和完善能力,面向对象的用户界面可以使被仿真电路的设计和实现更加符合自顶向下, 逐步细化的设计思想. 3.2面向对象的器件建模方法在SPICE中, 器件模型分为2类:物理模型和宏模型. 物理模型由表示器件特性的数学公式构成, 以子程序的形式存在于SPICE的源代码和目标代码中, 它是实验电路的基本组成部分. 宏模型用多个简单的物理模型组合起来描述复杂器件的行为特性, 是对器件物理特性在某种程度上的抽象表示. 宏模型存储在于库文件中, 便于扩充和修改. 增强型的SPICE版本(如

11、PSPICE, XSPICE, HSPICE和IG-SPICE)对SPICE的改进主要在于提供了各种各样的辅助建模手段, 如核心代码修改、 外部程序调用、 参数化的宏模型等. 在混合模式仿真中, 电路器件分属于不同的抽象层次. 这种抽象是自下而上进行的(模拟级开关级门级寄存器传输级行为级), 是对底层行为的简化表示. 器件模型的不同层次是由仿真软件设计者规定的, 与采用的多层次的仿真算法密切相关. 因此, 器件建模人员仍然受到抽象层次和仿真算法的极大限制. 面向对象的器件建模是一个由简单到复杂, 逐步求精的设计过程,是OO思想4中继承和重载机制的充分体现. 1) 继承性模型的设计者抽象出不同类

12、型的器件及器件的不同抽象层次之间存在的共同行为, 形成一个公共的父类,通过建立子类处理各种器件的特殊行为. 子类的使用使得器件模型易于理解, 并且自然层次清楚. 当一个器件类同时具有多个父类时(多重继承), 它可以继承所有父类器件的行为. 2) 重载父类是子类的泛化表示, 子类是父类的实现特例. 父类定义了子类之间的共同行为, 但并不限制这些行为的具体实现;子类不仅继承而且扩展了父类的行为, 这些扩展行为在父类的不同子类之间是不一样的,它是器件行为特殊性的具体表示. 3.3对象描述语言(ODL-Object Description Language)与SPICE和普通混合模式仿真不同, OOS

13、im中的所有器件模型类都存放在以文本格式独立存在的模型类库中, 这样做的目的在于方便器件模型的扩充和修改. OOSim以对象描述语言(ODL)来描述器件类及其层次, 器件模型类的定义采用以下结构模式:Class 类名 Inherit 父类1, 父类2, Interface: / 接口描述Attribute: / 器件属性Architecture: / 内部结构描述, 用于组合模型Behavior: / 行为描述器件类结构中的Interface 部分描述了器件与外部环境的接口. Attribute部分为2种属性: 一种是外部属性,是电路设计者可以设置的模型参数; 另一种是内部属性,只能由模型的行

14、为描述部分进行计算和设置, 但其数值可以通过消息传递机制输出给电路中的其他对象使用. 当一个复杂器件类可以用几个简单器件类的组合结构来表示时, Architecture 部分用于描述各简单器件类之间的互连关系. Behavior部分定义了器件的物理行为, 是整个器件类中最重要的部分,它根据电路设计者输入的模型参数、 器件的内部结构和外部接口信息, 通过反映器件物理机制的数学公式计算器件本身的状态. 由于面向对象思想具有信息隐蔽的特性, 因此在解决经典SPICE器件模型的兼容性问题时, OOSim借助ODL为SPICE模型定义了标准的调用接口(对象化封装), 而将实际的模型计算工作以DLL(动态

15、连接库)的形式集成在OOSim的器件模型类库之中. OOSim在器件模型的属性和行为描述部分引入函数和子程序语法结构, 将模型的计算工作分解为相对独立的模块,从而使得模型设计者可以通过重载部分计算模块来获得改进的器件模型. 由于继承和重载的关系, OOSim的器件模型类库呈现出一种清晰的层次结构(见图2). 对器件模型设计者来说, 达到了成果复用的目的,使得模型的扩展工作更加快捷. 对电路设计者来说, 系统的设计过程更加符合自顶向下,逐步细化的现代设计思想. 图2器件模型类别3.4面向对象的仿真算法OOSim是一个面向对象的混合模式仿真器, 与其他仿真软件相比,器件类之间的层次并不明显, 因此

16、不能采用普通的混合模式仿真算法. 面向对象的混合仿真算法需要解决以下问题:1) 选择仿真级别混合模式仿真的级别一般划分为模拟级、 开关级、 门级、 寄存器传输级和行为级. 为了简化算法OOSim只包括模拟和数字两种仿真级别, 各器件类通过在Interface部分选择模拟或数字接口, 来取得与仿真算法的统一. 2) 仿真器结构OOSim采用事件驱动(Event-Driven)、 选择跟踪(Selective-Trace)的仿真器结构. 3) 事件定义和事件调度事件是电路中某些节点状态的改变, 它可以影响其他部分的行为. 对于OOSim的连续的和离散的仿真级别, 事件的定义是不一样的. OOSim

17、采用事件队列对事件进行排队, 根据选择-跟踪的策略进行事件调度. 4) 信号的表示和映射在混合模式仿真中, 由于被仿真电路中器件分属于不同层次的器件类,因此信号在不同层次上的一致性表示问题必须得到解决. 在OOSim中, 这种映射关系由器件类根据本身行为来进行解释. 4面向对象的器件建模示例以R, L, C为例, R, L, C均为双端电子器件, 它们的属性包括端电压和流过的电流,行为模式包括电势差的计算和所满足的物理定律. 对于R, L, C来讲电势差的计算公式是相同的, 因此可以建立相同的父类TwoPort ( 双端器件类). Class TwoPort Class Resistor In

18、herit TwoPort Interface: Attribute: RES R; / 电阻参数TERMINAL a, b; /端口定义 Behavior:I = U/RAttribute:VOLTAGE Ua, Ub; / 端电压Class Inductor Inherit TwoPort VOLTAGE U; / 电势差 Attribute: IND L; /电感参数CURRENT I; / 电流Behavior: U=L*der(I)Behavior:Class Capacitor Inherit TwoPort Ua=NODE(a);Attribute: CAP C; /电容参数Ub=NODE(b);Behavior: I=C * der(U)U=Ua-Ub;从以上用ODL语言描述的R, L, C器件模型可以看出, 面向对象的器件建模机制可以通过成果复用,有效地减少开发工作中的重复劳动, 降低开发成本,加快设计进程. 5结语本文主要论述了面向对象的混合模式电路仿真软件设计和实现过程, 提出面向对象的器件建模技术和面向对象的仿真

温馨提示

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

评论

0/150

提交评论