首页 基于MATLAB的时序逻辑电路设计与仿真

基于MATLAB的时序逻辑电路设计与仿真

举报
开通vip

基于MATLAB的时序逻辑电路设计与仿真基于MATLAB的时序逻辑电路设计与仿真 目录 摘要................................................................................................................................................... I Abstract ...........................................................................

基于MATLAB的时序逻辑电路设计与仿真
基于MATLAB的时序逻辑电路 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 与仿真 目录 摘要................................................................................................................................................... I Abstract ............................................................................................................................................ II 1 Matlab内容简介 ........................................................................................................................... 3 2并行寄存器的设计及仿真 ............................................................................................................ 3 2.1 RS触发器工作原理 ........................................................................................................... 4 2.1.1用基本RS触发器构造并行寄存器 ....................................................................... 4 2.2并行寄存器仿真 ................................................................................................................. 4 3移位寄存器的设计 ........................................................................................................................ 5 3.1D触发器功能介绍 .............................................................................................................. 6 3.2移位寄存器仿真 ................................................................................................................. 6 4双向移位寄存器的设计 ................................................................................................................ 8 4.1带清零端的RS触发器设计 .............................................................................................. 8 4.2 四位双向移位寄存器子系统的设计和封装 .................................................................... 9 4.3双向移位寄存器仿真 ....................................................................................................... 10 5扭环计数器的设计 ...................................................................................................................... 12 5.1扭环形计数器简介 ........................................................................................................... 12 5.2设计扭环计数器内部电路和封装 ................................................................................... 13 5.3顶层仿真电路的设计 ....................................................................................................... 13 6设计心得...................................................................................................................................... 15 7参考文献...................................................................................................................................... 16 本科生课程设计成绩评定表 ..................................................................... 错误~未定义书签。15 摘要 MATLAB具有强大的图形处理功能、符号运算功能和数值计算功能。MATLAB工具几乎涵盖了整个科学技术运算领域。其中系统的仿真(Simulink)工具箱是从底层开发的一个完整的仿真环境和图形界面。在这个环境中,用户可以完成面向框图系统仿真的全部过程,并且更加直观和准确地达到仿真的目标。此次,以数字电路中的时序逻辑电路为线索来学习Simulink,了解了许多数字电路中常用模块的使用 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 .时序电路中除具有逻辑运算功能的组合电路外,还必须有能够记忆电路状态的存储单元或延迟单元,这些存储或延迟单元主要由本次设计所用到的触发器来实现。D触发器、RS触发器、JK触发器等这些时序逻辑电路中常用的器件在Simulink中都有相应的仿真模块,除此之外,用户还可以自行设计封装模块来一步一步完成更大的电路系统,实现更强大的逻辑功能。 关键词:MATLAB、Simulink、时序电路 Abstract MATLAB has a powerful graphics processing capabilities, symbolic computing and numerical computing functions. MATLAB tools are covering almost the entire scientific and technical computing. One system simulation toolbox is from the bottom of the development of a complete simulation environment and the graphical interface. In this environment, the user can complete system simulation block diagram for the entire process and achieve a more intuitive and accurate simulation of goal. This time, with digital circuits in the sequential logic circuits for clues to learn Simulink, learned a lot in common digital circuit module is used. Sequential circuits, in addition to features with a logical combination of the circuit, but also must be able to remember the state of the circuit memory cell or delay unit, the storage or delay units primarily used in the design of this flip-flop to achieve. D flip-flops, RS flip-flop, JK flip-flop sequential logic circuits such as those commonly used in devices in Simulink, the simulation has a corresponding module, in addition, Users can also design their own package module step by step to complete a larger circuit system to achieve more powerful logic function. Keywords: MATLAB, Simulink, sequential circuits 1 Matlab内容简介 MATLAB拥有了更丰富的数据类型和结构,更好的面向对象的快速精美的图形界面,更多的数学和数据分析资源,MATLAB工具几乎涵盖了整个科学技术运算领域。在大部分大学里,应用代数、数理统计、自动控制、数字信号处理、模拟与数字通信、时间序列分析、动态系统仿真等课程的教材都把MATLAB作为必不可少的内容。在国际学术界,MATLAB被确认为最准确可靠的科学计算 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 软件,在许多国际一流的学术刊物上都可以看到MATLAB在各个领域里的应用。 2并行寄存器的设计及仿真 寄存器用于存储一组二进制代码,它被广泛地应用于各类数字系统和数字计算机。触发器是数字电路中基本的存储单元,每一个触发器可以存储一位二进制数,所以用N个触发器组成的寄存器可以存储一组N位的二进制数。为了控制数字信号的接收和清除,寄存器电路中必须还有相应的控制电路,与触发器配合使用。所以寄存器中都包含有触发器堆和控制电路这两个部分。控制电路都是由门电路构成的。本次设计使用的是基本的RS触发器设计一个2位并行寄存器。所谓并行寄存器,就是能够同时存储几个数据源数据的寄存器。最后得到的电路如图1所示。 图1 两位并行寄存器电路图 2.1 RS触发器工作原理 Simulink中提供了基本RS触发器的模块——S-R Flip-Flop。 RS触发器有两个输入信号,两个输出信号。其输入输出逻辑表达式如下: n+1nQ=S+RQ; SR=0; 其中第二个式子是约束条件,即要求RS触发器的两个输入至少一个为0,否则将会出现不确定的情况。由于两个输出互为相反数,所以不用给出!Q的逻辑表达式。通过这个逻辑表达式可以看到,在R=0、S=0时,Q(n+1)=Q(n),触发器可以保持输出端不变,称为触发器的保持状态;在R=1、S=0时,Q(n+1)=0,触发器处于复位状态;在R=0、S=1时,Q(n+1)=1,触发器处于置位状态。触发器的储存功能主要是通过保持状态来实现的。先通过适当设置RS的值,将触发器置位或复位,然后将RS全都清零,这样就可以让数值存储在触发器里了。 2.1.1用基本RS触发器构造并行寄存器 设计一个2位并行寄存器,所以需要两个RS触发器。这个寄存器需要在一个时钟源的激励下,先从输入端读入数据,并存储一段时间,然后在下一个周期将信号送出,同时读入新的信号。这就需要将时钟源信号作为输入信号的控制端,同时由于输入信号RS不能同时为1,所以最好将它们通过一个非门联系起来,使它们永远分别为高低电平。 2.2并行寄存器仿真 第一步:添加模块 在这个电路中用到了5个模块,它们分别是:RS触发器(R-S Flip Flop);时钟源(Clock);离散脉冲源(Pulse Generator);逻辑运算模块(Logic Operator);示波器(Scope);将它们全部拖入新建模型中。 第二步:设置模块参数 RS触发器的初始状态设为0; 时钟源周期设为2; 脉冲源参数设置如下表: D0 D1 幅度 1 1 周期 3 3 脉宽 1 1 延迟相位 0 0 抽样时间 1 0.25 表1 并行寄存器脉冲源参数设置 最后将示波器的输入端口改为5个,就完成了参数设置。 第三步:连线及仿真 按仿真电路图图1摆放好各模块并连线。仿真时间采用默认的10秒,单击工具栏上的“运行”图标,开始仿真。最后双击示波器观察输出波形,如图2所示。 图2 并行寄存器输出波形 从电路图1中可以分析出,在时钟源处于高电平时,两个输入信号可以通过触发器达到Q端,这时触发器相当于一个传输门;当时钟源处于低电平时,触发器的两个输入端都被置零,触发器进入保持状态。从波形图2看出,在时钟源位于低电平时,触发器输出维持它在时钟下跳前的值,对于D1D0输入的变化没有反应;而当时钟源位于高电平时,输入的信号全部送到了输出端。同时可以发现,这两个触发器是完全独立工作的,互不影响,这就是并行寄存器的特点,如果想设计多位的并行寄存器,只要添加相应个数的触发器即可。 3移位寄存器的设计 所谓移位寄存器,就是只能接收一个输入源的寄存器,它将这个输入依次通过寄存器堆进行缓存,就像是数据在沿寄存器平移一样。 在移位寄存器中,前一个触发器的输出端接到下一个触发器的输入端,由第一个触发器的输入端接收输入信号,每个触发器都采用同一个时钟源。那么信号每经过一个触发器,就被缓存一次。由于在实际中,信号通过每个触发器是需要一定时间的,所以当时钟源的第一次上升沿到来时,信号就被第一个触发器读入并送到输出端,但第二个触发器并不能将这个信号读入,因为等这个信号到达第一个触发器的输出端时,时钟的上升沿已经过去了。只有等到下一个上升沿到来的时候,第二个触发器才能读入这个信号,同时第一个触发器从输入端又读入了 一个新信号。这样,每个信号都在每个触发器的输出端保持一个时钟周期,而且每个触发器的输出端信号依次延时一个周期,就像信号在进行移位一样。 值得注意的是,在simulink中仿真时,由于这些模块都是理想的,所以信号通过任何一个模块都是没有所谓的“延时”的。而设计移位寄存器的关键就是利用了触发器的延时特性,所以在这里不能按照逻辑电路直接设计这个寄存器。必须在两级触发器之间插入一个延时单元,人为地实现触发器的延时功能。 3.1 D触发器功能介绍 D触发器有3个输入端,2个输出端。它的真值表如表所示。 !CLR CLK D Q 0 * * 0 1 上升沿 0 0 1 上升沿 1 1 表2 D触发器真值表 n,1Q,D其逻辑表达式为 通过以上介绍可知,D触发器的输入输出是完全一样的,但它并不是简单的传输门,要注意到D触发器只有在输入时钟源的上升沿时才将输入端读到输出端,在其他时间里,输出值一直保持不变。 3.2移位寄存器仿真 第一步:添加模块 (D Flop Flops);时钟源(Clock);这个电路用到了6种模块,它们分别是:D触发器 单位延时单元(Unit Delay);常数源(Constant);离散脉冲源(Discrete Pulse Generator);示波器(Scope)。 第二步:设置模块参数 延时单元的延迟时间都设为0.1秒; 脉冲源的参数设置如下:幅度为1,周期为3,脉宽为1,相位延迟为0,采样时间为0.3。然后将这个脉冲源命名为INPUT。 常数源的值设置为1。 最后将示波器的输入端设置为6个。 第三步:连线及仿真 将各模块摆放整齐,按图4连线。将仿真时间设为20秒,单击工具栏上的“运行”图标,开始仿真。然后双击示波器观察输出波形,如图4所示。 图3 4位移位寄存器仿真电路图 图4 移位寄存器输出波形 由以上输出波形可看出,只有在时钟信号的上升沿到来时,各个触发器的输出端才会发生变化。而且四个触发器的输出依次延时一个周期,这和前面的分析是吻合的。 4双向移位寄存器的设计 以基本RS触发器为基础,一步步实现一个比较大的系统——四位双向移位寄存器Dmreg。最后实现的系统顶层图如图5所示。集成电路Dmreg就是一个寄存器芯片,它能够提供串行寄存器和移位寄存器两种功能。其内部使用的是边沿触发的RS触发器从上图可知,Dmreg有10个输入端口,4个输出端口。 在10个输入端口中,3个是控制信号(),一个是时钟信号(),还有2个串行输入端口(),4个并行输入端口()。其中3个控制信号对Dmreg工作状态的控制如下表所示。 表3 Dmreg工作状态表 Rd S1 S0 工作状态 0 * * 清零 1 0 0 保持 1 0 1 右移 1 1 0 左移 1 1 1 并行输入 图5 双向移位寄存器顶层图 4.1带清零端的RS触发器设计 Simulink提供的RS触发器是电平触发的,而且没有置位端和复位端。而Dmreg中需要的是下降沿触发,带有置位端和复位端的触发器。所以首先要对基本的RS触发器进行改造,以加强其功能。最后得到的下降沿触发的带置位复位端 的RS触发器如图6所示。 图6 带置位端的下降沿触发的RS触发器 首先启动Simulink,然后将一个子系统模块(Subsystem)添加到一个新建模块中。接着双击打开这一个子系统,将基本RS触发器添加到其中。然后加入两个逻辑运算模块,将其修改为二输入的与门。如图6所示,Rd和Rs就是添加的复位端和置位端。为了将触发器变成边沿触发的,需要引入新模块Trigger。其功能是向子系统中添加触发端,在这里将其设为下降沿触发。以上就完成了对基本RS触发器的改进。 4.2 四位双向移位寄存器子系统的设计和封装 第一步:Dmreg电路设计 前面将这个模型的基本单元——下降沿触发的RS触发器做好了。下面用它来构造四位双向移位寄存器(Dmreg)子系统。最后实现的Dmreg的内部电路如图7所示。 图7 Dmreg内部电路 从图7中可以看出,在控制逻辑部分使用了大量的逻辑运算模块,实际上这4个触发器使用的逻辑电路是一模一样的。下面就以第一个RSFF0为例来分析。 触发器正下方有一个4输入的或门,这个或门提供了触发器的置位信号,送到了S端。然后将这个或门的输出经过非门反向后送到了R端,这是为了保证R、S不能同时为1,满足RS触发器的工作条件。然后这个或门有四个输入端,分别来自4个3输入的与门。其实在同一时刻仅有一个信号能够送到或门,这是由于控制端S0、S1组成了一个数据选择器,每次只让一个与门导通。这四个与门从左到右分别代表了右移信号、并行传送信号、保持信号以及左移信号,它们的导通取决于控制端S2、S0的信号。触发器的输出端首先通过一个延时器,然后分别送往三个地方,第一个地方是自己下方的4与门阵列的第三个,形成保持信号;第二个地方是右边的4与门阵列的第一个,用来提供右移信号;第三个地方是左边4与门阵列的第四个,用来提供左移信号。 在完成连线后,把整个电路圈起来,单击“Edit”菜单下的“Creat Subsystem”命令,生成一个子系统,并命名为Dmreg。 第二步:封装子系统 要封装上面刚刚建立好的Dmreg模块,先选中子系统,然后在编辑菜单下选择封装子系统(Mask Subsystem)命令,这时将会出现一个对话框:Mask Editor,将对话框中的参数设置好模块就封装好了。 4.3双向移位寄存器仿真 在完成了Dmreg模块的封装后,再来设置一下外围电路。首先要4个并行输入以及两个串行输入提供6个脉冲源(Pulse Generator),参数设置如表4所示。然后要为时钟触发端CLK提供一个时钟源(Clock)。接着还需要一个5输入的示波器(Scope),显示4个输出信号和时钟波形。 表4 Dmreg的脉冲源参数设置 D0 D1 D2 D3 LeftIN RightIN 幅度 1 1 1 1 1 1 周期 3 4 5 2 5 3 脉宽 1 3 1 1 3 1 相位延迟 0 0 0 0 0 0 抽样时间 0.3 0.2 0.6 0.6 0.15 0.4 最后为3个控制端设置输入。由于S1、S0的四种输入确定了Dmreg的功能,所以这里引入“手动开关”模块(Mannual Switch)。从图中可看到手动开关模块有两个输入,一个输出,每次双击这个模块,就会在两个输入之间切换,将不同的信号送到输出端。这样就可以通过双击开关来方便地控制信号S1、S0的值,从而改变Dmreg的工作状态。 至此已经完成所有的设置,将仿真时间修改为0到20秒,接着通过双击开关将S1、S0置成11,然后点击工具栏上的“运行”图标,开始仿真。可以看到并行输出的波形如图8所示。然后通过双击开关S1、S0置成01,观察数据右移的波形,如图9所示。然后通过双击开关S1、S0置成10,观察数据左移的波形,如图10所示。从这些波形图中可以看到,Dmreg的各种功能都得到了实现。 图8 Dmreg并行输出波形 图9 Dmreg串行右移输出波形 图10 Dmreg串行左移输出波形 5扭环计数器的设计 5.1扭环形计数器简介 扭环计数器是以移位寄存器为雏形,用尽量少的逻辑控制电路来构造计数器。这里用四个JK触发器来构造一个扭环计数器。值得注意的是,由于环形计数器的循环状态不是2的n次方,所以有可能出现在某一种初始值的情况下,计数器根本无法工作,这种情况称为环形计数器的自启动问题。为了使环形计数器能够自启动,需要添加逻辑控制电路。所以扭环计数器能够同时解决循环状态和自启动两个问题。 5.2设计扭环计数器内部电路和封装 扭环计数器的内部电路如图11所示。在这个电路中,用四个JK触发器构成了触发器堆,所有的JK触发器的时钟信号由同一个时钟源提供,所以应该是同步计数器。注意到所有的触发器的K输入端都等于J输入端取反,JK触发器的逻辑表达式如下: n+1nnQ=JQ+KQ 在K=~Q时,JK触发器的输出就是J输入端。而每一触发器的J输入端都是前级触发器的Q输出,只有第一级触发器例外,它的J输入端来自组合逻辑电路,表达式如下: J=QQQ,,1312 正是在这个组合逻辑的控制下,循环周期才达到了8,比普通环形计数器提高了一倍,而且可以自启动。 图11 扭环计数器内部电路 5.3顶层仿真电路的设计 第一步 添加模块 按照图12在顶层图中只需要加入2个模块:时钟源和示波器。这样所有的模块就添加齐全了。 第二步 模块参数设置 时钟源的周期默认为2,单击Simulink菜单下的“Parameters”命令,将仿真时间修改为0到30秒。 第三步:连线及仿真 按下面仿真电路图连线,完成后得到仿真波形图如图13。 图12 扭环计数器仿真电路 图13 扭环计数器的输出波形 计数器的初始状态Q0Q1Q2Q3为1010,不是计数器的状态,计数器不会立刻进入循环计数的阶段,这个循环周期是8。其状态图如下图14所示。 Q0Q1Q2Q31010 1101 1100 1110 1000 1111 0000 0111 0001 0011 图14 扭环计数器状态图 6设计心得 通过此次课程设计,学会了使用simulink实现时序逻辑电路的仿真。不仅了解了MATLAB的强大的仿真功能,而且复习巩固了之前学的数字电子电路技术的知识。 此次设计的系统都是数字系统中广泛应用的几种典型时序逻辑功能电路——寄存器、移位寄存器和计数器,它们和各种组合电路一起,可以构成逻辑功能及其复杂的数字系统。由于在时序逻辑电路中需要将某一时刻电路的状态进行储存,所以触发器是必不可少的。在时序逻辑电路仿真的过程中,频繁地使用到了Simulink中的触发器模块,位于模块库的Simulink Extra子模块库的flip flop组里面。通过时序逻辑电路的仿真,现在已经能够熟练地运用一些常用模块,如各种信号源、示波器、各种触发器、逻辑门、延时器。数字电路在MATLAB中仿真没有特别的技巧,只需要在模块库中找到所需要的器件,然后连电路观察仿真波形即可。其中有些需要注意的问题,例如,在simulink中仿真时,由于这些模块都是理想的,所以信号通过任何一个模块都是没有所谓的“延时”的。而设计移位寄存器的关键就是利用了触发器的延时特性,所以在这里不能按照逻辑电路直接设计这个寄存器。必须在两级触发器之间插入一个延时单元,人为地实现触发器的延时功能。 直接用库里的模块可以实现一些比较基本的数字电路,如果还需要构建比较大的数字系统可以通过封装子系统来一步步实现,就像前面设计的双向移位寄存器和扭环计数器。 7参考文献 [1]MATLAB及在电子信息课程中的应用,陈怀琛主编,电子工业出版社,2003.07(第二版) [2]MATLAB与通信仿真,王立宁等编,人民邮电出版社,2000.04 [3]精通MATLAB6.5版,张志涌编,北京航空航天大学出版社,2003.03(第一版) [4]高吉祥, 数字电子技术. 北京:电子工业出版社 [5]李玲远,范绿蓉,陈小宇. 电子技术基础实验. 北京:科学出版社
本文档为【基于MATLAB的时序逻辑电路设计与仿真】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_769254
暂无简介~
格式:doc
大小:312KB
软件:Word
页数:20
分类:互联网
上传时间:2017-09-18
浏览量:96