基于MATLAB的时序逻辑电路设计与仿真Word下载.docx
- 文档编号:16865565
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:32
- 大小:433.57KB
基于MATLAB的时序逻辑电路设计与仿真Word下载.docx
《基于MATLAB的时序逻辑电路设计与仿真Word下载.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的时序逻辑电路设计与仿真Word下载.docx(32页珍藏版)》请在冰豆网上搜索。
课程设计第6-9天
答辩第10天
指导教师签名:
年月日
系主任(或责任教师)签名:
摘要………………………………………………………………………………………………………………………………I
Abstract……………………………………………………………………………………………………………………………II
绪论…………………………………………………………………………………………………………1
1MATLAB简介……………………………………………………………………………………………2
1.1MATLAB程序设计…………………………………………………………………………………………2
1.2MATLAB的特点……………………………………………………………………………………2
1.3MATLAB程序设计……………………………………………………………………………………………2
1.4M文件…………………………………………………………………………………………………………2
1.5SIMULINK仿真设计………………………………………………………………………………………3
1.5.1创建和使用模型…………………………………………………………………………………3
1.5.2选择和定制模块……………………………………………………………………………………3
1.5.3建立和编辑模型…………………………………………………………………………………4
1.5.4配置子系统………………………………………………………………………………………4
1.5.5条件执行子系统…………………………………………………………………………………4
2时序逻辑电路设计…………………………………………………………………………………………5
2.1锁存器和触发器…………………………………………………………………………………………5
2.1.1双稳态…………………………………………………………………………………………5
2.1.2锁存器……………………………………………………………………………………5
2.1.3触发器……………………………………………………………………………………5
2.2时序逻辑电路设计……………………………………………………………………………………7
2.2.1移位寄存器……………………………………………………………………………………………7
2.2.2扭环计数器……………………………………………………………………………………………9
3基于MATLAB的组合逻辑电路设计…………………………………………………………………12
3.1以寄存器仿真波形…………………………………………………………………………………12
3.1.1并寄存器的设计…………………………………………………………………………………………12
3.1.2移位寄存器的设计………………………………………………………………………………………15
3.2以双向移位寄存器实现子系统的设计和封装仿真波形…………………………………………………17
3.3以扭环计数器为例仿真下列波形……………………………………………………………………………24
4收获、体会与建议…………………………………………………………………………………………26
5致谢……………………………………………………………………………………………………………27
6参考文献……………………………………………………………………………………………………28
摘要
MATLAB是当今最优秀的科技应用软件之一,具有强大的科学计算与可视化功能、简单易用、开放式可扩展环境。
本文介绍了时序逻辑电路的MATLAB设计和仿真,在这种电路中,任意时刻的输出信号不但取决于当时的输入信号,还取决于电路当时的状态,或者说,还与以前的输入有关。
具备这种逻辑功能特点的电路叫做时序逻辑电路。
时序逻辑电路中需要将某一时刻的电路状态进行存储,利用触发器组成寄存器和计数器。
在时序逻辑电路的仿真的过程中,将使用到SIMULINK中的触发器模块。
同时也介绍了仿真中的子系统的设计和封装,进一步介绍MATLAB强大的数字处理功能。
关键词:
触发器,寄存器,计数器,仿真,封装
Abstract
TodayisthemostoutstandingofMATLABsoftwaretechnologyapplication,strongscientificcomputingandvisualfunction,easy-to-use,openextensibleenvironment.ThepaperintroducesthehardwavecircuitdesignandsimulationofMATLAB,inthiscircuit,arbitrarymomentnotonlydependontheoutputsignalwasstilldependsontheinputsignal,andthenthestate,orcircuit,andtherelevantinputbefore.Havethiskindoflogicfunctioncharacteristicsofthecircuitiscalledthehardwavecircuit.Thehardwavecircuitinamomenttostore,thecircuitstateUSEStriggerscompositionregistersandcounter.Inthehardwavecircuitsimulationprocess,willusethetriggermoduletoSIMULINK.AlsointroducesthedesignandsimulationofMATLAB,furtherintroduceddigitalprocessingfunctionof.
Keywords:
flip-flop,register,counter,simulation,encapsulation
绪论
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
1MATLAB简介
1.1MATLAB
MATLAB是矩阵实验室(MatrixLaboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。
附加的工具箱(单独提供的专用MATLAB函数集)扩展了MATLAB环境,以解决这些应用领域内特定类型的问题。
1.2MATLAB的特点
MATLAB是当今最优秀的科技应用软件之一,它以强大的科学计算与可视化功能、简单易用、开放式可扩展环境,特别是所附带的30多种面向不同领域的工具箱支持,使得它在许多科学领域中成为计算机辅助设计和分析、算法研究和应用开发的基本工具和首选平台。
MATLAB具有其他高级语言难以比拟的一些优点,编写简单,编程效率高,易学易懂,因此MATLAB语言也被通俗地称为演算纸式的科学算法语言。
在控制、通信、信号处理及科学计算等领域中,MATLAB都被广泛地应用,已经被认可为能够有效提高工作效率、改善设计手段的工具软件,掌握了MATLAB就好比掌握了开启这些专业领域大门的钥匙。
1.3MATLAB的程序设计
(1)行命令方式
行命令方式是在命令窗中写程序,每个程序只能是一行,因为计算机每次只能对一行命令做出反应,就像计算器那样工作。
行命令方式适合于简单的语句编写。
(2)程序文本方式
程序文本方式也叫程序文件模式,它是把多行语句写成一个程序,保存在一个文件名下,让计算机来执行这个文件。
程序文本方式的语句编写和修改是在文本编辑器中进行,它适合于复杂的语句编写
1.4M文件
m文件的语法类似于c语言,但又有其自身特点。
它只是一个简单的ASCII码文本文件,执行程序时逐行解释运行程序,matlab是解释性的编程语言。
m文件有两类:
独立的m文件—称命令文件;
可调用m文件—称函数文件。
程序文本方式分成脚本文件和函数文件。
1.5SIMULINK仿真设计
Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。
在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。
Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。
同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。
1.5.1创建和使用模型
通过Simulink可使用大量的预定义模块快速地推导、建模和维护系统详细的模块图。
Simulink提供层次化建模、数据管理、定制子系统工具,无论工程师的系统有多复杂,都可以轻松完成简明精确的模型描述.
1.5.2选择和定制模块
Simulink包含广泛的用于对系统建模的模块库。
这些库包括:
▪a.连续和离散动态模块,如Integration和UnitDelay
▪b.算法模块,如Sum,Product,LookupTable
▪c.信号结构模块,如Mux,Switch,BusSelector
可定制这些内联的模块或直接在Simulink中创建新的模块然后将其放置到自己的库中.额外的模块库扩展了Simulink的特殊应用功能,如对航空航天、通讯、无线电频率、信号处理、视频和图像处理和其他领域的应用.
启动Simulink时可以在工具栏点击
;
同样也可以在MATLAB命令窗口中输入Simulink,结果是在桌面上出现一个称为SimulinkLibraryBrowser的窗口,在这个窗口中列出了按功能分类的各种模块的名称;
同样也可以通过单击MATLAB主窗口菜单选择FileNewModel,弹出一个Untitled的Simulink模型窗口,再选择ViewShowLibraryBrowser,弹出SimulinkLibraryBrower模块库窗口。
图1.1所示为SimulinkLibraryBrower窗口。
图1.1SimulinkLibraryBrower窗口
1.5.3建立和编辑模型
Simulink在使用时,从LibraryBrowser中拖放模块到图形编辑器、然后用线连接模块来建立模块之间的数学关系,从而完成模型的建立,同时可以通过使用图形编辑功能来对模型布局,如拷贝、粘贴、撤销、对齐、分布和改变尺寸等.
Simulinkuserinterface使得在屏幕上的所见所用都可以得到全面控制。
用户可以添加指令和子菜单到编辑器和文件菜单中,也可以对菜单、菜单项和对话框进行禁用和隐藏等控制.
1.5.4配置子系统
Simulink中的配置子系统可以在一个模型中将子系统与设计变量相关联,该功能通过共享部件设计方式简化了设计过程和管理,因为一个模型可以代表一类设计.
1.5.5条件执行子系统
条件执行子系统可以通过控制逻辑信号的使能或非使能来改变系统的动态行为。
在Simulink中用户可以根据特定的时间或事件来创建控制信号,使得子系统以使能或触发的模式来执行.同时,Simulink中提供了逻辑模块,可用于对简单的控制指令来建模,从而控制使能或触发子系统。
2时序逻辑电路设计
时序逻辑电路在任一时刻的输出信号不仅与当时的输入信号有关,并且与原来状态有关。
也就是说,时序电路中具有逻辑运算功能的组合电路外,还必须有能够记忆电路状态的存储单元或延迟单元,这些存储或延迟逻辑单元主要由锁存器或触发器来实现。
时序电路是状态以来的,成为状态机,时序逻辑电路具有以下特征:
时序逻辑电路由组合电路和存储电路组成;
时序逻辑电路的状态与时间因素相关,即时序电路在任一时刻的状态变量不仅是当前的输入信号的函数,而且还是电路以前状态的函数,时序电路的输出信号由输入信号和电路的状态共同决定。
2.1锁存器和触发器
2.1.1双稳态
双稳态电路一般有一个输出端和两个输入端(“+”、“-”端各一个),当输入端的“+”端有触发信号时,输出端不管原来是什么状态,都会立即变为高电平,且一直稳定地输出高电平。
如果当输入端的“-”端有触发信号时,输出端不管原来是什么状态,都会立即变为低电平,且一直稳定地输出低电平。
2.1.2锁存器
锁存器是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态。
输出端的状态不会随输入端的状态变化而变化,只有在有锁存信号时输入的状态被保存到输出,直到下一个锁存信号。
通常只有0和1两个值。
图2.1为RS基本锁存器,表2.1为其真值表。
表2.1SR基本锁存器真值表
S
R
状态
维持
1
Q=0
Q=1
Q=!
图2.1基本SR锁存器
2.1.3触发器
触发器(FlipFlop)是一种可以存储电路状态的电子元件。
最简单的是由两个或非门,两个输入端和两个输出端组成的RS触发器(见图)。
复杂一些的有带时钟(CLK)段和D(Data)端,在CLK端为高电平时跟随D端状态,而在CLK端变为低电平的瞬间锁存信号的D触发器。
更常用的是两个简单D触发器级联而成的在时钟下跳沿所存信号的边缘D触发器,广泛应用于计数器、运算器、存储器等电子部件。
常见的还有JK触发器和T触发器。
1.SR触发器
SR触发器基本表示及状态图和真值表见下。
图2.2SR触发器逻辑符号图2.3SR触发器状态图
表2.2SR触发器真值表
CP
Qn
Qn+1
↑
,这是SR触发器满足的基本条件。
2.D触发器
D触发器基本表示及状态图和真值表见下。
其中
。
图2.4D触发器逻辑符号图2.5D触发器状态图
表2.3D触发器真值表
D
3.JK触发器
JK触发器基本表示及状态图和真值表见下。
图2.6JK触发器逻辑符号图2.7JK触发器状态图
表2.4JK触发器真值表
J
K
2.2时序逻辑电路设计
2.2.1移位寄存器
移位寄存器:
不但可以寄存数码,在移位脉冲作用下,寄存器中的数码还可根据需要向左或向右移动。
1.基本(单向)移位寄存器
(1)右移寄存器(D触发器组成的4位右移寄存器)
结构特点:
左边触发器的输出端接右邻触发器的输入端。
图2.8右移寄存器逻辑图
图2.9右移寄存器状态图
2.双向移位寄存器
将右移寄存器和左移寄存器组合起来,并引入一控制端S便构成既可左移又可右移的双向移位寄存器。
图2.10双向移位寄存器逻辑图
2.2.2扭环计数器
扭环计数器可以进一步提高电路状态的利用率,图2.11所示扭环计数器,有效循环中的状态数提高至8个,但电路仍无法自启动。
图2.11基本扭环计数器
图2.12是可以自启动的扭环计数器,电路工作原理如下。
图2.12改进型扭环计数器
(1)写方程式。
驱动方程:
将驱动方程代入D触发器的特性方程
,得到扭环计数器的状态方程。
状态方程:
(2)列状态转换真值表,画出状态转换图。
设扭环计数器现态
=0000,代入状态方程进行推导,得表2.5所示的状态转换真值表。
表2.5环形计数器状态转换真值表
计数脉冲
序号
现态
次态
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
根据状态转换真值表,画出状态转换图,见图2.13。
图2.13改进型扭环计数器状态转换图
(3)检查电路自启动能力。
经检查,该电路能够自启动。
(4)画出电路时序图,见图2.14。
图2.14改进型扭环计数器时序图
(5)电路逻辑功能说明。
由以上分析,4位扭环计数器有效循环有8种状态,可计8个数。
扭环计数器的优点是每次状态变化只有一个触发器翻转,译码器不存在竞争冒险现象,电路比较简单。
缺点是电路状态利用率仍然不高。
3基于MATLAB的组合逻辑电路设计
3.1以寄存器仿真波形
3.1.1并寄存器的设计
这个设计中使用基本RS触发器构造一个2为并行寄存器。
所谓并行寄存器就是能够同时存储几个数据源数据的寄存器。
(1)RS触发器功能介绍
SIMULINK中提供了基本RS触发器模块。
首先运行MATLAB中运行Simulink,然后新建一个模型,将RS触发器的模块添加到模型中,RS触发器位置是:
SimulinkExtras--FlipFlops--S-RFlip-Flop.如图3.1所示。
然后在这个模块上右击鼠标,单击弹出菜单中的“LookUnderMask”(查看下封装下的电路)命令,可以看到这个模块内部电路,如图3.1所示。
设计一个2位并行寄存器需要两个RS触发器,而且需要这个寄存器下在一个始终的激励下,先从输入端读入数据,并存储一段时间,然后在下个周期将信号输出,同时读入新的信号。
这将需要将时钟源信号作为输入信号的控制端,同时由于输入信号RS不能同时为1,所以最好将它们通过一个非门联系起来,使得它们永远分开为高定平。
图3.1RS触发器模块及内部电路
(2)用基本RS触发器构造并行寄存器
第一步:
添加模块有五个模块。
RS触发器,SimulinkExtras—FlipFlops—S-RFlip-Flop.;
时钟源,SimulinkExtras—FlipFlops—Clock;
脉冲源,Simulink—Sources—PulseGenerator;
逻辑运算模块,Simulink—MathOperations—LogicalOperator;
Simulink—Sink—Scope.将它们全部拖入一个新建模型中。
第二步:
修改模块参数
首先我们双击RS触发器模块,将会看到如图3.2所示的对话框。
在对话框里只有一个参数填写,就是触发器的初始状态,即Q端的初始值,默认值0。
复制两个。
双击时钟源,将会看到图3.3所示对话框。
填写参数时钟周期,采用默认值2。
接着讲逻辑运算模块复制4个,通过双击模块将这4个设置为2输入与非门。
图3.2RS触发器参数设置图3.3时钟源参数设置
将脉冲源的PulseType选择Samplebased。
将表3.1内容填入图3.4所示的对话框中。
表3.1并行寄存器脉冲源参数设置
D0
D1
幅度
周期
脉宽
延迟相位
抽样时间
0.25
图3.4脉冲源参数设置
最后将示波器输入端口该为5个,完成参数设计。
第三步:
连线及仿真
将各模块摆放合适,参照图3.5连线。
示波器分别件事时钟源,两个脉冲模型和两个触发器的输出信号。
完成连线,将示波器上的线通过双击进行标注。
最后将整个模型保存在MATLAB的work的子目录下。
仿真时间默认为10秒,单击工具栏上
图标,开始仿真。
最后双击示波器观
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MATLAB 时序 逻辑电路 设计 仿真