matlab系统仿真(1)剖析

上传人:今*** 文档编号:106021137 上传时间:2019-10-14 格式:DOC 页数:13 大小:127.83KB
返回 下载 相关 举报
matlab系统仿真(1)剖析_第1页
第1页 / 共13页
matlab系统仿真(1)剖析_第2页
第2页 / 共13页
matlab系统仿真(1)剖析_第3页
第3页 / 共13页
matlab系统仿真(1)剖析_第4页
第4页 / 共13页
matlab系统仿真(1)剖析_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《matlab系统仿真(1)剖析》由会员分享,可在线阅读,更多相关《matlab系统仿真(1)剖析(13页珍藏版)》请在金锄头文库上搜索。

1、河南城建学院MATLAB仿真技术课程论文MATLAB仿真技术课程论文 题 目 移位寄存器电路设计与仿真 姓 名 班 级 0934131 学 号 指导教师 2016年5月23日河南城建学院MATLAB仿真技术课程论文目录摘要.11 Matlab简介.12移位寄存器的设计12.1 D触发器功能介绍22.2移位寄存器仿真23双向移位寄存器的设计43.1带清零端的RS触发器设计53.2 四位双向移位寄存器子系统的设计和封装53.3双向移位寄存器仿真74设计心得95参考文献.10摘要MATLAB具有强大的图形处理功能、符号运算功能和数值计算功能。MATLAB工具几乎涵盖了整个科学技术运算领域。其中系统的

2、仿真(Simulink)工具箱是从底层开发的一个完整的仿真环境和图形界面。在这个环境中,用户可以完成面向框图系统仿真的全部过程,并且更加直观和准确地达到仿真的目标。此次,以数字电路中的时序逻辑电路为线索来学习Simulink,了解了许多数字电路中常用模块的使用方法.时序电路中除具有逻辑运算功能的组合电路外,还必须有能够记忆电路状态的存储单元或延迟单元,这些存储或延迟单元主要由本次设计所用到的触发器来实现。D触发器、RS触发器、JK触发器等这些时序逻辑电路中常用的器件在Simulink中都有相应的仿真模块,除此之外,用户还可以自行设计封装模块来一步一步完成更大的电路系统,实现更强大的逻辑功能。

3、关键词:MATLAB、Simulink、时序电路1 Matlab内容简介MATLAB拥有了更丰富的数据类型和结构,更好的面向对象的快速精美的图形界面,更多的数学和数据分析资源,MATLAB工具几乎涵盖了整个科学技术运算领域。在大部分大学里,应用代数、数理统计、自动控制、数字信号处理、模拟与数字通信、时间序列分析、动态系统仿真等课程的教材都把MATLAB作为必不可少的内容。在国际学术界,MATLAB被确认为最准确可靠的科学计算标准软件,在许多国际一流的学术刊物上都可以看到MATLAB在各个领域里的应用。2移位寄存器的设计所谓移位寄存器,就是只能接收一个输入源的寄存器,它将这个输入依次通过寄存器堆

4、进行缓存,就像是数据在沿寄存器平移一样。在移位寄存器中,前一个触发器的输出端接到下一个触发器的输入端,由第一个触发器的输入端接收输入信号,每个触发器都采用同一个时钟源。那么信号每经过一个触发器,就被缓存一次。由于在实际中,信号通过每个触发器是需要一定时间的,所以当时钟源的第一次上升沿到来时,信号就被第一个触发器读入并送到输出端,但第二个触发器并不能将这个信号读入,因为等这个信号到达第一个触发器的输出端时,时钟的上升沿已经过去了。只有等到下一个上升沿到来的时候,第二个触发器才能读入这个信号,同时第一个触发器从输入端又读入了一个新信号。这样,每个信号都在每个触发器的输出端保持一个时钟周期,而且每个

5、触发器的输出端信号依次延时一个周期,就像信号在进行移位一样。值得注意的是,在simulink中仿真时,由于这些模块都是理想的,所以信号通过任何一个模块都是没有所谓的“延时”的。而设计移位寄存器的关键就是利用了触发器的延时特性,所以在这里不能按照逻辑电路直接设计这个寄存器。必须在两级触发器之间插入一个延时单元,人为地实现触发器的延时功能。2.1 D触发器功能介绍!CLRCLKDQ0*01上升沿001上升沿11表2 D触发器真值表其逻辑表达式为 通过以上介绍可知,D触发器的输入输出是完全一样的,但它并不是简单的传输门,要注意到D触发器只有在输入时钟源的上升沿时才将输入端读到输出端,在其他时间里,输

6、出值一直保持不变。D触发器有3个输入端,2个输出端。它的真值表如表所示。2.2移位寄存器仿真第一步:添加模块这个电路用到了6种模块,它们分别是:D触发器(D Flop Flops);时钟源(Clock);单位延时单元(Unit Delay);常数源(Constant);离散脉冲源(Discrete Pulse Generator);示波器(Scope)。第二步:设置模块参数延时单元的延迟时间都设为0.1秒;脉冲源的参数设置如下:幅度为1,周期为3,脉宽为1,相位延迟为0,采样时间为0.3。然后将这个脉冲源命名为INPUT。常数源的值设置为1。最后将示波器的输入端设置为6个。第三步:连线及仿真将

7、各模块摆放整齐,按图4连线。将仿真时间设为20秒,单击工具栏上的“运行”图标,开始仿真。然后双击示波器观察输出波形,如图4所示。图3 4位移位寄存器仿真电路图图4 移位寄存器输出波形由以上输出波形可看出,只有在时钟信号的上升沿到来时,各个触发器的输出端才会发生变化。而且四个触发器的输出依次延时一个周期,这和前面的分析是吻合的。3双向移位寄存器的设计以基本RS触发器为基础,一步步实现一个比较大的系统四位双向移位寄存器Dmreg。最后实现的系统顶层图如图5所示。集成电路Dmreg就是一个寄存器芯片,它能够提供串行寄存器和移位寄存器两种功能。其内部使用的是边沿触发的RS触发器从上图可知,Dmreg有

8、10个输入端口,4个输出端口。在10个输入端口中,3个是控制信号(),一个是时钟信号(),还有2个串行输入端口(),4个并行输入端口()。其中3个控制信号对Dmreg工作状态的控制如下表所示。表3 Dmreg工作状态表RdS1S0工作状态0*清零100保持101右移110左移111并行输入图5 双向移位寄存器顶层图3.1带清零端的RS触发器设计Simulink提供的RS触发器是电平触发的,而且没有置位端和复位端。而Dmreg中需要的是下降沿触发,带有置位端和复位端的触发器。所以首先要对基本的RS触发器进行改造,以加强其功能。最后得到的下降沿触发的带置位复位端的RS触发器如图6所示。图6 带置位

9、端的下降沿触发的RS触发器首先启动Simulink,然后将一个子系统模块(Subsystem)添加到一个新建模块中。接着双击打开这一个子系统,将基本RS触发器添加到其中。然后加入两个逻辑运算模块,将其修改为二输入的与门。如图6所示,Rd和Rs就是添加的复位端和置位端。为了将触发器变成边沿触发的,需要引入新模块Trigger。其功能是向子系统中添加触发端,在这里将其设为下降沿触发。以上就完成了对基本RS触发器的改进。3.2 四位双向移位寄存器子系统的设计和封装第一步:Dmreg电路设计前面将这个模型的基本单元下降沿触发的RS触发器做好了。下面用它来构造四位双向移位寄存器(Dmreg)子系统。最后

10、实现的Dmreg的内部电路如图7所示。图7 Dmreg内部电路从图7中可以看出,在控制逻辑部分使用了大量的逻辑运算模块,实际上这4个触发器使用的逻辑电路是一模一样的。下面就以第一个RSFF0为例来分析。触发器正下方有一个4输入的或门,这个或门提供了触发器的置位信号,送到了S端。然后将这个或门的输出经过非门反向后送到了R端,这是为了保证R、S不能同时为1,满足RS触发器的工作条件。然后这个或门有四个输入端,分别来自4个3输入的与门。其实在同一时刻仅有一个信号能够送到或门,这是由于控制端S0、S1组成了一个数据选择器,每次只让一个与门导通。这四个与门从左到右分别代表了右移信号、并行传送信号、保持信

11、号以及左移信号,它们的导通取决于控制端S2、S0的信号。触发器的输出端首先通过一个延时器,然后分别送往三个地方,第一个地方是自己下方的4与门阵列的第三个,形成保持信号;第二个地方是右边的4与门阵列的第一个,用来提供右移信号;第三个地方是左边4与门阵列的第四个,用来提供左移信号。在完成连线后,把整个电路圈起来,单击“Edit”菜单下的“Creat Subsystem”命令,生成一个子系统,并命名为Dmreg。第二步:封装子系统要封装上面刚刚建立好的Dmreg模块,先选中子系统,然后在编辑菜单下选择封装子系统(Mask Subsystem)命令,这时将会出现一个对话框:Mask Editor,将对

12、话框中的参数设置好模块就封装好了。3.3双向移位寄存器仿真在完成了Dmreg模块的封装后,再来设置一下外围电路。首先要4个并行输入以及两个串行输入提供6个脉冲源(Pulse Generator),参数设置如表4所示。然后要为时钟触发端CLK提供一个时钟源(Clock)。接着还需要一个5输入的示波器(Scope),显示4个输出信号和时钟波形。表4 Dmreg的脉冲源参数设置D0D1D2D3LeftINRightIN幅度111111周期345253脉宽131131相位延迟000000抽样时间0.30.20.60.60.150.4最后为3个控制端设置输入。由于S1、S0的四种输入确定了Dmreg的功

13、能,所以这里引入“手动开关”模块(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串行左移输出波形4设计心得通过此次课程设计,学会了使用simulink实现时序逻辑电路的仿真。不仅了解了MATLAB的强大的仿真功能,而且复习巩固了之前学的数字电子电路技术的知识。在时序逻辑电路仿真的过程中,频繁地使用到了Simulink

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号