数字电路 全加器.docx
《数字电路 全加器.docx》由会员分享,可在线阅读,更多相关《数字电路 全加器.docx(14页珍藏版)》请在冰点文库上搜索。
数字电路全加器
目录
摘要2
Abstract3
数字电路-全加器4
1一位全加器的设计4
1.1一位全加器的原理4
1.2一位全加器的逻辑电路图4
1.3用Simulink创建全加器电路模块5
1.4一位全加器的子系统图5
2.四位全加器的设计6
2.1四位全加器电路图6
2.2仿真波形及与理论值的比较7
小结与体会10
参考文献11
摘要
Simulink是从底层开发的一个完整的仿真环境和图形界面,它把MATLAB的许多功能都设计成一个个直观的功能模块,把需要的功能模块连接起来就可以实现所需要的仿真功能。
Simulink仿真应用于数字电路、数字信号处理、通信仿真、电力系统仿真、宇航仿真等领域。
由于数字系统中高低电平分别用0和1表示,因此数字电路问题往往可以转化为一个数字上的逻辑问题。
MATLAB提供了逻辑运算模块和各种触发器模块,可以方便的进行数字电路的设计和仿真。
借助于组合电路仿真常用模块LogicandBitOperations子库中的LocalOperator模块,将其拖到所建的untitled窗口中,然后鼠标左键双击该模块弹出的BlockParameters/LogicalOperator对话框,按Operator栏后的黑三角来选择所需要的门电路标识符,如:
AND、OR、NAND、NOR、XOR、NOT中的一个,并依次设置所需的输入、输出端子个数,之后按OK键确定。
利用这些基本门电路组成全加器逻辑电路。
关键词:
MATLABSimulink仿真全加器
Abstract
FromthebottomofthedevelopmentofSimulinkacompletesimulationenvironmentandgraphicinterface,itputmanyofthefunctionsaredesignMATLABasanintuitivefunctionmodule,theneedtoconnectthefunctionmodulecanbeachievedneedsimulationfunction.Simulinkusedinthedigitalcircuit,digitalsignalprocessing,communicationsimulation,electricpowersystemsimulation,thespacesimulation,etc.Asdigitalsysteminhighandlowlevelrespectivelywith0and1said,sothedigitalcircuitproblemsareoftencanbeconvertedintoanumberofproblemsonlogic.MATLABprovideslogicoperationmoduleandvarioustriggermodule,easytodigitalcircuitdesignandsimulation.CombinedwiththesimulationmodulecircuitcommonlyusedLogicandBitOperationssoninthelibraryLocalOperatormodule,willdragthebuildinguntitledwindow,andthenthemouseleftclickonthemoduleofthepop-upBlockParameters/LogicalOperatordialogbox,presstheblacktriangleOperatorbartoselectthedesiredagateidentifier,suchas:
and,OR,NAND,NOR,XOR,NOTofa,andweresettothedesiredinputandoutputterminalsnumber,thenpressOKsure.Usingthesebasicofgateadderlogiccircuit.
Keywords:
MATLABSimulinkQuanJiadevice
数字电路-全加器
1一位全加器的设计
1.1一位全加器的原理
所谓全加器,就是带进位输入和进位输出的加法器。
1位全加器有3个输入,分别是加数A、B和来自低位的进位C;还有两个输出,分别是和数SUM以及向高位进位D。
根据全加运算的逻辑关系,可列出一位全加器的真值表,如表1所示。
表1一位全加器的真值表
ABC
SUM
D
000
0
0
001
1
0
010
1
0
011
0
1
100
1
0
101
0
1
110
0
1
111
1
1
列出SUM和D的最小与或表达式:
SUM=
D=AC+BC+CA
1.2一位全加器的逻辑电路图
对SUM进行一次变换的SUM=A⊕B⊕D这样仅用一个三输入异或门就实现了SUM的电路。
基于逻辑表达式得到如下逻辑图(图1)。
A
B
CD
SUM
图1一位全加器的逻辑电路图
1.3用Simulink创建全加器电路模块
图2一位全加器的组合模块
1.4一位全加器的子系统图
用鼠标选中这部分逻辑电路,选中右击,在弹出的快捷菜单中选择CreateSubsystem命令,自动生成一个子系统,一位全加器的子系统图如下图所示。
图3一位全加器的子系统图
2.四位全加器的设计
2.1四位全加器电路图
图4四位全加器的电路图
要将4个1位全加器级联起来,前一个的高位端D送入后一个的低位进位端C就可以实现4位全加器。
电路如上图所示。
注:
全加器脉冲源参数设置如表2.
表2
输入
A0
A1
A2
A3
B0
B1
B2
B3
幅度
1
1
1
1
1
1
1
1
周期
2
4
8
16
2
4
8
16
脉宽
1
2
4
8
1
2
4
8
相位延迟
0
1
3
7
0
1
3
7
采样时间
5
5
5
5
5
5
5
5
2.2仿真波形及与理论值的比较
将打开示波器Scope1,Scope2。
它们分别监视的两个加数的波形。
设定输入A2A1A0以及B2B1B0的初值均为1,选择Simulation的ConfigurationParameters命令,将仿真时间设置为0-20s,,然后将这个模型保存到MATLAB的work目录下。
其输入波形如图5,所示。
图5A3A2A1A0的输入波形图
图5A3A2A1A0的输入波形图
图6B3B2B1B0的输入波形图
从两个波形图中读出数值并计算理论结果如表3所示:
表3
时间
A3
A2
A1
A0
B3
B2
B1
B0
D
S3
S2
S1
S0
0~5s
0
0
0
1
0
0
0
1
0
0
0
1
0
5~10s
0
0
1
0
0
0
1
0
0
0
1
0
0
10~15s
0
0
1
1
0
0
1
1
0
0
1
1
0
15~20s
0
1
0
0
0
1
0
0
0
1
0
0
0
20~25s
0
1
0
1
0
1
0
1
0
1
0
1
0
25~30s
0
1
1
0
0
1
1
0
0
1
1
0
0
30~35s
0
1
1
1
0
1
1
1
0
1
1
1
0
35~40s
1
0
0
0
1
0
0
0
1
0
0
0
0
40~45s
1
0
0
1
1
0
0
1
1
0
0
1
0
45~50s
1
0
1
0
1
0
1
0
1
0
1
0
0
50~55s
1
0
1
1
1
0
1
1
1
0
1
1
0
55~60s
1
1
0
0
1
1
0
0
1
1
0
0
0
65~70s
1
1
0
1
1
1
0
1
1
1
0
1
0
70~75s
1
1
1
0
1
1
1
0
1
1
1
0
0
75~80s
1
1
1
1
1
1
1
1
0
0
0
0
0
双击示波器Scope打开输出波形,它监视D,S3,S2,S1,S0的波形,如下图7所示。
图7加法器的输出结果
将加法器的实际输出结果与上表中的理论输出结果比较,可发现,实际输出结果与理论结果是一致的,该结果证实了四位全加器电路的正确性。
小结与体会
本次强化训练让我更熟练的掌握MATLAB的软件的功能,加强了对MATLAB软件强大的图形处理能力,符号运算功能和数值计算功能,运用MATLAB进行电路分析。
在熟悉和掌握MATLAB的同时培养了我的独立思考能力,钻研精神,解决问题的能力和动手能力。
虽然在此之前,没有很多的接触MATLAB这个软件,对软件的功能不是很了解。
但是在自学MATLAB这个软件的过程中,我了解了基本的应用。
特别是MATLAB在仿真电路上的应用。
在这之中,我通过查阅资料,对MATLAB电路分析应用有一定的了解。
同时,我也认识到,MATLAB的功能不只是对电路进行仿真,它有着多个方面的应用。
如绘制函数,处理音频,图像数据,创建用户界面等功能,实在是一个功能强大的软件。
因为对simulink界面的不熟悉,构造电路,寻找元件也花了很长的时间,后在进行仿真的过程中,由于一开始脉冲电源的参数没有设置好,所以很长时间内都得不到相应的波形,于是,我试着将电源单独拿出来,不断改变它的参数,观察相应的输出波形,最终得到了正确的输出结果。
经过这次的基础强化训练,我学会了不断的,耐心的去尝试,才能能深刻了解各个元件的功能。
学习软件也是这样的,只有不断地试着去应用,才能掌握它的功能。
同时,经过这次课程设计我知道了学习任何东西都市有困难的,但只要自己能坚持,遇到不懂的东西自己尝试各种途径去解决,而不是一味的想老师同学请求帮助,才能真正的自己掌握知识,并且能够更好的把它应用在实践中。
同时,通过自己的不断的探索,自己的自学能力提高了很多,这是我们在大学必须学会的一门功课。
学习计算机语言要多练习,在学习的同时要举一反三,和同学、老师多作交流。
同时我也认识到自己在学习上的不足,以及知识掌握不够扎实,明确了以后学习的方向。
总之,经过这次课程设计让我认识到自身的不足,同时也学习到很多知识以及技巧。
参考文献
[1]张天笑.MATLAB7.X基础教程.西安电子科技大学出版社,2008.4.
[2]吴友宇.数字电子技术基础.清华大学出版社,2006.
[3]曹汉房.脉冲与数字电路.武汉:
华中理工大学出版社,1999.
[4]于润伟.MATLAB基础与应用.机械工业出版社,2011.
[5]张志涌.