基于matlab的数字逻辑电路仿真_第1页
基于matlab的数字逻辑电路仿真_第2页
基于matlab的数字逻辑电路仿真_第3页
基于matlab的数字逻辑电路仿真_第4页
基于matlab的数字逻辑电路仿真_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

1、XXX毕业设计(论文)专 业: 题 目: 作 者 姓 名: 导师及职称: 导师所在单位: 2011年 6 月 15 日XXX本科毕业设计(论文)任务书 2011 届 学院 专业学生姓名: 毕业设计(论文)题目中文:基于Matlab的数字逻辑电路仿真英文:Digital Logic Circuit Simulation Based on Matlab 原始资料1 董霖.MATLAB使用详解基础、开发及工程应用M.北京:电子工业出版社,2009.12 阎石.数字电子技术基础M.北京:高等教育出版社,1998.123 钟麟,王丰.MATLAB仿真技术与应用教程M北京:国防工业出版社,2004.1 毕

2、业设计(论文)任务内容1、课题研究的意义用MATLAB/Simulink来设计数字逻辑电路给设计者开辟了一种全新的设计方法的可能性,使用Simulink模块进行以代替传统的原理图进行数字逻辑电路的分析可以使初学者能更形象直观地看到电路运行时的波形变化,可以大大提高学习效率。故利用MATLAB仿真软件在日常的数字电路的研究学习中有着越来越重要的作用。2、本课题研究的主要内容:利用Simulink模块实现时序逻辑电路和组合逻辑电路的设计和仿真,组合逻辑电路仿真包括译码器、数据选择器、加法器的仿真,时序逻辑电路仿真包括寄存器、计数器的仿真,最后将得到的仿真电路的波形与理论上的逻辑功能进行对比,从而更

3、好地学习并理解其数字逻辑电路的基本原理。3、提交的成果:(1)毕业设计(论文)正文;(2)基本逻辑电路的Simulink仿真模型图及波形图;(3)至少一篇引用的外文文献及其译文;(4)附不少于10篇主要参考文献的题录及摘要。指导教师(签字)教研室主任(签字)批 准 日 期 2011年 1月 5日接受任务书日期 2011年 1月 9日完 成 日 期 2011年 6月15日接受任务书学生(签字)基于Matlab的数字逻辑电路仿真摘 要数字逻辑电路是电子类专业重要的基础课,用MATLAB/Simulink来设计数字逻辑电路给设计者开辟了一种全新的设计方法的可能性。使用Simulink模块进行设计、调

4、试、和仿真,以代替传统的原理图进行数字逻辑电路的分析。使初学者能更形象直观地看到电路运行时的波形变化,可以大大提高学习效率。论文回顾了一些基本数字逻辑电路的原理,分析了这些电路的逻辑功能,学习了使用MATLAB/Simulink仿真数字逻辑电路的方法。而后再利用Simulink模块实现了数字逻辑电路功能的仿真,最后将得到的仿真电路的波形与理论上的逻辑功能进行对比,从而更好地学习并理解其基本原理。仿真结果表明,利用Matlab进行数字电路的设计、调试,结果直观、省时省力。它不仅能用来仿真本论文中提到的电路,而且能广泛地应用于其它数字电路的仿真,是数字电路设计、调试的有效工具。关键词:数字逻辑电路

5、;仿真;触发器;寄存器;计数器Digital Logic Circuit Simulation Based on MatlabAbstractDigital logic circuit is an important basic course of electronic specialties.Using MATLAB/Simulink to design Digital logic circuit gives designers the probability of a new kind of design method. The analysis of Digital logic circ

6、uit using Simulink model instead of traditional principle table can make the new learners see the waveform changes more figuratively and directly, thus improve their study efficiency. This thesis reviews some basic principles of Digital logic circuit, analyses their logic functions, and learn how to

7、 simulate Digital logic circuit using MATLAB/Simulink. Then this thesis realizes the simulation of various digital logic circuit using Simulink model, and compares the experimental waveform of simulation circuits to actual theoretic logic functions, thus makes learners learn and understand their bas

8、ic principles well.The simulation results indicate that designing and testing digital circuit with Matlab make the results visual, time saving and effort-saving. It can be used not only to simulate the circuit what mentioned in this paper, but also widely used in other digital circuit simulation. Ma

9、tlab is an effective tool for debugging and designing digital circuit.Key words:digital logic circuit;simulation;flip-flop;register;counter目 录引 言1绪论2第1章 MATLAB的基本知识31.1 MATLAB/SIMULINK及其仿真简介31.1.1 Simulink简介31.1.2 Simulink窗口环境41.2 数字逻辑电路仿真优点4第2章 组合逻辑电路仿真62.1 译码器的仿真62.2 数据选择器仿真112.3 加法器仿真13第3章 时序逻辑电路

10、仿真163.1 基本触发器介绍163.2 寄存器仿真193.2.1 并行寄存器仿真193.2.2 移位寄存器仿真203.3 计数器的仿真223.3.1 同步计数器仿真223.3.2 异步计数器的仿真243.3.3 移位型计数器仿真26结论与展望29致 谢30参考文献31附录A 引用的外文文献及其译文32附录B 主要参考文献题录及摘要40插图清单图1-1 Simulink Library Brower窗口4图2-1 3线8线二进制译码器Simulink模型7图2-2 3线8线二进制译码器输入波形图8图2-3 3线8线二进制译码器输出波形图8图2-4 具有使能端的3线8线译码器Simulink模型

11、图9图2-5 3线8线译码器子系统的外观图9图2-6 3线8线译码器子系统内部结构图10图2-7 4线16线译码器的Simulink仿真模型11图2-8 4路数据选择器Simulink模型图12图2-9 4路数据选择器功能演示图13图2-10 自建全加器模块外观图14图2-11 自建全加器模块内部结构14图2-12 4位全加器Simulink模型图15图3-1 RS触发器模块外观及内部电路16图3-2 JK触发器模块外观及内部电路17图3-3 JK触发器模块内主要模块电路18图3-4 D Flip-Flop模块的外观及内部电路18图3-5 二位并行寄存器Simulink模型图19图3-6 二位

12、并行寄存器波形图20图3-7 右移寄存器逻辑图21图3-8 4位右移移位寄存器Simulink模型21图3-9 4位右移移位寄存器波形图22图3-10 8421BCD码十进制同步加法计数器的子系统23图3-11 加法计数器Simulink模型24图3-12 8421BCD码十进制异步计数器25图3-13 8421BCD码十进制异步计数器个JK触发器Q端输出波形26图3-14 扭环计数器子系统内部电路27图3-15 自启动扭环计数器模块参数设置对话框28图3-16 扭环计数器Simulink模型28图3-17 扭环计数器Simulink模型输出波形28表格清单表2-1 3线8线二进制译码器真值表

13、6表2-2 Pulse Generator模块参数设置7表2-3 Pulse Generator模块参数设置10表2-4 Pulse Generator模块参数设置12表2-5 半加器真值表13表2-6 全加器真值表13表3-1 RS触发器模块的真值表17表3-2 JK触发器模块的真值表18表3-3 二位并行寄存器输入信号模块参数设置20表3-4 8421BCD码十进制同步加法计数器Dialog parameters参数23表3-5 Dialog parameters参数设置27引 言数字电路是计算机类、电子信息类等本科专业的一门实践性较强的专业基础课,学好该课程对后续专业课程的学习至关重要。

14、而运用计算机仿真软件是一种新的途径,不需要实验设备及元器件,它可以用计算机软件来建模仿真,验证一个数字电路的正确性和有效性,也可以通过仿真来模拟数字电路中逻辑关系的工作过程,并能动态地显示结果。Matlab是美国The MathWorks公司开发的著名软件,是Matrix Laboratory(矩阵实验室)的缩写,它在数学类科技应用软件中在数值计算方面首屈一指。Matlab可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。是一种高效的工程计算语言,它将概念设计、算法开发

15、、建模仿真、实时实现于一体1。Simulink是Matlab一个重要的分支产品,它是一个结合了框图界面和交互仿真能力的系统设计和仿真工具。Simulink模型采用方框图绘制来代替程序的编写,使系统编写具有可视化的功能,同时可以借助模拟示波器等虚拟设备直观显示仿真动态结果。Simulink已成为动态系统建模、仿真方面应用最广泛的软件包之一9。绪论数字电路现在被广泛应用于电子信息工程的各个领域,数字化已成为当今技术发展的一个趋势3。Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计

16、。同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。Simulink为数字电路仿真提供了基本的逻辑运算模块和多种触发器模块。本论文将根据数字逻辑电路的分类,及组合逻辑电路和时序逻辑电路两大类,分别对如何实现数字逻辑电路仿真进行相应的介绍。从电路结构来看,时序逻辑电路中需要将某一时刻的电路状态进行存储,利用触发器组成寄存器和计数器。在时序逻辑电路的仿真的过程中,将使用到 Simulink中的触发器模块。分析时序逻辑电路我们用到的工具有:状态方程、驱动方程、输出方程、状态表、状态转移图等。组合逻辑电路是相对于时序逻辑电路而言的,组合逻辑电路在结构上由各种逻辑门构成,它不包含记忆功

17、能器件,其特点是,在任何给定时间的输出值仅与该时刻电路的输入值有关,而与过去的输入状态无关。组合逻辑电路的设计的一般步骤是:明确问题;列出真值表;写出逻辑表达式;化简逻辑表达式;给出逻辑电路图;对电路做出评价。第1章 MATLAB的基本知识1.1 MATLAB/SIMULINK及其仿真简介Matlab是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括Matlab和Simulink两大部分。Matlab的应用范围非常广,包括信号和图像处理、通讯、控制系统设

18、计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用Matlab函数集)扩展了Matlab环境,以解决这些应用领域内特定类型的问题。Matlab是当今最优秀的科技应用软件之一,它以强大的科学计算与可视化功能、简单易用、开放式可扩展环境,特别是所附带的30多种面向不同领域的工具箱支持,使得它在许多科学领域中成为计算机辅助设计和分析、算法研究和应用开发的基本工具和首选平台。Matlab具有其他高级语言难以比拟的一些优点,编写简单,编程效率高,易学易懂,因此Matlab语言也被通俗地称为演算纸式的科学算法语言。在控制、通信、信号处理及科学计算等领域中,Matlab

19、都被广泛地应用,已经被认可为能够有效提高工作效率、改善设计手段的工具软件。Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。 Simulink简介Simulink是一个集建模、仿真和分析动态系统为一体的软件,是一种基于Matlab

20、的图形设计环境。支持连续、离散以及两者混合的线性和非线性系统,同时它也支持具有不同部分拥有不同采样频率的多种采样速率的仿真系统。在其下提供了丰富的仿真模块。其主要功能是实现动态系统建模、仿真与分析,可以预先对系统进行仿真分析,按仿真的最佳效果来调整控制系统的参数。通过Simulink,用户可以轻松地完成对应问题的仿真,并实时地观察可能出现的结果。Simulink是一种图形化仿真软件, 是基于MATLAB语言环境下实现动态系统建模、仿真的一个集成环境, 其中存储了大量系统模型。调用模块库中的各个模块, 进行有关信号连接, 就可完成所需模型的仿真。Simulink的组成很有层次性, 它的下面有很多

21、子库, 如连续子库、非连续子库、离散子库、数学函数子库、信号源子库、信号输出子库及附加模块库等, 各个子库下面含有该类型的众多模块, 复制这些模块到模型窗口中就可实现各种仿真。可按照其有关性质在相应的子库中寻找所需模块。Simulink为数字电路提供了各种基本元件。常用的输入信号有时钟(Clock)信号、阶跃(Step)信号、脉冲发生器(Pulse Generator)、信号发生器(Signal Generator)等, 这些输入源在实际使用中可进行适当设置。输出设备有示波器、数字显示器等, 这些输出设备很容易将仿真结果可视化。还有基本的数字逻辑如与或非、各种触发器等。Simulink还允许自

22、建模块, 这就增加了Simulink的可扩充性10。 Simulink窗口环境启动Simulink时可以在工具栏点击;同样也可以在Matlab命令窗口中输入Simulink,结果是在桌面上出现一个称为Simulink Library Browser的窗口,在这个窗口中列出了按功能分类的各种模块的名称;同样也可以通过单击Matlab主窗口菜单选择FileNewModel,弹出一个Untitled的Simulink模型窗口,再选择View Show Library Browser,弹出Simulink Library Brower模块库窗口。图1-1所示为Simulink Library Brow

23、er窗口,从这个窗口中可以看到Simulink所提供的模块库及具体模块。图1-1 Simulink Library Brower窗口Simulink模块库浏览器主要用于浏览及选择模块,那么模型的搭建、仿真在哪里完成呢?MATLAB为此提供了一个专用的Simulink模型编辑窗口。执行模块库浏览器的菜单栏“File”/“New”/“Model”命令,或单击工具栏上的“”图标,或者采用快捷键【Ctrl+N】都可以打开新建模型编辑窗口。使用Simulink进行仿真一般分为两步:首先需要在仿真模型编辑窗口中搭建好自己的仿真模型,设置好具体模型参数和仿真参数;然后,就可以开始仿真,Simulink将根据

24、用户搭建的模型,模拟系统在设定环境下的具体行为3。1.2 数字逻辑电路仿真优点Simulink是挂接在Matlab环境上,以Matlab的强大计算功能为基础,以直观的模块框图进行仿真和计算的仿真工具Simulink模型采用框图绘制来代替程序的编写,使系统程序的编写具有可视化的功能,同时可借助示波器等虚拟设备直观显示仿真结果。Simulink已成为广泛使用的动态系统建模、仿真和分析的软件包之一。Simulink的仿真电路简洁,电路参数调整方便,仿真的结果直观。然而Simulink作为一种应用广泛的仿真软件,并不是专门对数字电路进行仿真的,这就需要在实际应用中,对Simulink的原有模块进行合理

25、的改进,从而可以更好地进行实际的数字电路仿真。数字电路的验证和调试是一件繁琐的工作,既费时费力又需要一些昂贵的仪器,如能较好地采用MATLAB附带的仿真工具Simulink进行数字电路设计、调试、仿真、验证,既可以使教师讲解更生动,也可使学生形象直观地看到电路仿真过程和运行结果,更容易被学生理解,而且能省时、省力,大大提高教学质量11。用MATLAB/Simulink来设计数字逻辑电路给设计者开辟了一种全新的设计方法的可能性,使用Simulink模块进行以代替传统的原理图进行数字逻辑电路的分析可以使初学者能更形象直观地看到电路运行时的波形变化,可以大大提高学习效率。故利用MATLAB仿真软件在

26、日常的数字电路的研究学习中有着越来越重要的作用。第2章 组合逻辑电路仿真 数字逻辑电路可分为两大类:一类是组合逻辑电路;另一类是时序逻辑电路。在这要做的数字逻辑电路仿真就是利用了Simulink模块库中为数字电路仿真提供了基本的逻辑运算模块和多种触发器模块进行仿真。 组合逻辑电路在结构上由各种逻辑门构成,它不包含记忆功能器件。在逻辑功能上的特点是,在任何给定时刻的输出值仅与该时刻电路的输入值有关,而与过去的输入状态无关。在电路结构上基本上有逻辑门电路组成;只有从输入到输出的通路,没有从输出到输入的回路。目前,常用的组合逻辑电路有半加法器、全加器、比较器、编码器、译码器、数据选择器、数据分配器、

27、奇偶校验器等。本章将按照上述器件的分类,对他们的Matlab/Simulink仿真方法进行介绍3。2.1 译码器的仿真译码是编码的逆过程,它是将被编成的0、1序列(某种代码)还原成原来的对象。完成译码功能的逻辑电路,称为译码器。它有n个输入端,m个输出端,输入与输出端应满足:通常输入信号X0,X1,Xn-1是以二进制码形式出现,输出信号中只有一个(Zi=1)译出,其中i为与二进制码相对应的输出。1、3线8线二进制译码器的仿真模型1)功能分析3线8线二进制译码器的真值表如表2-1所示。表2-1 3线8线二进制译码器真值表X2X1X0Z0Z1Z2Z3Z4Z5Z6Z70001000000000101

28、000000010001000000110001000010000001000101000001001100000001011100000001它的功能是对输入的三位二进制代码进行译码, 输出8 位信号。根据真值表2-1,写出3线8线二进制译码器的逻辑表达式如下:2)模型搭建新建一个模型,根据逻辑表达式,选用如下模块:Pulse Generator模块,Logical Operator模块以及Scope模块。Pulse Generator(脉冲序列发生器)模块Pulse Generator(脉冲序列发生器)模块,位于Simulink节点下的Source库中,用于产生所需要的原始脉冲序列。双击该

29、模块,对其进行相应的参数调整。要应用的3个Pulse Generator模块分别命名为X0、X1、X2的脉冲序列信号发生器,它们的参数设置如表2-2所示。表2-2 Pulse Generator模块参数设置模块名称Pulse typeAmplitudePeriodPulse widthPhase delaySample timeX0Sample based12111X1Sample based12112X2Sample based12114Logical Operator(逻辑操作)模块 Logical Operator(逻辑操作)模块,位于Simulink节点下的Math Operation

30、s模块库中,用于实现逻辑表达式的运算。该模型共需要11个Logical Operator模块,其中8个作为AND模块,3个作为NOT模块。Scope(示波器)模块Scope(示波器)模块,位于Simulink节点下的Sinks模块库中。双击Scope模块,将得到示波器输出界面,单击其工具栏中的“参数设置”图标,打开“示波器参数设置”对话框,即可对示波器进行参数设置。该模型需要2个Scope模块用于输入信号和输出信号的显示。模块参数设置完毕后,用信号线将各个模块连接。即可得到最后的仿真模型,如图2-1所示。图2-1 3线8线二进制译码器Simulink模型在菜单栏中执行“Simulation”/

31、“Configuration Parameters”命令,在打开的Simulink运行参数设置对话框中将“Solver”选项卡中的“Stop time”设置为10,同时,保存该文件,运行该仿真模型后,单击Scope1模块,即可以看到其译码输入信号波形如图2-2所示,每个坐标轴的输出图形分别对应X2、X1、X0的输出波形。图2-2 3线8线二进制译码器输入波形图从图2-2可以看出,第1s的波形对应000的输入状态,第2s对应001的输入状态依此类推,第8s对应111的输入状态,再循环。在图2-1所示的仿真模型中单击Scope模块,即可以看到其译码器输出信号波形图如图2-3所示,每个坐标轴的输出图

32、形分别对应了Z0至Z7的输出波形。图2-3 3线8线二进制译码器输出波形图由图2-2及图2-3可以总结出,在输出波形中,第1s时X2至X0及Z0至Z7的状态分别对应3线8线二进制译码器真值表的第1行数值,第2s对应第2行数值依此类推,可以看出该模型完全实现了3线8线二进制译码器的功能仿真。接下来,将介绍4线16线译码器的仿真方法,4线16线译码器的仿真是建立在3线8线二进制译码器基础之上的,在此将会涉及Simulink子系统的相关概念,将3线8线译码器的模型作为子系统来搭建4线16线译码器。2、4线16线译码器的仿真模型1)创建具有使能端的3线8线译码器的Simulink模型如图2-4所示。从

33、该Simulink模型框图中可以看到,具有使能端的3线8线译码器只是在系统中加入了S1、S2、S3 3个控制信号源,其作用是控制3线8线译码器何时有效。图2-4 具有使能端的3线8线译码器Simulink模型图2)3线8线译码器子系统的建立参照图2-4所示的虚线框,用鼠标选定它所圈定的范围。在菜单栏中执行“Edit”/“Create Subsystem”命令,或按下快捷键【Ctrl+G】,即可创建一个Simulink子系统。将其输入端口分别更名为A0、A1、A2及S1、S2、S3,输出端口更名为Q0、Q1、Q7,最后得到3线8线译码器子系统的外观如图2-5所示,内部结构如图2-6所示。图2-5

34、 3线8线译码器子系统的外观图图2-6 3线8线译码器子系统内部结构图3)封装3线8线译码器子系统在创建3线8线译码器子系统的文件中,将创建的3线8线译码器子系统选中后,在菜单栏中执行“Edit”/“Mask Subsystem”命令,或者按下快捷键【Ctrl+M】,打开“封装子系统参数设置”对话框,封装此子系统。在此模型中不需要调整任何参数,直接单击“OK”键,即可将3线8线译码器子系统封装完毕。4)自建用户模块库在Simulink模型编辑窗口中,在菜单栏中执行“File”/“New”/“Library”命令,这样将新建一个模块库窗口。将先前封装好的3线8线译码器子系统拷贝到该库文件中,然后

35、执行“File”/“Save As”命令,将该库文件命名为mydesign.mdl,保存在Matlab默认的工作路径下。到此含有3线8线译码器模块库文件建立完毕。在Matlab的启动界面的Command Window窗口中键入命令mydesign即可打开刚建立的含有3线8线译码器模块的库文件。5)4线16线译码器的搭建对4位二进制代码进行译码,可以选择任意一个使能端作为第4个译码输入端。现在选用S1作为第4输入端来搭建4线16线译码器。首先新建一个模型文件。在Matlab的启动界面的Command Window窗口中键入命令mydesign,打开上面所建的mydesign模块库。将打开的myd

36、esign模块库中的3线8线译码器复制两个到新建的模型文件中。此外,还需要新增以下模块。4个Pulse Generator模块。将4个模块分别命名为X0、X1、X2、X3,它们的参数设置情况如表2-3所示。表2-3 Pulse Generator模块参数设置模块名称Pulse typeAmplitudePeriodPulse widthPhase delaySample timeX0Sample based12111.25X1Sample based12112.5X2Sample based12115X3Sample based121110一个Constant模块,该模块位于Simulink节

37、点下的Source库中,其作用是输出连续信号。该模型中,根据需要将Constant value参数设置为0,该Constant模块将在仿真过程中产生一个持续时间的幅度为0的信号。3个Scope模块,将其中2个模块的Number of axes参数均设置为8,Time range 参数设置为21,另一Scope模块的Number of axes参数均设置为4,Time range 参数设置为21。2个Logical Operator模块,在此利用它们来实现NOT功能。参数设定之后,用信号线连接相应的模块,将得到如图2-7所示的Simulink仿真模型。图2-7 4线16线译码器的Simulink

38、仿真模型仿真模型搭建完毕后,在“Simulation”/“Configuration Parameters”内调整仿真时间为0-21s,保存该模型后运行,单击Scope2模块可以看到4线16线译码器输入信号图形;单击Scope和Scope1模块可以得到相应的输出图形,分别显示了输出端Q0-Q15的波形,其中第Qn个波形为:在第n+1个单位时间(即在1.25*ns-1.25*(n+1)s的时间段内)内有一个单位脉冲。2.2 数据选择器仿真数据选择器又叫多路选择器或多路开关,它有m个输入端X0,X1Xn-1,一个输出端D,n个地址端An-1,An-2,A1,A0。为使各输出端均对应有唯一的地址,则

39、输入端的个数m与地址端的位数应满足如下关系: 数据选择器在地址码An-1,An-2,A1,A0的控制下,从多个输入中选择一个输入信号,将其送到输出端。4路数据选择器,用以实现选择4个不同频率信号中的任一信号在示波器中的输出。1)模型分析选择器的逻辑关系十分清晰固定,4路数据选择器的逻辑表达式如下:其中,D代表输出端,A1,A0代表数据选择控制端,X0,X1,X2,X3代表原始输入信号端。2)模型搭建根据4路数据选择器的逻辑表达式,建立该仿真模型需要用到Logical Operator、Pulse Generator和Scope等模块,其中Pulse Generator模块的参数设置如表2-4所

40、示,搭建的Simulink仿真模型如图2-8所示。表2-4 Pulse Generator模块参数设置模块名称Pulse typeAmplitudePeriodPulse widthPhase delaySample timeD0Sample based12100.5D1Sample based15100.5D2Sample based12100.25D3Sample based13100.5A1Sample based121110A2Sample based12115SSample based1404201运行该模块后,单击Scope模块可以看到如图2-9所示波形图。可以看出,在输出波形的不

41、同时段,4路数据选择器将根据A0、A1选择信号的不同,分别选择D0、D1、D2、D3信号作为输出波形。图2-8 4路数据选择器Simulink模型图图2-9 4路数据选择器功能演示图2.3 加法器仿真在2个二进制数进行算术运算时,无论进行的是加、减、乘、除中的何种运算,最后都将化作若干步相加运算进行。因此,加法器是算术运算器的基本单元。而半加器又是数字系统进行加、减、乘、除算术运算的重要电路。半加器的真值表如表2-5所示。表2-5 半加器真值表ABSC0000011010101101在表2-5中A是被加数,B是加数,S是半加器的和,C是半加器的进位位。因此得到半加器的逻辑表达式为:当要进行带进

42、位的二进制运算时,就必须考虑其进位,因此就要用到全加器。所谓全加器,就是带进位输入和带进位输出的加法器。全加器的真值表如表2-6所示。表2-6 全加器真值表ABCSD0000000110010100110111010111011100111111表中A是被加数,B是加数,C是来自低位全加器的进位,S是该全加器的和,D是该全加器的进位。由此得到全加器的逻辑表达式为:利用全加器实现4位二进制运算1)建立全加器模块库根据全加器的逻辑表达式,选用Logical Operator 模块建立全加器模块库,并将其命名为ADD后保存。所建全加器模块的外观如图2-10所示,所建全加器的内部系统结构如图2-11所

43、示。图2-10 自建全加器模块外观图 图2-11 自建全加器模块内部结构图2)搭建4位全加器Simulink模型首先新建一个Simulink模型文件。根据需要,需要选用Constant模块,Display模块、Mux模块以及自建的ADD(全加器)模块。Constant模块,该四位全加器的Simulink仿真模型共需要9个Constant模块,其中被命名为A3-A0的4个Constant模块代表4位被加数A,在此假设被加数为0101,分别将A3-A0的Constant value参数设置为0、1、0、1;被命名为B3-B0的4个Constant模块代表4位加数B,在此假设加数为0111,分别将B

44、3-B0的Constant value参数设置为0、1、1、1;最后一个未命名的Constant模块作为末位进位输入,将其Constant value参数设置为0。Mux模块,Mux模块位于Simulink节点下的Signal Routing模块库中,它主要是将最后结果集合后送到Display模块显示。在此需要显示的数字有:和的四位数字的值,以及和的首位进位的值,共需显示5位数字,因此Mux模块的Number of inputs参数值因设置为5。模块参数设置好后,用信号线将所有模块连接起来,将得到如图2-12所示的4位全加器Simulink模型。图2-12 4位全加器Simulink模型图从图

45、2-12可以看出,A0、A1、A2的进位都分别与比其高一位的进位C连接,从而实现4位全加器的进位。保存并运行后,即可得到Display模块显示的A=0101与B=0111相加的结果,为了便于观看结果,在图中加入了对每位输出的注释。另外,在运行该模型后,由于Display模块的大小限制,也许只能在Display模块中看到一位输出数值,此时将Display模块拉大到一定程度后即可看到所有输出数据。输出结果的显示由Scope模块改为Display模块,是数字电路仿真中结果输出的另一种方法,可以根据需要选择结果的显示方法。第3章 时序逻辑电路仿真时序逻辑电路与组合逻辑电路最大的区别在于,研究时刻的输出

46、不仅取决于研究时刻的输入,而且还依赖于研究时刻以前的输入。因此,从电路结构来看,时序电路一定要包含存储器件,它的作用就是用来“记忆”研究时刻以前的输入情况。存储器可以是触发器、延时线、磁芯、磁盘等3。在本章中主要对时序电路进行仿真,可以更好的理解和学习时序电路。3.1 基本触发器介绍 把能够存储一位二值信息的单元电路称为触发器(Flip-Flop,简称FF)。它是在门电路的基础上引入适当的反馈构成的。触发器是时序逻辑电路的基本单元电路,是具有记忆功能的逻辑器件,可保存一位二值量。触发器它有2个稳定输出状态,一个是高电位,另一个是低电位。在没有外界触发信号时,它一直保持2个状态中的任一状态。触发

47、器与逻辑门比较,触发器的显著特点是有反馈电路,因此它的输出不仅取决于研究时刻的输入,而且还依赖于研究时刻以前的输入。在Matlab的Simulink中有专门的触发器模块,它们都位于Simulink Extras节点下的Flip Flops模块库中。接下来,对该类模块做分类介绍。1. S-R Flip-Flop(RS触发器)模块基本RS触发器有两种能自行保持的稳定状态,分别表示二进制数0和1或二值信息逻辑0和逻辑1;在适当的触发信号作用下,触发器可从一种稳定状态转变为另一种稳定状态;当触发信号消失后,能保持现有的状态不变。RS触发器位置是:Simulink ExtrasFlip FlopsS-R

48、 Flip-Flop。右键单击该模块,在弹出的选择对话框中选择Look under mask项,即可打开其内部电路界面,S-R Flip-Flop(RS触发器)模块的外观及内部电路如图3-1所示。图3-1 RS触发器模块外观及内部电路RS触发器的真值表如表3-1。由真值表可以得出RS触发器实现的逻辑功能表达式如下: (SR=1 约束条件)双击RS触发器模块,可以打开它的参数调整对话框,其内部只有一个供用户调整的参数Initial condition(state of Q),它用于调整Q端的初始状态,设置它其实就是设置内含的Memory模块最初存储的Q端的状态值。表3-1 RS触发器模块的真值表

49、SR00001001100100101101100101011011000111002. J-K Flip-Flop(JK触发器)模块右键单击该模块,在弹出的选择对话框中选择Look under mask项,即可打开其内部电路界面,J-K Flip-Flop模块的外观及内部电路如图3-2所示。图3-2 JK触发器模块外观及内部电路为了分析J-K Flip-Flop模块,再次双击JK触发器内部电路中名为J-K Flip-Flop的主模块,可以看到其内部电路结构,如图3-3所示。从图可以看出,JK触发器模块的内部电路结构与RS触发器模块十分相似,最大的不同是在空白处多添加了一个Trigger模块。

50、Trigger模块位于Simulink节点下的Ports&Subsystems模块库中,它专门用于对所在子系统所含功能的触发。从图3-3中可以看到在JK触发器中,Trigger模块的Trigger Type参数被设置成下降沿触发。Trigger模块的输入信号是从CLK端输入的,因此只有CLK在下降沿发生作用时,JK模块才会被激发。图3-3 JK触发器模块内主要模块电路JK Flip-Flop模块实现了如表3-2所示真值表的逻辑功能。表3-2 JK触发器模块的真值表JK0000100101010100111010010101011101011101根据真值表,可得出JK触发器逻辑表达式如下:双击

51、JK触发器模块,打开其参数设置对话框,它只有一Initial condition(state of Q)参数用于调整Q的初始状态,它也用于设定JK触发器内部Memory模块的初始存储值。3. D Flip-Flop(D触发器)模块右键单击该模块,在弹出的选择对话框中,选择Look under mask项,即可打开其内部电路界面,D Flip-Flop模块的外观及内部电路如图3-4所示。图3-4 D Flip-Flop模块的外观及内部电路D触发器是!CLR端的输入信号大于0,CLK端的输入信号在上升沿发生作用。并且根据其内部电路很容易看出,D触发器作用时实现的逻辑功能的表达式是:对于D触发器无需

52、调整其各项参数,只要正确搭建其仿真模型,D触发器即能正常工作。Simulink中包含的时序逻辑电路仿真的基本触发器模块已经介绍完毕。灵活应用它们可以搭建许多各式的时序逻辑电路。同时,还可以根据仿真的需要,扩充这些模块的功能,自己组建所需的时序逻辑电路模块。这里已经介绍了组合电路和触发器在这就可很好的进行时序逻辑电路仿真分析,常用的时序电路有:计数器、寄存器等。3.2 寄存器仿真寄存器用于寄存一组二值代码,它被广泛地用于各类数字系统和数字计算机中。本节将介绍并行寄存器和移位寄存器的仿真。 并行寄存器仿真一个基本RS触发器可以用于寄存1位二进制代码信息,而将n个基本RS触发器连接在一起,就可以构成一个n位二进制并行寄存器。所谓并行寄存器就是能够同时存储几个数据源的寄存器。在此以2位并行寄存器为例,介绍如何在Simulink中利用RS触发器模块搭建并行寄存器。并行寄存器由两大部分组成,触发器和控制电路。在此触发器选用两个S-R Flip-Flop模块,而控制电路主要由门电路组成。根据本章第一节对RS触发器模块的分析,当R、S端同时等于1时,S-R Flip-Flop模块处于无效状态,因此

温馨提示

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

最新文档

评论

0/150

提交评论