最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

基于Protel 99 SE的电路仿真研究

来源:动视网 责编:小OO 时间:2025-09-22 23:04:27
文档

基于Protel 99 SE的电路仿真研究

基于Protel99SE的电路仿真研究赵培栋袁承宗杨辉031243100312430803124337摘要:本文通过电路辅助设计工具Protel99SE主要实现对运算放大器模拟电路以及数字计数器电路和PLD的仿真。在仿真过程中,我们将通过和专门的模拟仿真软件CircuitMaker对相同电路的仿真结果进行比较和分析,来更好地了解Protel99SE仿真功能,并研究及探讨其自身的相关特点,更多地挖掘Protel99SE的“潜力”,使Protel99SE得到更为广泛的应用。关键词:Protel99
推荐度:
导读基于Protel99SE的电路仿真研究赵培栋袁承宗杨辉031243100312430803124337摘要:本文通过电路辅助设计工具Protel99SE主要实现对运算放大器模拟电路以及数字计数器电路和PLD的仿真。在仿真过程中,我们将通过和专门的模拟仿真软件CircuitMaker对相同电路的仿真结果进行比较和分析,来更好地了解Protel99SE仿真功能,并研究及探讨其自身的相关特点,更多地挖掘Protel99SE的“潜力”,使Protel99SE得到更为广泛的应用。关键词:Protel99
基于Protel 99 SE的电路仿真研究

赵培栋袁承宗杨辉

03124310 03124308 03124337 摘要:

本文通过电路辅助设计工具Protel 99 SE主要实现对运算放大器模拟电路以及数字计数器电路和PLD的仿真。在仿真过程中,我们将通过和专门的模拟仿真软件CircuitMaker对相同电路的仿真结果进行比较和分析,来更好地了解Protel 99 SE仿真功能,并研究及探讨其自身的相关特点,更多地挖掘Protel 99 SE 的“潜力”,使Protel 99 SE得到更为广泛的应用。

关键词:Protel 99 SE,模拟仿真,CircuitMaker,仿真模型库,可编程逻辑电路

Abstract:

The following article mainly explains how to implement the simulation on amplifier circuit , digital arithmometer circuit and PLD by Protel 99 SE, which is a kind of accessorial circuit designing tool under our research. In the process of this simulation, we will compare the Protel 99 SE with CircuitMaker, another expert simulation soft to the effect on the simulation of the same circuit, and analyze the results so that we can learn its simulation function better and find more advantages of Protel 99 SE through the study of its correlative character. Our aim is to make Protel 99 SE be widely applied.

KEY WORDS: Protel 99 SE, Simulation, CircuitMaker, Simulation Module Library, Programmable Logic Device .

一、简介

1.强大的分析工具

Protel 99 SE是Protel公司开发的功能强大的电路辅助设计工具,是EDA行业的主流产品。Protel 99 SE开创了桌面EDA的新纪元,它不但会在绘制原理图、PCB板布局布线等方面功能更加完备,而且它为用户提供了功能强大,使用方便的电路仿真器,它可以对当前所画的电路原理图进行即时仿真,因此在电路的整个设计周期都可以仿真查看和分析性能指标,以便及时发现设计中存在的问题并加以改正,从而更好地完成电路设计。

Protel 99 SE提供了高级数模器件混合仿真功能,引擎采用伯克利分校的SPICE3f5/Xspice,它可精确地仿真由各种器件(如TTL,CMOS,BJT等)构成的电路。同时,Protel 99 SE仿真不需要用户自己去编写电路网表文件,系统将根据所画电路自动生成网表并进行仿真,使用方便灵活。

2.充分的仿真模型库

器件模型是电路仿真的基础,一个优秀的EDA软件离不开一个极其广泛而且精确的模型库。Protel 99 SE提供了20多个模拟和数字器件仿真元件库,共包含6000多个常用元器件。这些器件库包括了常用的二极管、三极管、MOS管、单结晶体管、晶振和变压器等分立元器件,同时还有大量的数字器件和其他集成电路器件,如74系列、CMOS系列、运算放大器、比较器和数模转换器等。这些常用器件一般可以满足用户的需求。同时Protel 99 SE提供了一个开放的库维护环境,用户可以方便地修改原有器件模型,也可以创建新器件模型。

二、电路仿真

1.模拟电路的仿真

本实验旨在探究Protel 99 SE软件的仿真功能效果,为方便起见,我们将选用较为简单的由运算放大器构成的电压并联负反馈电路。

不难在Protel 99 SE的模拟仿真库中找到我们所需要的器件,将其按要求连接,构成电压并联负反馈电路,如图:

电路原理图

由运算放大器的“虚短虚断”可知,此电路的电压放大倍数Av=1+Rf/R1=11。由于输入信号从反相端输入,因此输入和输出的信号波形应成反相关系。正弦电压的幅值为100mv,因此电路的输出电压幅值应为1v,与输入信号反相。

在用Protel 99 SE进行仿真之前,我们先利用专门仿真软件CircuitMaker进行一次仿真,以验证上述结果。在CircuitMaker中重画电路图,如下:

仿真后,拖动标尺即可得到符合理论的结果:

输入输出波形曲线

同时,对此电路进行交流分析,得到幅频特性曲线:

幅频特性曲线

负反馈电路有拓宽频带的作用。

直流分析仿真波形:

直流扫描分析曲线

下面,我们将运用Protel 99 SE进行相同的仿真实验,并比较结果。

在Protel 99 SE中,点击不同类型的文档时,出现的主菜单也不同。当选择原理图文件(.sch)时,在主命令行中出现Simulate菜单选项,这是进行仿真生成、生成SPICE网络文件和运行仿真的必经之路。

前面曾提到过,使用Protel 99 SE仿真电路无须用户编写网表文件,Protel 99 SE将自动完成这些操作,所获得的网表文件被传送给SPICE进行仿真。点击,在下拉子菜单中选择“Create Spice Netlist”子菜单,片刻后生成一个.nsx网表文件。

在仿真操作时,如果还没有进行仿真设置,则不应马上选择运行仿真指令Run,而应先进行一定的设置。我们点击Simulate子菜单中“setup…”命令,开始对电路仿真进行相关设置。

在Protel 99 SE中,支持的分析类型有:静态工作点分析、直流扫描分析、温度扫描分析、参数扫描分析、瞬态分析/傅立叶分析、噪声分析、交流小信号分析、传递函数和蒙特卡罗分析。我们可以根据需要选择其中的一个或多个,菜单如下:

如上图,针对本次反馈电路,我们将输入节点IN、输出节点OUT、反馈节点F添加到Active Signal中,用以在最后仿真中观察这些被激活信号的各个波形,并根据要求,我们选择静态工作点分析、直流扫描分析、瞬态分析/傅立叶分析、交流小信号分析。特别地,在进行AC分析和DC分析时,我们需要对其做一定的设置,比如启始电压、终止电压、采样点数量、步长等等,如下图:

AC/DC Analyses设置此时点击Run Analyses、Simulate子菜单下Run或点击图标均可进行仿真。仿真波形如下:

输入输出波形曲线

幅频特性曲线

直流扫描分析曲线

以输入输出波形曲线为例,我们还可以通过鼠标拖拉将几个信号置于同一区域,如下:

输入输出波形曲线(2)

当前任务窗口为仿真图文件(.sdf)时,在左边的Browse SimData主菜单中选中单独显示该波形(View Single Cell)命令,可更为精确地定量显示波形,如下:

根据上述仿真结果,我们发现,信号输入输出波形特征以及AC交流幅频特性仿真结果与CircuitMaker仿真结果相同,符合理论实际。但是,在Protel 99 SE中进行直流扫描分析时,仿真图象只显示当前静态工作点工作状态下的波形,而无法如CircuitMaker一样将各种不同的工作点状态波形显示在同一张仿真图中。

2.数字电路的仿真

本次数字电路仿真将使用以74LS168为核心的可进行递增/递减记数转换的模十计数器。同模拟电路仿同,在仿真模型库中找到所有所需元器件构成模十计数器原理图,如下:

同样的,我们先通过CircuitMaker重画电路,进行仿真,看运行结果,如下:

当Up/Down开关置“1”时,计数器递增记数,置“0”时,计数器递减记数,仿真结

果通过7段译码显示,递增情况下,当记到“9”时,自动归零,并且进位位TC跳低电平,表示进位。递减情况下,记到“0”时,自动归“9”,进位位跳低电平,表示借位。

有必要进行一些相关说明,在仿真软件CircuitMaker中,我们可以很容易地找到“1”,“0”SWITCH开关,为仿真提供了方便。而由于在Protel 99 SE中没有提供直接的SWITCH 开关,我们将预置数直接固定为“0000”,并且只进行递增记数的仿真,因为预置数为多少以及记数是否递增与我们现在所规定的仿真实质是一样的。因此我们直接将“ABCD”引脚接低电平,而将U/D’接高电平。

在Protel 99 SE中我们将直接通过输出信号波形来对仿真结果进行分析,仿真操作步骤同模拟电路的仿真,得到波形如下:

如图,从低位到高位依次为netlable10 、netlable11、 netlable12、 netlable13 ,进位信号为netlable15。显然,计数器进行递增记数,当为“1001”时,进位信号跳低电平,记数重新归“0000”,实现了模十的递增记数,与CircuitMaker仿真结果实质上是完全相同的。

三、自建模型库的器件设置

在之前所讨论的模拟仿真中,我们都直接

利用了Protel 99 SE仿真模型库Simulation

Symbols.Lib中自带的各种模块和元器件。这

些器件的相关仿真信息已经事先编辑好了,对

于其中Read-Only Field中的参数,在我们将其

拖动到图纸上以后,就已经被固定下来,无法

再进行改动。(所以设为只读,怕万一改动后

Protel 99 SE就找不到相关信息了。)如右图所

足我们的个性化需求。如此,我们势必将会通过创建自己的模

型库,并自己封装和添加模块来达到设计的目的(自建库以及

相关添加封装过程非本文重点,不做繁述)。那么当我们使用自

建库中的元器件时,是否还能像从Protel 99 SE自带库中随意地

选取器件搭建原理图并进行仿真一样操作呢?

我们不妨先尝试一下,现我们拥有已创建好的一个自建库

Savcdevbc.lib,在该模型库中选择一个简单的元器件:电阻R。

如右图所示。

我们将其替换进先前所绘制的电压并联负反馈电路中,设

置好阻值,选择Create SPICE Netlist生成网表文件,这时却出

现了错误导致无法正常地自动生成网表文件,使该电路无法仿

真。错误信息如下:

R Error: Pin order data (PINS=1:[]) not in READ ONLY

field 4. Pins sorted by pin-name.

R Error: Part type must be entered in READ ONLY field 1:

type=()

R Error: Netlist data must be entered in READ ONLY field 5:

netlist=

错误信息中多次提到READ ONLY field信息为空,而之前已经说明过这里是存放相关

仿真信息的,因此我们查看该元器件属性,发现READ ONLY field确实为空,如图:

那么是不是有办法添加这些属性呢?答案是肯定的。由于当元器件拖入图纸后,这些READ ONLY field将无法再做改动,因此在它们进入图纸为我们“服务”之前,应先对它们进行“调教”。

在Browse Sch中选中自建库中的所需器件,再点击Edit,将新弹出一个工作窗口,按右键后在所弹出菜单中Tools子菜单下选择Description…,开始进行编辑,如下:

在弹出的窗口中选择Library fields,即可对相关仿真信息属性进行修改设置:

下面对Field 1~Field 5意义进行说明。(Field 6~Field 8一般不常用,在制作自己的仿真元器件时可忽略)

1.Field 1

该栏包含的信息是器件类型和该器件在SPICE网表文件中的前缀字母,其语法为:type=()

Device Type是器件类型;SPICE Prefix代表该器件在SPICE网表文件中的前缀字母。

2.Field 2

该栏指明器件所用的模型名称(因为在一个库中可能会有多个模型),其语法为:

model=

model_name为模型名称。

3.Field 3

该栏指定了模型文件所在的路径。语法为:

file={model_path}\\\\.

model_path在安装Protel 99 SE时已经内定,即为…\\Library\\Sim文件夹。

subpath是{model_path}目录下的一个子目录,该子目录将包含模型文件。

model_name代表模型名称,它和Field 2中的model_name是一致的。

ext代表模型文件的扩展名,扩展名只能为.mdl(SPICE模型)或.ckt(SPICE子电路)。4.Field 4

该栏中包含器件的引脚排列信息,语法为:

pins=:[,,,…]…

part_no代表器件编号,因为有时在一个封装中有多个同样的器件(如与非门集成块中有多个与非门)。

,,,…代表该器件的引脚号。

5.Field 5

该栏包含了Protel 99 SE自动生成网表文件时的信息,语法为:

netlist=||…

用“|”线分开表示多行SPICE网表信息。

四、高级可编程逻辑器件仿真

对于数字电路而言,可编程逻辑器件的设计和使用正随着电子技术的飞速发展而逐渐成为了了主流。从结构来讲现可编程器件主要可分为两大类:与或阵列的PLD器件以及门阵列的FPGA器件。下面本文将对PLD器件实现8位二进制计数器的仿真进行探讨。

在做可编程器件的仿真之前,我们应先对PLD设计的一般过程有个大致的了解。具体而言,可分为“明确目的设计”→“创建源文件”→“系统地陈述方程式”→“选择一目标器件”→“定义管脚”→“编译源文件”这几个过程。这是PLD设计的一个普遍规律。

1.创建CUPL源文本文件

在Protel 99 SE主界面下,选择New…,在弹出的窗口选择Wizards下的PLD-CUPL Wizard,进入PLD99设计向导,如下:

跟着向导的提示依次完成头信息(器件名、设计者、格式、所用逻辑器件等)、设计方式选择(主要为原理图和文本编辑两种)、输入输出引脚的设置等输入后,即可完成源文件的设置。

这时系统已生成了count8.pld文件。打开该源文件可直观地看见源文件的框架,我们可以在该框架下对头信息、引脚以及说明作再修改和定义,如下:

2.逻辑功能的编写与编译

在Protel 99 SE中的PLD99编辑器所能编译的语言有ABEL——HDL、CUPL、VHDL 等硬件描述语言。需要注意的是,编译器虽支持其他的硬件描述语言,但在设计过程中,如欲采用其他的设计语言,还需额外增加功能模块,编译器现有功能模块无法对这些语言进行编译和仿真,因此本文还是将采用最为方便直接的CUPL语言来进行设计与仿真。(CUPL 语言和语法非本文重点,请读者参考相关书籍,本文不作繁述。)

通过卡诺图方式我们分析了器件欲实现的逻辑关系后,利用CUPL语言完成相关逻辑功能描述的程序设计,如下:

接着进入编译流程。这是验证程序是否出错的主要依据,也是之后进行仿真的基础条件。选择PLD菜单下Compile子菜单,进行编译,如没有错误,将显示编译成功提示窗口:

编译结束后,编辑器输出设计者所需的一些文件

.jed文件:工业标准的JEDEC文件,是一种下载文件格式,该格式同任何一种支持JEDEC 标准的逻辑编程器完全兼容。

.lst文件:是源文件的再创建,添加了行标,并且在文件最后添加了编译过程中的错误信息。如果编辑不成功则依靠该文件的帮助进行修改。

.rep文件:详细阐述了本次PLD设计。设计者可通过该文件深入了解所进行的逻辑器件设计。

3.源文件仿真

PLD99的仿真器流程为:“编译成功的源文件及相关文件”→“创建所需仿真文件”→“仿真所设计的逻辑器件”→“检查仿真波形”。

首先是应创建仿真向量测试文件。在创建时,可在文本专家中将所设计的count8.pld文件另存为count8.si文件。同时在count8.si文件中删除除了头信息和注解外的所有信息。这样便方便地创建了测试文件:

仿真测试文件基本要包含三个主要部分:

(1) 头信息和注解

(2) ORDER陈述

(3) 向量称述

ORDER陈述中,使用ORDER关键词列出了仿真表中所使用的向量。并定义它们的显示方式。其格式为关键词后加冒号,变量间用逗号隔开,同时以分号终止该列,例如:ORDER:inputA , inputB , output ;

只有那些在仿真中需要用到的变量才需列出。定义时,可在列间加入空格,使用%和一个10进制数:

下一步为向量陈述。每个向量必须在一行内,没有分号作为休止符。根据经验我们还发现其输出值不能为空。

使用$msg描述所测试该器件的功能。

现在我们创建第一个向量,可以如下输入:

$msg" -INPUT- -OUTPUT-";

$msg" CONTROL INSTR DDDDDDDD CARRY QQQQQQQQ";

$msg" CLK !OC I1 I0 76543210 !CI !CO 76543210";

$msg" -----------------------------------------------------------------";

C 0 1 0 00000001 X H LLLLLLLH

如上,我们将剩余的向量全部输入,如图:

该真值向量表反映了该器件的逻辑功能:

OC为始能信号,低电平有效;INSTR是将2号与11号引脚并为一组向量,当为00时,清零;01时,保持;10时,置数;11时,记数;CO为输出进位信号,低电平有效。

创建完测试仿真文件以后,就可以进行逻辑器件的仿真。

选择.pld文件后,点击PLD菜单下Simulate按钮,开始仿真,成功后将得到提示窗口:

这时PLD99生成.wo和.so文件。打开.so文件,则波形以图形方式打开,如图:

仿真结果和我们欲实现的逻辑功能相符,这样,我们就完成一个可编程器件的逻辑仿真。

五、结论

本文只要研究了运用Protel 99 SE对模拟电路和数字电路包括可编程逻辑电路进行模拟仿真。从仿真波形的结果以及与CircuitMaker的对比来看,Protel 99 SE同样能够实现客观准确的仿真效果。这样,对于设计者来说,只需通过一个软件即可完成从原理图的绘制、电路的仿真到PCB绘制,而无须借助专门的仿真软件来对电路的功能进行仿真验证,为设计者提供了便利。

但在仿真中还是遇到了我们尚未解决或无法有效论证的问题,例如:

1.不同静态工作点的分析相对烦琐。

2.元器件本身的一些局限性。在数字电路仿真中往往要通过频繁地修改原理图来实现电路的不同逻辑功能。

3.对于PLD电路,我们尚无法将器件拖至原理图中用以搭建外围电路仿真,系统提示出错。

4.对于CUPL语言,现只能以与非等基本的逻辑关系来实现器件功能,是否能实现条件判断(if语句)和算术运算等高级编程语言所能实现的功能还有待论证。

本次实验旨在令读者更好地了解和学习Protel 99 SE的仿真功能,使今后利用Protel 99 SE平台进行开发设计电路的工作者更充分和简便地运用Protel 99 SE。

六、感谢

提供研究方向和指导性意见的导师:陆亨立老师

提供相关资料帮助的导师:吴颐玲老师

七、参考文献

梁恩主,梁恩维. Protel 99 SE电路设计与仿真应用. 清华大学出版社

清源计算机工作室. Protel 99仿真与PLD设计. 清华大学出版社

文档

基于Protel 99 SE的电路仿真研究

基于Protel99SE的电路仿真研究赵培栋袁承宗杨辉031243100312430803124337摘要:本文通过电路辅助设计工具Protel99SE主要实现对运算放大器模拟电路以及数字计数器电路和PLD的仿真。在仿真过程中,我们将通过和专门的模拟仿真软件CircuitMaker对相同电路的仿真结果进行比较和分析,来更好地了解Protel99SE仿真功能,并研究及探讨其自身的相关特点,更多地挖掘Protel99SE的“潜力”,使Protel99SE得到更为广泛的应用。关键词:Protel99
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top