版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、XXXXXXXXX毕业设计(论文)专业:题目:作者姓名:导师及职称:导师所在单位:2011年6月15日本科毕业设计(论文)任务书2011届学院专业学生姓名:I毕业设计(论文)题目中文:基于Matlab的数字逻辑电路仿真英文:DigitalLogicCircuitSimulationBasedonMatlabII原始资料1董霖.MATLAB使用详解基础、开发及工程应用M.北京:电子工业出版社,2009.12阎石.数字电子技术基础M.北京:高等教育出版社,1998.123钟麟,王丰.MATLAB仿真技术与应用教程M北京:国防工业出版社,2004.1m毕业设计(论文)任务内容1、课题研究的意义用MA
2、TLAB/Simuliiik來设计数字逻辑电路给设计者开辟了一种全新的设计方法的可能性,使用Simuliiik模块进行以代替传统的原理图进行数字逻辑电路的分析可以使初学者能更形象直观地看到电路运行时的波形变化,可以大大提高学习效率。故利用MATLAB仿真软件在日常的数字电路的研究学习中有着越來越重要的作用。2、本课题研究的主要内容:利用Smiulnik模块实现时序逻辑电路和组合逻辑电路的设计和仿真,组合逻辑电路仿真包括译码器、数据选择器、加法器的仿真,时序逻辑电路仿真包括寄存器、计数器的仿真,最后将得到的仿真电路的波形与理论上的逻辑功能进行对比,从而更好地学习并理解其数字逻辑电路的基本原理。3
3、、提交的成果:(1)毕业设计(论文)正文;(2)基本逻辑电路的Simulmk仿真模型图及波形图;(3)至少一篇引用的外文文献及其译文;(4)附不少于10篇主要参考文献的题录及摘要。2011年1月5日2011年1月9日2011年6月15日指导教师(签字)教研室主任(签字)批准日期接受任务书日期完成日期接受任务书学生(签字)XXXX大学毕业设计(论文)XXXX大学毕业设计(论文) # I基于Matlab的数字逻辑电路仿真摘要数字逻辑电路是电子类专业重要的基础课,用MATLAB/Simulmk來设计数字逻辑电路给设计者开辟了一种全新的设计方法的可能性。使用Simuliiik模块进行设计、调试、和仿真
4、,以代替传统的原理图进行数字逻辑电路的分析。使初学者能更形象直观地看到电路运行时的波形变化,可以大大提高学习效率。论文回顾了一些基本数字逻辑电路的原理,分析了这些电路的逻辑功能,学习了使用MATLAB/Simulmk仿真数字逻辑电路的方法。而后再利用Simuluik模块实现了数字逻辑电路功能的仿真,最后将得到的仿真电路的波形与理论上的逻辑功能进行对比,从而更好地学习并理解其基本原理。仿真结果表明,利用Matlab进行数字电路的设计、调试,结果直观、省时省力。它不仅能用來仿真本论文中提到的电路,而且能广泛地应用于其它数字电路的仿真,是数字电路设计、调试的有效工具。关键词:数字逻辑电路;仿真;触发
5、器;寄存器;计数器XX:基于Matlab的数字逻辑电路仿貞XX:基于Matlab的数字逻辑电路仿貞iiiiDigitalLogicCircuitSimulationBasedonMatlabAbstractDigitallogiccircuitisanimportantbasiccourseofelectromcspecialties.UsmgMATLAB/SimuliiiktodesignDigitallogiccucuitgivesdesignerstheprobabilityofanewkuidofdesignmethod.TheanalysisofDigitallogiccucuitu
6、singSnnuliiikmodelinsteadoftraditionalprincipletablecanmakethenewlearnersseethewavefonnchangesmorefiguiativelyanddiiectlv,thusmipiovetheirstudyefficiency.ThisthesisreviewssomebasicpiinciplesofDigitallogiccucuit,analysesthen*logicfinictions,andlearnhowtosunulateDigitallogiccircuitusingMATLAB/Simuliii
7、kThentlusthesisrealizesthesimulationofvariousdigitallogiccircuitusingSnnuliiikmodeLandcomparestheexperimentalwaveformofsimulationcucuitstoactualtheoieticlogicfunctions,thusmakesleameislearnandunderstandtheirbasicpnncipleswell.ThesimulationresultsindicatethatdesigningandtestmgdigitalcucuitwithMatlabm
8、aketheresultsvisuaLtimesavingandeffon-saving.Itcanbeusednotonlytosunulatethecircuitwhatmentionedinthispaper,butalsowidelyusedinotherdigitalcircuitsunulation.Matlabisaneffectivetoolfordebugginganddesigningdigitalcircuit.Keywords:digitallogiccucuit;simulation;flip-flop;xegister;counterXXXX大学毕业设计(论文)XX
9、XX大学毕业设计(论文) # III引绪第2TOC o 1-5 h z HYPERLINK l bookmark38 1章MATLAB的基本知识3MATLAB/SIMULINK及其仿真简介3Simuluik简介3Simuluik口环境41.2数字逻辑电路仿真优点4第2章组合逻辑电路仿真2.2数据选择器仿真112.3加法器仿真13 HYPERLINK l bookmark42 第3章时序逻辑电路仿真163.1基本触发器介绍163.2寄存器仿真193.2.1并行寄存器仿真193.2.2移位寄存器仿真203.3计数器的仿真223.3.1同步计数器仿真223.3.2异步计数器的仿真243.3.3移位型
10、计数器仿真26 HYPERLINK l bookmark46 结论与展望29 HYPERLINK l bookmark48 致谢30 HYPERLINK l bookmark50 参考文献31 HYPERLINK l bookmark52 附录A引用的外文文献及其译文32 HYPERLINK l bookmark88 附录B主要参考文献题录及摘要40XX:基于Matlab的数字逻辑电路仿贞XX:基于Matlab的数字逻辑电路仿贞 IV #插图清单TOC o 1-5 h z图1-1SimulnikLibraryBlower窗口4图2-13线一8线二进制译码器Simulnik模型7图2-23线一8
11、线二进制译码器输入波形图8图2-33线一8线二进制译码器输出波形图8图2-4具有使能端的3线一8线译码器Simulnik模型图9图2-53线一8线译码器子系统的外观图9图2-63线一8线译码器子系统内部结构图10图2-74线一16线译码器的Simulnik仿真模型11图2-84路数据选择器Sunulnik模型图12图2-94路数据选择器功能演示图13图2-10自建全加器模块外观图14图2-11自建全加器模块内部结构14图2-124位全加器Sunulnik模型图15图3-1RS触发器模块外观及内部电路16图3-2JK触发器模块外观及内部电路17图3-3JK触发器模块内主要模块电路18图3-4DF
12、lip-Flop模块的外观及内部电路18图3-5二位并行畲存器Simulnik模型图19图3-6二位并行寄存器波形图20图3-7右移寄存器逻辑图21图3-84位右移移位寄存器Simuluik模型21图3-94位右移移位寄存器波形图22图3-108421BCD码十进制同步加法计数器的子系统23图3-11加法计数器Sunulnik模型24图3-128421BCD码十进制异步计数器25图3-138421BCD码十进制异步计数器个JK触发器Q端输出波形26图3-14扭环计数器子系统内部电路27图3-15自启动扭环计数器模块参数设置对话框28图3-16扭环计数器Simulnik模型28图3-17扭环计数
13、器Simulnik模型输出波形28XXXX大学毕业设计(论文)XXXX大学毕业设计(论文)vv671121313表格清单表213线一8线二进制译码器真值表表2-2PulseGenerator模块参数设置表2-3PulseGenerator模块参数设置表2-4PulseGenerator模块参数设置表2-5半加器真值表表2-6全加器真值表TOC o 1-5 h z表31RS触发器模块的真值表17表32JK触发器模块的真值表18表33二位并行寄存器输入信号模块参数设置20表3-48421BCD码十进制同步加法计数器Dialogparameteis参数23表35Dialogpaiameteis参数设
14、置27XXXX大学毕业设计(论文)XXXX大学毕业设计(论文)- #- -数字电路是计算机类、电子信息类等本科专业的一门实践性较强的专业基础课,学好该课程对后续专业课程的学习至关重要。而运用计算机仿真软件是一种新的途径,不需要实验设备及元器件,它可以用计算机软件來建模仿真,验证一个数字电路的正确性和有效性,也可以通过仿真來模拟数字电路中逻辑关系的工作过程,并能动态地显示结果。Matlab是美国TheMathWoiks公司开发的著名软件,是MatrixLaboiatoiy(矩阵实验室)的缩写,它在数学类科技应用软件中在数值计算方面首屈一指。Matlab可以进行矩阵运算、绘制函数和数据、实现算法、
15、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。是一种高效的工程计算语言,它将概念设计、算法开发、建模仿真、实时实现于一体。Simuliiik是Matlab个重要的分支产品,它是一个结合了框图界面和交互仿真能力的系统设计和仿真工具。SimulHik模型釆用方框图绘制來代替程序的编写,使系统编写具有可视化的功能,同时可以借助模拟示波器等虚拟设备直观显示仿真动态结果。Smiuliiik己成为动态系统建模、仿真方面应用最广泛的软件包之一阻XX:基于Matlab的数字逻辑电路仿贞XX:基于Matlab的数字逻辑电路仿贞
16、- - #-绪论数字电路现在被广泛应用于电子信息工程的各个领域,数字化己成为当今技术发展的一个趋势。Simuliiik具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simuliiik己被广泛应用于控制理论和数字信号处理的复杂仿真和设计。同时有大量的第三方软件和硬件可应用于或被要求应用于SunuliiikoSimuliiik为数字电路仿真提供了基本的逻辑运算模块和多种触发器模块。本论文将根据数字逻辑电路的分类,及组合逻辑电路和时序逻辑电路两大类,分别对如何实现数字逻辑电路仿真进行相应的介绍。从电路结构來看,时序逻辑电路中需要将某一时刻的电路状态进行存储,利用
17、触发器组成寄存器和计数器。在时序逻辑电路的仿真的过程中,将使用到Smiuliiik中的触发器模块。分析时序逻辑电路我们用到的工具有:状态方程、驱动方程、输出方程、状态表、状态转移图等。组合逻辑电路是相对于时序逻辑电路而言的,组合逻辑电路在结构上由各种逻辑门构成,它不包含记忆功能器件,其特点是,在任何给定时间的输出值仅与该时刻电路的输入值有关,而与过去的输入状态无关。组合逻辑电路的设计的一般步骤是:明确问题;列出真值表;写出逻辑表达式;化简逻辑表达式;给出逻辑电路图;对电路做出评价。XX:基于Matiab的数字逻辑电路仿貞XXXX大学毕业设计(论文)XXXX大学毕业设计(论文)- - - -第1
18、章MATLAB的基本知识MATLAB/SIMULINK及其仿真简介Matlab是矩阵实验室(MaWxLaboratory)的简称,是美国MathWoiks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括Matlab和Simuluik两大部分。Matlab的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用Matlab函数集)扩展了Matlab环境,以解决这些应用领域内特定类型的问题。Matlab是当今最优秀的科技应用软件之一,它以强大的科学计算
19、与可视化功能、简单易用、开放式可扩展环境,特别是所附带的30多种面向不同领域的工具箱支持,使得它在许多科学领域中成为计算机辅助设计和分析、算法研究和应用开发的基本工具和首选平台。Matlab具有其他高级语言难以比拟的一些优点,编写简单,编程效率高,易学易懂,因此Matlab语言也被通俗地称为演算纸式的科学算法语言。在控制、通信、信号处理及科学计算等领域中,Matlab都被广泛地应用,已经被认可为能够有效提高工作效率、改善设计手段的工具软件。Simuluik是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操
20、作,就可构造出复杂的系统。Sunuliiik具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Sunuliiik己被广泛应用于控制理论和数字信号处理的复杂仿真和设计。同时有大量的第三方软件和硬件可应用于或被要求应用于SimuluikoSimuluik简介Simuluik是一个集建模、仿真和分析动态系统为一体的软件,是一种基于Matlab的图形设计环境。支持连续、离散以及两者混合的线性和非线性系统,同时它也支持具有不同部分拥有不同釆样频率的多种釆样速率的仿真系统。在其下提供了丰富的仿真模块。其主要功能是实现动态系统建模、仿真与分析,可以预先对系统进行仿真分析,按
21、仿真的最佳效果來调整控制系统的参数。通过Simulmk,用户可以轻松地完成对应问题的仿真,并实时地观察可能出现的结果。Simuluik是一种图形化仿真软件,是基于MATLAB语言环境下实现动态系统建模、仿真的一个集成环境,其中存储了大量系统模型。调用模块库中的各个模块,进行有关信号连接,就可完成所需模型的仿真。Simuluik的组成很有层次性,它的下面有很多子库,如连续子库、非连续子库、离散子库、数学函数子库、信号源子库、信号输出子库及附加模块库等,各个子库下面含有该类型的众多模块,复制这些模块到模型窗口中就可实现各种仿真。可按照其有关性质在相应的子库中寻找所需模块。Simuluik为数字电路
22、提供了各种基本元件。常用的输入信号有时钟(Clock)信号、阶跃(Step)信号、脉冲发生器(PulseGenerator)、信号发生器(SignalGenerator)等,这些输入源在实际使用中可进行适当设置。输出设备有示波器、数字显示器等,这些输出设备很容易将仿真结果可视化。还有基本的数字逻辑如与或非、各种触发器等。Sunuliiik还允许自建模块,这就增加了Simuluik的可扩充性叫Simuluik窗口环境启动Simuluik时可以在工具栏点击R;同样也可以在Marlab命令窗口中输入Simuluik,结果是在桌面上出现一个称为SimuluikLibraivBrowser的窗口,在这个
23、窗口中列出了按功能分类的各种模块的名称;同样也可以通过单击Matlab主窗口菜单选择FileNewModel,弹出一个Untitled的Simuluik模型窗口,再选择View-ShowLibraiyBrowser,弹出SimuluikLibiaiyBlower模块库窗口。图1-1所示为SimuluikLibraiyBiowei窗口,从这个窗口中可以看到Smiuliiik所提供的模块库及具体模块。图SimuluikLibiaiyBrower窗IISimuluik模块库浏览器主要用于浏览及选择模块,那么模型的搭建、仿真在哪里完成呢?MATLAB为此提供了一个专用的Smiuliiik模型编辑窗口。
24、执行模块库浏览器的菜单栏“File”/“New”/“Model”命令,或单击工具栏上的“”图标,或者釆用快捷键Ctrl+N都可以打开新建模型编辑窗口。使用Smiuliiik进行仿真一般分为两步:首先需要在仿真模型编辑窗口中搭建好自己的仿真模型,设置好具体模型参数和仿真参数;然后,就可以开始仿真,Simuluik将根据用户搭建的模型,模拟系统在设定环境下的具体行为。1.2数字逻辑电路仿真优点Simuluik是挂接在Matlab环境上,以Matlab的强大计算功能为基础,以直观的模块框图进行仿真和计算的仿真工具Smiuliiik模型釆用框图绘制來代替程序的编写,使系统程序的编写具有可视化的功能,同
25、时可借助示波器等虚拟设备直观显示仿真结果。Smiuliiik己成为广泛使用的动态系统建模、仿真和分析的软件包之一。Simuliiik的仿真电路简洁,电路参数调整方便,仿真的结果直观。然而Smiuliiik作为一种应用广泛的仿真软件,并不是专门对数字电路进行仿真的,这就需要在实际应用中,对SimulHik的原有模块进行合理的改进,从而可以更好地进行实际的数字电路仿真。数字电路的验证和调试是一件繁琐的工作,既费时费力乂需要一些昂贵的仪器,如能较好地釆用MATLAB附带的仿真工具SimulHik进行数字电路设计、调试、仿真、验证,既可以使教师讲解更生动,也可使学生形象直观地看到电路仿真过程和运行结果
26、,更容易被学生理解,而且能省时、省力,大大提高教学质量】。用MATLAB/Simuliiik來设计数字逻辑电路给设计者开辟了一种全新的设计方法的可能性,使用Smiuliiik模块进行以代替传统的原理图进行数字逻辑电路的分析可以使初学者能更形象直观地看到电路运行时的波形变化,可以大大提高学习效率。故利用MATLAB仿真软件在日常的数字电路的研究学习中有着越來越重要的作用。第2章组合逻辑电路仿真数字逻辑电路可分为两大类:一类是组合逻辑电路;另一类是时序逻辑电路。在这要做的数字逻辑电路仿真就是利用了Smiulmk模块库中为数字电路仿真提供了基本的逻辑运算模块和多种触发器模块进行仿真。组合逻辑电路在结
27、构上由各种逻辑门构成,它不包含记忆功能器件。在逻辑功能上的特点是,在任何给定时刻的输出值仅与该时刻电路的输入值有关,而与过去的输入状态无关。在电路结构上基本上有逻辑门电路组成;只有从输入到输出的通路,没有从输出到输入的回路。目前,常用的组合逻辑电路有半加法器、全加器、比较器、编码器、译码器、数据选择器、数据分配器、奇偶校验器等。本章将按照上述器件的分类,对他们的Matlab/Smiulnik仿真方法进行介绍。2.1译码器的仿真译码是编码的逆过程,它是将被编成的0、1序列(某种代码)还原成原来的对象。完成译码功能的逻辑电路,称为译码器。它有n个输入端,m个输出端,输入与输出端应满足:nlog2m
28、通常输入信号XO,X1,-X11-1是以二进制码形式出现,输出信号中只有一个(Zi=l)译出,其中1为与二进制码相对应的输出。1、3线一8线二进制译码器的仿真模型1)功能分析3线一8线二进制译码器的真值表如表2-1所示。z0=x2x1x0表213线一8线二进制译码器真值表X2XIxozoZ1Z2Z3Z4Z5Z6Z70001000000000101000000010001000000110001000010000001000101000001001100000001011100000001它的功能是对输入的三位二进制代码进行译码,输出8位信号。根据真值表2,写出3线一8线二进制译码器的逻辑表达式
29、如下:Z厂xnx。Z5=X2XX。2)模型搭建新建一个模型,根据逻辑表达式,选用如下模块:PulseGeneiator模块,LogicalOperator模块以及Scope模块。PulseGeneratoi(脉冲序列发生器)模块PulseGenerator(脉冲序列发生器)模块,位于Simulnik节点下的Souice库中,用于产生所需要的原始脉冲序列。双击该模块,对其进行相应的参数调整。要应用的3个PulseGeneratoi-模块分别命名为X0、XI、X2的脉冲序列信号发生器,它们的参数设置如表2-2所示。表2-2PulseGenerator模块参数设置模块名称PulsetypeAmpli
30、tudePeriodPulsewidthPhasedelaySampletimeX0Samplebased12111XISamplebased12112X2Samplebased12114LogicalOpeiatoi(逻辑操作);模块LogicalOperator(逻辑操作)模块,位于Simuluik节点下的MathOperations模块库中,用于实现逻辑表达式的运算。该模型共需要11个LogicalOperator模块,其中8个作为AND模块,3个作为NOT模块。Scope(示波器)模块Scope(示波器)模块,位于Smiuliiik节点下的Sinks模块库中。双击Scope模块,将得到
31、示波器输出界面,单击其工具栏中的“参数设置”图标,打开“示波器参数设置”对话框,即可对示波器进行参数设置。该模型需要2个Scope模块用于输入信号和输出信号的显示。模块参数设置完毕后,用信号线将各个模块连接。即可得到最后的仿真模型,如图2-1所示。图2-13线一8线二进制译码器Simulnik模型XX:基于Matlab的数字逻辑电路仿貞XX:基于Matlab的数字逻辑电路仿貞在菜单栏中执tjSimulatioir7uConfigurationPaiameters命令,在打开的Snnuliiik运行参数设置对话框中将“Solve”选项卡中的“Stoptime”设置为10,同时,保存该文件,运行该
32、仿真模型后,单击Scopel模块,即可以看到其译码输入信号波形如图2-2所示,每个坐标轴的输出图形分别对应X2、XI、X0的输出波形。X2图2-23线一8线二进制译码器输入波形图从图2-2可以看出,第Is的波形对应000的输入状态,第2s对应001的输入状态依此类推,第8s对应111的输入状态,再循环。在图2-1所示的仿真模型中单击Scope模块,即可以看到其译码器输出信号波形图如图2-3所示,每个坐标轴的输出图形分别对应了Z0至Z7的输出波形。Z0-S-XXXX大学毕业设计(论文)XXXX大学毕业设计(论文) #- -由图2-2及图2-3可以总结出,在输出波形中,第Is时X2至X0及Z0至Z
33、7的状态分别对应3线一8线二进制译码器真值表的第1行数值,第2s对应第2行数值依此类推,可以看出该模型完全实现了3线一8线二进制译码器的功能仿真。接下來,将介绍4线一16线译码器的仿真方法,4线一16线译码器的仿真是建立在3线8线二进制译码器基础之上的,在此将会涉及Simulnik子系统的相关概念,将3线_8线译码器的模型作为子系统來搭建4线一16线译码器。2、4线一16线译码器的仿真模型1)创建具有使能端的3线一8线译码器的Smiulnik模型如图2-4所示。从该Smiulnik模型框图中可以看到,具有使能端的3线一8线译码器只是在系统中加入了SI、S2、S33个控制信号源,其作用是控制3线
34、一8线译码器何时有效。图2-4具有使能端的3线一8线译码器Smiulnik模型图2)3线一8线译码器子系统的建立参照图2-4所示的虚线框,用鼠标选定它所圈定的范围。在菜单栏中执行uEdif7uCreateSubsystem”命令,或按下快捷键【CtH+G】,即可创建一个Smiulnik子系统。将其输入端口分别更名为AO、Al、A2及SI、S2、S3,输出端口更需为QO、Q1、Q7,最后得到3线一8线译码器子系统的外观如图2-5所示,内部结构如图2-6所示。gOO8g9Q、COOa5CSCMLssrSZSrSrV图253线一8线译码器子系统的外观图XX:基于Matlab的数字逻辑电路仿贞XX:基
35、于Matlab的数字逻辑电路仿贞图2-63线一8线译码器子系统内部结构图3)封装3线一8线译码器子系统在创建3线一8线译码器子系统的文件中,将创建的3线一8线译码器子系统选中后,在菜单栏中执彳亍“Edit”/“MaskSubsystem”命令,或者按下快捷键【Cul+M,打开“封装子系统参数设置”对话框,封装此子系统。在此模型中不需要调整任何参数,直接单击“OK”键,即可将3线一8线译码器子系统封装完毕。4)自建用户模块库在Smiulnik模型编辑窗口中,在菜单栏中执行“File”/“New”/“Library,喻令,这样将新建一个模块库窗口。将先前封装好的3线一8线译码器子系统拷贝到该库文件
36、中,然后执行“File”/“SaveAs”命令,将该库文件命名为mvdesign.mdb保存在Matlab默认的工作路径下。到此含有3线一8线译码器模块库文件建立完毕。在Matlab的启动界面的CommandWmdow窗口中键入命令mvdesign即可打开刚建立的含有3线一8线译码器模块的库文件。5)4线一16线译码器的搭建对4位二进制代码进行译码,可以选择任意一个使能端作为第4个译码输入端。现在选用S1作为第4输入端來搭建4线一16线译码器。首先新建一个模型文件。在Matlab的启动界面的ConunandWmdow窗口中键入命令mvdesign,打开上面所建的mydesign模块库。将打开的
37、mydesign模块库中的3线一8线译码器复制两个到新建的模型文件中。此外,还需要新增以下模块。4个PulseGeneiatoi模块。将4个模块分别命名为X0、XI、X2、X3,它们的参数设置情况如表2-3所示。表2-3PulseGenerator模块参数设置模块名称PulsetypeAmplitudePeriodPulsewidthPhasedelavJSampletimeX0Samplebased12111.25XISamplebased12112.5X2Samplebased12115X3Samplebased121110XXXX大学毕业设计(论文)XXXX大学毕业设计(论文) #- -
38、一个Constant模块,该模块位于Simulnik节点下的Souice库中,其作用是输出连续信号。该模型中,根据需要将Constantvalue参数设置为0,该Constant模块将在仿真过程中产生一个持续时间的幅度为0的信号。3个Scope模块,将其中2个模块的Numberofaxes参数均设置为8,Timerange参数设置为21,另一Scope模块的Numberofaxes参数均设置为4,Timerange参数设置为21。2个LogicalOperator模块,在此利用它们来实现NOT功能。参数设定之后,用信号线连接相应的模块,将得到如图2-7所示的Smiuliiik仿真模型。图2-7
39、4线一16线译码器的Smiulmk仿真模型仿真模型搭建完毕后,在SunulatioiVVConfigurationPaiameteis”内调整仿真时间为0-21S,保存该模型后运行,单击Scope2模块可以看到4线一16线译码器输入信号图形;单击Scope和Scopel模块可以得到相应的输出图形,分别显示了输出端Q0-Q15的波形,其中第Qii个波形为:在第11十1个单位时间(即在1.25*ns-1.25*(n+l)s的时间段内)内有一个单位脉冲。2.2数据选择器仿真数据选择器乂叫多路选择器或多路开关,它有m个输入端X0,Xl-Xii-l,一个输出端D,n个地址端An-1,Aii-2,A1,A
40、O。为使各输出端均对应有唯一的地址,则输入端的个数m与地址端的位数应满足如下关系:2二加月=1喝2拆数据选择器在地址码An-1,Aii-2,A1,A0的控制下,从多个输入中选择一个输入信号,将其送到输出端。4路数据选择器,用以实现选择4个不同频率信号中的任一信号在示波器中的输出。1)模型分析选择器的逻辑关系十分清晰固定,4路数据选择器的逻辑表达式如下:XX:基于Matiab的数字逻辑电路仿貞XX:基于Matiab的数字逻辑电路仿貞D=A1AqXq+4A)X+A1AqX+AAX其中,D代表输出端,Al,A0代表数据选择控制端,XO,X1,X2,X3代表原始输入信号端。2)模型搭建根据4路数据选择
41、器的逻辑表达式,建立该仿真模型需要用到LogicalOpeiatoi.PulseGeneiator和Scope等模块,其中PulseGenerator模块的参数设置女口表2-4所示,播建的Sunuliiik仿真横型如图2-8所示。表2-4PulseGenerator模块参数设置模块名称PulsetypeAmplitudePeriodPulsewidthPhasedelaySampletimeDOSamplebased12100.5D1Samplebased15100.5D2Samplebased12100.25D3Samplebased13100.5AlSamplebased121110A2S
42、amplebased12115SSamplebased1404201运行该模块后,单击Scope模块可以看到如图29所示波形图。可以看出,在输出波形的不同时段,4路数据选择器将根据AO、A1选择信号的不同,分别选择DO、D1、D2、D3信号作为输出波形。图2-84路数据选择器SimulHik模型图XX:基于Matiab的数字逻辑电路仿貞XX:基于Matiab的数字逻辑电路仿貞XXXX大学毕业设计(论文) - #- -Output图2-94路数据选择器功能演示图2.3加法器仿真在2个二进制数进行算术运算时,无论进行的是加、减、乘、除中的何种运算,最后都将化作若干步相加运算进行。因此,加法器是算术
43、运算器的基本单元。而半加器乂是数字系统进行加、减、乘、除算术运算的重要电路。半加器的真值表如表25所示。表25半加器真值表ABSC0000011010101101在表25中A是被加数,B是加数,S是半加器的和,C是半加器的进位位。因此得到半加器的逻辑表达式为:S=ABC=AB当要进行带进位的二进制运算时,就必须考虑其进位,因此就要用到全加器。所谓全加器,就是带进位输入和带进位输出的加法器。全加器的真值表如表2-6所示。表26全加器真值表ABcsD0000000110010100110111010111011100111111表中A是被加数,B是加数,C是來自低位全加器的进位,S是该全加器的和,
44、D是该全加器的进位。由此得到全加器的逻辑表达式为:S=ACD=AB+BC+AC利用全加器实现4位二进制运算1)建立全加器模块库根据全加器的逻辑表达式,选用LogicalOpeiatoi模块建立全加器模块库,并将其命名为ADD后保存。所建全加器模块的外观如图2-10所示,所建全加器的内部系统结构如图2-11所示。ADD图2-10自建全加器模块外观图图2-11自建全加器模块内部结构图2)搭建4位全加器Sunulnik模型首先新建一个Simulnik模型文件。根据需要,需要选用Constant模块,Display模块、Mux模块以及自建的ADD(全加器)模块。Constant模块,该四位全加器的Si
45、mulnik仿真模型共需要9个Constant模块,其中被命名为A3-A0的4个Constant模块代表4位被加数A,在此假设被加数为0101,分别将A3-A0的Constantvalue参数设置为0、1、0、1;被命名为B3-B0的4个Constant模块代表4位加数B,在此假设加数为0111,分别将B3-B0的Constantvalue参数设置为0、1、1、1;最后一个未命名的Constant模块作为末位进位输入,将其Constantvalue参数设置为0。Mux模块,Mux模块位于Sunulnik节点下的SignalRouting模块库中,它主要是将最后结果集合后送到Display模块显
46、示。在此需要显示的数字有:和的四位数字的值,以及和的首位进位的值,共需显示5位数字,因此Mux模块的Numberofinputs参数值因设置为5o模块参数设置好后,用信号线将所有模块连接起来,将得到如图2-12所示的4位全加器Sunulnik模型。XXXX大学毕业设计(论文)XXXX大学毕业设计(论文)- #- 图2-124位全加器Sunulink模型图从图212可以看出,AO、Al、A2的进位都分别与比其高一位的进位C连接,从而实现4位全加器的进位。保存并运行后,即可得到Display模块显示的A=0101与B=0111相加的结果,为了便于观看结果,在图中加入了对每位输出的注释。另外,在运行
47、该模型后,由于Display模块的大小限制,也许只能在Display模块中看到一位输出数值,此时将Display模块拉大到一定程度后即可看到所有输出数据。输出结果的显示由Scope模块改为Display模块,是数字电路仿真中结果输出的另一种方法,可以根据需要选择结果的显示方法。XX:基于Matlab的数字逻辑电路仿贞XXXX大学毕业设计(论文)第3章时序逻辑电路仿真时序逻辑电路与组合逻辑电路最大的区别在于,研究时刻的输出不仅取决于研究时刻的输入,而且还依赖于研究时刻以前的输入。因此,从电路结构来看,时序电路一定要包含存储器件,它的作用就是用來“记忆”研究时刻以前的输入情况。存储器可以是触发器、
48、延时线、磁芯、磁盘等。在本章中主要对时序电路进行仿真,可以更好的理解和学习时序电路。3.1基本触发器介绍把能够存储一位二值信息的单元电路称为触发器(Flip-Flop,简称FF)。它是在门电路的基础上引入适当的反馈构成的。触发器是时序逻辑电路的基本单元电路,是具有记忆功能的逻辑器件,可保存一位二值量。触发器它有2个稳定输出状态,一个是高电位,另一个是低电位。在没有外界触发信号时,它一直保持2个状态中的任一状态。触发器与逻辑门比较,触发器的显著特点是有反馈电路,因此它的输出不仅取决于研究时刻的输入,而且还依赖于研究时刻以前的输入。在Matlab的Smiuliiik中有专门的触发器模块,它们都位于
49、SimuliiikExtras节点下的FlipFlops模块库中。接下來,对该类模块做分类介绍。l.S-RFlip-Flop(RS触发器)模块基本RS触发器有两种能自行保持的稳定状态,分别表示二进制数0和1或二值信息逻辑0和逻辑1;在适当的触发信号作用下,触发器可从一种稳定状态转变为另一种稳定状态;当触发信号消失后,能保持现有的状态不变。RS触发器位置是:SimuliiikExtrasFlipFlopsS-RFlip-Flopo右键单击该模块,在弹出的选择对话框中选择Lookundermask项,即可打开義内部电路界面,S-RFlip-Flop(RS触发器)模块的外观及内部电路如图3-1所示。
50、S0R!Q.1S-RFlip-FlopRS融发器梗块外观RS触发器模块內部电路图3RS触发器模块外观及内部电路RS触发器的真值表如表3-lo由真值表可以得出RS触发器实现的逻辑功能表达式如下:gn+1=S+RQn(SR=1约束条件)双击RS触发器模块,可以打开它的参数调整对话框,其内部只有一个供用户调整的参数Lutialcondition(stateofQ),它用于调整Q端的初始状态,设置它其实就是设置内含的Memoiy模块最初存储的Q端的状态值。表31RS触发器模块的真值表SR3鈔100001001100100101101100101011011000111002.J-KFlip-Flop(
51、JK触发器)模块右键单击该模块,在弹出的选择对话框中选择Lookundermask项,即可打开其内部电路界面,J-KFlip-Flop模块的外观及内部电路如图3-2所示。Flip-FlopFlip-FloplJG也发器内部电蹌图32JK触发器模块外观及内部电路为了分析J-KFlip-Flop模块,再次双击JK触发器内部电路中名为JKFlip-Flop的主模块,可以看到其内部电路结构,如图3-3所示。从图可以看出,JK触发器模块的内部电路结构与RS触发器模块十分相似,最大的不同是在空白处多添加了一个Tugger模块。Tugger模块位于Simuliiik节点下的Ports&Subsystems模
52、块库中,它专门用于对所在子系统所含功能的触发。从图3-3中可以看到在JK触发器中,Tnggei-模块的TriggerType参数被设置成下降沿触发。Tnggei模块的输入信号是从CLK端输入的,因此只有CLK在下降沿发生作用时,JK模块才会被激发。图33JK触发器模块内主要模块电路JKFlip-Flop模块实现了如表3-2所示真值表的逻辑功能。表32JK触发器模块的真值表JK严严0000100101010100111010010101011101011101根据真值表,可得出JK触发器逻辑表达式如下:Qg二JQJMQ双击JK触发器模块,打开其参数设置对话框,它只有一Initialconditi
53、on(stateofQ)参数用于调整Q的初始状态,它也用于设定JK触发器内部Memoiy模块的初始存储值。3.DFlip-Flop(D触发器)模块右键单击该模块,在弹出的选择对话框中,选择Lookundeimask项,即可打开其内部电路界面,DFlip-Flop模块的外观及内部电路如图34所示。D触发器模块外观|D触发器模块内部电路图3-4DFhp-Flop模块的外观及内部电路XX:基于Matiab的数字逻辑电路仿貝XX:基于Matiab的数字逻辑电路仿貝XXXX大学毕业设计(论文)- - #- D触发器是!CLR端的输入信号大于0,CLK端的输入信号在上升沿发生作用。并且根据其内部电路很容易
54、看出,D触发器作用时实现的逻辑功能的表达式是:对于D触发器无需调整其各项参数,只要正确搭建其仿真模型,D触发器即能正常工作。Simuliiik中包含的时序逻辑电路仿真的基本触发器模块已经介绍完毕。灵活应用它们可以搭建许多各式的时序逻辑电路。同时,还可以根据仿真的需要,扩充这些模块的功能,自己组建所需的时序逻辑电路模块。这里已经介绍了组合电路和触发器在这就可很好的进行时序逻辑电路仿真分析,常用的时序电路有:计数器、寄存器等。3.2寄存器仿真寄存器用于寄存一组二值代码,它被广泛地用于各类数字系统和数字计算机中。本节将介绍并行寄存器和移位寄存器的仿真。3.2.1并行寄存器仿真一个基本RS触发器可以用
55、于寄存1位二进制代码信息,而将n个基本RS触发器连接在一起,就可以构成一个n位二进制并行寄存器。所谓并行寄存器就是能够同时存储儿个数据源的寄存器。在此以2位并行寄存器为例,介绍如何在Simuliiik中利用RS触发器模块搭建并行寄存器。并行寄存器由两大部分组成,触发器和控制电路。在此触发器选用两个S-RFlip-Flop模块,而控制电路主要由门电路组成。根据本章第一节对RS触发器模块的分析,当R、S端同时等于1时,S-RFlip-Flop模块处于无效状态,因此必须利用控制电路对R、S端的输入信号进行控制,以防止无效状态的出现。此外,在输入电路中还必须添加时钟电路控制,以使寄存器发挥作用。根据这
56、些需要。所设计的二位并行寄存器模型如图3-5所示。图3-5二位并行寄存器Smmlmk模型图图3-5中两个输入信号源DO、D1为PulseGenerator模块,它们的参数设置如表3-3所示,其目的是为了产生两个不同的输入信号,从而对2位并行寄存器不同寄存位进行比较。Clock模块是时钟序列产生模块,在此将其Period参数设置为2。表33二位并行寄存器输入信号模块参数设置模块名称PulsetypeAmplitudePeriodPulsewidthPhasedelayJSampletimeD0Samplebased13101D1Samplebased13100.25保存该模型运行后,双击Scop
57、e模块,可以看到如图36的波形图。CLOCK图3-6二位并行寄存器波形图从图3-6可以看出,时钟信号在低电平时,触发器输出维持在时钟下跳前的值,对于DO、D1输入的变化没有任何反应;而当时钟信号在高电平时,输入信号全部送到了输出端。此外,对比两个输入信号DO、D1和两个输出信号QO、Q1可以看出,2个触发器完全独立工作,互不影响,这是并行寄存器的特点。3.2.2移位寄存器仿真移位寄存器就是指存入触发器中的信息可以移动一位和多位,它是由若干触发器链接而成。除第1级外,其他各级的控制输入皆为前级的输出,所有触发器共用一个时钟源。其中触发器的类型可以有多种选择。在此,选择Simuluik中的DFli
58、p-Flop(D触发器)模块來搭建移位寄存器。图3-7为4只D触发器构成的4级右移的移位寄存器的逻辑图。XX:基于Matlab的数字逻辑电路仿贞XX:基于Matlab的数字逻辑电路仿贞XXXX大学毕业设计(论文)- - #- 并辎出图37右移寄存器逻辑图行61根据右移移位寄存器的逻辑图搭建移位寄存器的Simuluik仿真模型。1)新建一个Simuluik模型文件。2)拷贝4个DFlip-Flop模块到新建模型文件中,分别命名为DI、D2、D3、D4。3)拷贝一个PulseGenerator模块到新建模型文件中,产生输入信号序列。将该模块命名为INPUT,参数设置为:Pulsetype设置为Sa
59、mplebased;Amplitude设置为1;Period设置为3;Pulse设置为1;Phasedelay设置为0;Sampletime设置为0.5。4)添加一个Constant模块,作为D触長器的使能信号,ConstantValue设置为1。5)添加一个Clock模块,作为D触发器模块CLK端的输入信号,即作为D触发器模块的时钟控制信号,将其Period参数设置为2。6)添加一个Scope模块,将其Numberofaxes参数设置为6。7)将各模块摆放整齐,参照图3-8连线,保存。单击Smiulnik菜单下的Parameteis命令,将仿真时间设为20秒,单击工具栏中的运行图标,开始仿真
60、。然后双击示波器观察波形,如图39所示。图3-84位右移移位寄存器Simuluik模型图3-94位右移移位寄存器波形图3.3计数器的仿真计数器是用來累计和寄存输入脉冲个数的时序逻辑部件,它是数字系统中用途最广泛的基本部件之一,它不仅可以计数,还可以对某个频率的时钟脉冲进行分频,以及构成时间分配器或时序发生器对数字系统进行定时、程序控制操作。计数器的种类繁多,若按计数器中触发器状态更新的先后次序分,可以分为同步计数器和异步计数器。在同步计数器中,当时钟脉冲输入时触发器的翻转是同时发生的。而在异步计数器中,触发器的翻转有先有后,不是同时发生的。在这对这一种计数器进行仿真。3.3.1同步计数器仿真本
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 感恩母爱主题小学主题班会课件
- 航空公司乘务员航空公司客舱服务绩效评定表
- 安全教育主题班会课件:筑牢安全防线守护健康成长
- 艺术小天地:欣赏身边的美小学主题班会课件
- 关于2026年销售团队绩效考核标准修改的回复函(4篇)范文
- 客服部2026年端午节值班安排通知函5篇范文
- DB5101-T 164-2023 成都市地下综合管廊设施设备分类编码规范
- 梦想启航在今日努力拼搏向未来小学主题班会课件
- 食品加工厂品控部门产品合格率与食品安全保障能力绩效评定表
- 供应商履约率考核通知函3篇
- 2026年安宁市教育体育系统急需紧缺人才引进(68人)考试备考试题及答案详解
- 2026中国民用航空适航审定中心招聘事业单位40人笔试参考试题
- (2026)继续教育公需课必修课考试题与参考答案(完整版)
- ICU火灾应急预案演练脚本
- (2023版)冠状动脉微血管疾病诊断和治疗中国专家共识培训课件
- 2026科特迪瓦建筑材料市场供需分析与产业链优化
- 重力势能课件2025-2026学年高一下学期物理人教版必修第二册
- 2026年新疆维吾尔自治区克拉玛依市重点学校初一新生入学分班考试试题及答案
- 市政设施维护考试题及答案
- 2024合肥轨道交通社会招聘笔试真题及答题模板+答案
- JJG 943-2011 总悬浮颗粒物采样器-(高清现行)
评论
0/150
提交评论