- 相关推荐
用Protel99SE实现脉冲电路的仿真
摘要:针对Protel99SE的数字电路模型不适用于脉冲电路仿真的缺陷,通过实例论述了用创建子电路模型和创建层次式模块电路来实现脉冲电路的仿真测试。Protel设计系统作为电子设计自动化(EDA)软件中的佼佼者,一直受到广泛的欢迎。Protel99SE是Protel公司2000年推出的最新版本,内部集成了功能强大的模数混合仿真器,采用Spice仿真内核,含有丰富的器件模型库,能快速简便地实现大部分模块电路和数字电路的仿真[1~2]。且仿真结构十分精确,提高了电路设计的效率和效益。由于Protel99SE的数字电路(门电路)模型没有采用Spice模型,而是采用类C语言(Digital Sim code)编写,它只注意到电路的输入与输出逻辑电平值,而对门电路的输入输出阻抗考虑不够,从而导致这些模型不适用于输入、输出电流较大的数字电路的仿真。在脉冲电路中,由门电路构成的对称式多谐振荡器和微分型单稳态触发器等电路的输入、输出电流都较大,如果直接调用仿真库内的器件设计这些电路并进行仿真,结果将的失败的。然而,Protel99SE提供了开放的仿真器件库维护护环境,用户可创新器件模型,它还支持层次式电路的设计与仿真。基于这两点,笔者探索出两种适合于脉冲电路的仿真方法,其结果是令人满意的。
1 创建门电路的子电路模型
直接调用仿真库内的器件导致仿真失败的原因是Protel99SE仿真库内的模型不能完整和全面地描述电路的性能。为此,有必要为门电路建立符合要求的子电路模型。下面以TTL电路中的四二输入与非门T1000为例,介绍子电路模型的建立步骤和方法。
第一步,按图1画出门电路的内部结构。根据所选器件的有关参数(如门电路的延迟时间、功耗等)选取三极管及电阻等元件,画面子电路图。其中多发射极三极管用两个三极管Q1和Q2并联代替,Rx是为了避免电气规则检查(ERC)出错而设置的,若短路Rx,则在进行电气规则检查时会报告出错信息,但并不影响仿真。
第二步,在电路中标出有关节点。如图1中的a、b、c、d、e五个节点。
第三步,创建器件电路符号并完成相关工作。Protel 99 SE仿真器件的电路符号、参数、管脚等信息存放在Design Explorer99SE.ddb仿真元器件库中。Protel99SE的仿真器将在此读取器件的有关信息。需要做的工作有如下几项:
(1)创建仿真元件库文件。打开数据库文件Design Explorer 99 SE.ddb,创建新文件T1000.Lib。
(2)画元器件符合并为器件命名。打开文件T1000.Lib,进入元器件符号编辑界面,单击右键,用Tools-Rename Component将器件命名为T1000。画面T1000的电路符号,并编排好引脚,用Tools-New Part创建四个子件1/4、2/4、3/4、4/4。各个子件的引脚排列与74LS00相同,即在一个封装内集成四个与非门,如图2所示。
(3)在Browse schlib页面,单击Description按钮,并切换到Designator页面,在Default区域中填入放置器件的缺省名称"U?",在Designator域中填入TTLGATE,在Foot Print 1域中填入Dip14。再切换到Library Fields页,为Text Field 1-Text Field 5各个区域填写如下相应内容:
Text Field 1:Type=SUBCKT(X);此域定义T1000为子电路。
Text Field 2:model=T1000;此域将此子电路的模型名定义为T1000。
Text Field 3:file={model_path}.ckt;此域指出模型文件存放的路径及文件名。
Text Field 4:pins=1:[1,2,3,14,7]2:[4,5,6,14,7]3:[10,9,8,14,7]4:[13,12,11,14,7];此域定义各子件的管脚分配及管脚排列顺序。引脚排列顺序必须与模型文件中子电路定义语句所定义的节点排列顺序相对应。
Text Field 5:netlist=%D%1%2%3%4%5%M;此域包含Spice网络表的网络数据。其含义可参见参考文献[4]~[5];该页的其余区域可不填。Part Field Name项不用设置。
第四步,创建器件模型文件。
Protel 99SE的模型文件存放在Design Explorer 99 SEModel.ddb仿真文件中。首先在此数据库中创建文件夹TTLGATE,再创建文件T1000.ckt。Spice语言规定子电路的扩展名为ckt。根据图1按Spice模型文件规范编写此文件是一种较烦琐的事情,未能体现Protel的优点。下面介绍一种简便方法:将图1中的节点e的标号"e"去掉,并在此节点上放置接地符号(0),单击Simulate/Create Spice Netlist按钮,系统会自动生成Spice网表文件T1000.nsx。将文件中的注释行和命令行删除,将节点0改为节点e,在文件的最前面添加一行子电路命令语句:.SUBCKT T1000 a b c d e,将文件的最后一句由.END改为.ENDS T1000(子电路结束语句),最后将此文件内容复制到新建的子电路模型文件T1000.ckt之中。得到的新器件的模型文件如下所示:
【用Protel99SE实现脉冲电路的仿真】相关文章:
错误检测与纠正电路的设计与实现03-20
异构双腿机器人仿真系统设计与实现03-07
软件无线电发射机的实现与仿真03-18
一种基于线性调频脉冲压缩雷达目标回波仿真03-07
计算机毕业论文-用Windows终端仿真程序实现微机远程文件传送03-06
换体DMA高速数据采集电路的CPLD实现03-18