您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第八章补充数字逻辑电路
第五章数字逻辑电路仿真5.1组合逻辑电路仿真组合逻辑电路是相对于时序电路而言的,组合逻辑电路在结构上由各种逻辑门构成,它不包含记忆功能器件,特点是,在任何给定时刻的输出值仅与该时刻电路的输入值有关,而与过去的输入状态无关。常用的组合电路有半加器、全加器、比较器、编码器、译码器、数据选择器、奇偶校验器等。5.1.1编码器的仿真利用simulink模块搭建一个三位二进制编码器。1.模型分析一个三位二进制编码器,也叫8线3线二进制编码器。真值表如下:X0X1X2X3X4X5X6X7Z2Z1z01000000000001000000001001000000100001000001100001000100000001001010000001011000000001111根据真值表得逻辑表达式如下:Z2=X4+X6+X5+X7Z1=X2+X3+X6+X7Z0=X1+X3+X5+X72.模型搭建首先建立一个*.mdl模型文件,之后选用所需模块。PulseGenerator(脉冲序列发生器),位于simulink节点下的Source库中,用于产生所需的原始脉冲序列。参数中Period用于设定按照采样时间长度确定产生的脉冲序列周期,如图设置为8,即8*1(sampletime)代表脉冲序列周期相当于8个采样周期。同理,plusewidth设置为1,即1*1(sampletime)代表脉冲序列周期相当于1个采样周期。LogicalOperator,位于simulink节点下的LogicandbitOperations库中,用于实现逻辑表达式的运算,其参数设置中,Operator下拉表框用于设置模块实现的逻辑功能,下拉列表框中可选项有:AND、OR、NAND、NOR、XOR、NOT等。搭建模型如下:z2ORz1ORz0ORx7x6x5x4x3x2x1x0Scope2Scope1Scope3.运行仿真在菜单栏中执行Simulation/Simulationparameter,将Solve项卡中的Stoptime设置为16。运行该模,编码器输出的波形图如下。5.1.2译码器的仿真1.3线-8线二进制译码器逻辑表达式如下:0120xxxz0121xxxz0122xxxz0123xxxz0124xxxz0125xxxz0126xxxz0127xxxz首先建立一个*.mdl模型文件,之后选用所需模块PulseGenerator(脉冲序列发生器)等。3线-8线二进制译码器仿真模型如下图。z7ANDz6ANDz5ANDz4ANDz3ANDz2ANDz1ANDz0ANDx2x1x0Scope1Scope3NOT2NOT1NOTPulseGenerator(脉冲序列发生器)参数设置如下图:模块名称PulsetypeAmplitudePeriodPulsewidthPhasedelaySampletimex0Samplebased12111x1Samplebased12112x2Samplebased131142.4线-16线二进制译码器仿真模型1)创建具有使能端的3线-8线二进制译码器,2)3线-8线译码器子系统建立,3)封装子系统,4)自建用户模块库File/New/Library。x3x2x1x0Subsystem1In1In2In3s3s2s1q0q1q2q3q4q5q6q7SubsystemIn1In2In3s3s2s1q0q1q2q3q4q5q6q7Scope2Scope1ScopeConstant01NOT封装子系统的内部模型图:q78q67q56q45q34q23q12q01z7ANDz6ANDz5ANDz4ANDz3ANDz2ANDz1ANDz0ANDScope16AND5NOT4NOT3NOT2NOT1NOTs16s25s34In33In22In115.1.3数据选择器的仿真建立模型,设置参数,其中PulseGenerator(脉冲序列发生器)参数设置如下图:模块名称PulsetypeAmplitudePeriodPulsewidthPhasedelaySampletimeD0Samplebased12100.5D1Samplebased15100.5D2Samplebased12100.25D4Samplebased13100.5A1Samplebased121110A2Samplebased12115SSamplebased1404201数据选择器的仿真模型如下:Scope1ScopeSM2NOTM1NOTMNOTLogicalOperatorORD3D2D1D0A2A14AND3AND2AND1AND5.1.4奇偶校验器的仿真现有一列含有10个数的随机0,1沿信号线传输,在传输过程中该数列因干扰信号,任一数字发生改变的几率为0.5%,试得用MATLAB对奇偶校验器的功能进行仿真。a=rand(1,10);s=1;whiles0b=rand(1,10);fori=1:10ifa(i)0.5a(i)=1elsea(i)=0endifb(i)0.95b(i)=1elseb(i)=0endc(i)=a(i)+b(i);ifc(i)==2c(i)=0;endendsend=a;receive=c;fori=1:9send(i+1)=send(i)*not(send(i+1))+not(send(i))*send(i+1);receive(i+1)=receive(i)*not(receive(i+1))+not(receive(i))*receive(i+1);endC=send(10)B=receive(10)s=B*not(C)+not(B)*Cpauseend5.1.5加法器的仿真利用全加器实现4位二进制运算,首先建立全加器模块,再搭建4位全加器Simulink模型。SUM2D1L4XORL3ORL2ANDL1ANDLANDC3B2A1P0DisplayB30B21B11B01ADD3ABCDSUMADD2ABCDSUMADD1ABCDSUMADDABCDSUMA30A21A10A015.2时序逻辑电路仿真5.2.1基本触发器模块介绍S-R触发器内部电路如下图:!Q2Q1MuxMuxMemoryLogicDemuxDemuxR2S1其中,Memory模块位于Simulink节点下的Discrete模块库中,它相当于一个状态存储器,在某一时刻它将从输入端输入的状态存储,再在下一时刻将该状态从其输出端输出。Combinatoriallogic模块位于Simulink节点下的LogicandbitOperations模块库中,它是组合逻辑模块,相当于实现一个真值表查询。S-R触发器模块中,其数值设置如下:[01;10;01;01;10;10;00;00]实现如下图真值表。SRQnQn+11nQ0000100110010010110110010101101100011100当触发器为S、R均为0时,输出状态保持不变;当触发器为S=0、R=1均为0时,输出Q=0,Q=1;当触发器为S=1、R=0时,输出Q=1,Q=0;当触发器为S=1、R=1时,为无效状态。JK触发器内部电路如下图:!Q2Q1J-KFlip-FlopJLoKLoQ!QK3CLK2J1!Q2Q1MuxMemoryLogicDemuxDemuxTriggerK2LoJ1LoD触发器内部电路如下图:!Q2Q1DFlip-FlopDLoQ!Q!CLR3CLK2D1!Q2Q1LogicNOTTriggerCD1Lo5.2.2并行寄存器仿真并行寄存器仿真模型如下:当控制电路Clock信号输入1时,输入端输入信号不起作用,Clock信号输入0时,连接S端和连接R端的输出信号取决于输入端的输入信号。ScopeS-RFlip-Flop1SRQ!QS-RFlip-FlopSRQ!QPulseGenerator2PulseGenerator1PulseGeneratorLogicalOperator3NORLogicalOperator2NORLogicalOperator1NORLogicalOperatorNORPulseGenerator(脉冲序列发生器)参数设置如下图:模块名称PulsetypeAmplitudePeriodPulsewidthPhasedelaySampletimeD0Samplebased13101D1Samplebased13100.25仿真结果如下图:5.2.3移位寄存器仿真移位寄存器仿真模型如下:ScopePulseGenerator1LogicalOperator2NOTLogicalOperator1NOTLogicalOperatorNOTDFlip-Flop3DCLK!CLRQ!QDFlip-Flop2DCLK!CLRQ!QDFlip-Flop1DCLK!CLRQ!QDFlip-FlopDCLK!CLRQ!QConstant0Clock仿真结果如下图:5.2.4十进制同步计数器仿真8421BCD十进制计数器仿真模型如下:counterinClockq1q2q3q4c8421BCDalgorismadderXYGraphToWorkspacesimoutScope1ScopeGain38Gain24Gain12Gain1DisplayConstant1Clock10Clock子系统内部模型如下:c5q44q33q22q11LogicalOperator4ANDLogicalOperator3ANDLogicalOperator2ANDLogicalOperator1ANDJ-KFlip-Flop3JCLKKQ!QJ-KFlip-Flop2JCLKKQ!QJ-KFlip-Flop1JCLKKQ!QJ-KFlip-FlopJCLKKQ!QClock2in1XYGraph结果如下图所示。5.2.5多位计数器仿真利用一位8421BCD十进制计数器子系统搭建,实现0-10000的计数器Simulink仿真模型如下:mcounter4clockcOut1mcounter3clockcOut1mcounter2clockcOut1mcounter1clockcOut1DisplayClock子系统内部模型如下:Out12c1m1counterinClockq1q2q3q4c8421BCDalgorismadderGain31Gain22Gain14Gain8clock1
本文标题:第八章补充数字逻辑电路
链接地址:https://www.777doc.com/doc-2191259 .html