数电课程设计组合逻辑设计.._第1页
数电课程设计组合逻辑设计.._第2页
数电课程设计组合逻辑设计.._第3页
数电课程设计组合逻辑设计.._第4页
数电课程设计组合逻辑设计.._第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数字逻辑设计及应用课程设计、组合逻辑设计1、题目使用74LS83构成4位二进制全加全减器。具体要求:1)列出真值表;2)画出逻辑图;3)用Verilog HDL进行仿真;2、设计原理a、芯片简介74LS83本身为一个4位全加器,具有 A1、A2、A3、A4、B1、 B2、B3、B4、CO 九个输入端,其中 A1、A2、A3、A4、B1、B2、 B3、B4是加数和被加数的数据输入端,CO为初始进位。S1、S2、 S3、S4、C4五个输出端口,S1、S2、S3、S4为本位和,C4为 进位输出。74LS83逻辑图b、设计思路由于芯片本身为4位全加器所以加法方面就只要用它自身, 只要加入一个控制端来控

2、制它进行加法还是减法和减法的实现原 理即可。在二进制中减法的运算使用其补码 (two complement) 来进行,把原来的正数转换为负数的补码变成加法运算。我们知 道,从一个数的原码到它的相反数的补码是进行逐位取反再在末 位加1,为了实现这一加1运算可以在让电路做减法时把初始进 位设为1。加入一个控制端Adder_Subtraction来控制电路做加法 还是减法,令:Adder_Subtraction=1 时 电路做加法, Adder_Subtraction=0时电路做减法。则有如下关系:初始进位端CO=Adder_Subtraction + Adder_Subtraction & CO(

3、初始进位输入)A1A4不作变化B1=B1 & Adder_Subtraction | B1 & Adder_Subtractio nB2=B2 & Adder_Subtraction | B2 & Adder_Subtractio nB3=B3 & Adder_Subtraction | B3 & Adder_Subtractio nB4=B4 & Adder_Subtraction | B4 & Adder_Subtractio n3、设计结果a、Verilog 程序moduleadder(A1,A2,A3,A4,B1,B2,B3,B4,C0,Adder_Subtractio n,S1,S2

4、,S3,S4,C4);in put A1,A2,A3,A4,B1,B2,B3,B4,C0,Adder_Subtractio n;output S1,S2,S3,S4,C4;wire WIRE_0,WIRE_1,WIRE_2,WIRE_3,WIRE_4,WIRE_23, WIRE_6,WIRE_7,WIRE_9,WIRE_11,WIRE_12,WIRE_13, WIRE_14,WIRE_15,WIRE_16,WIRE_17,WIRE_18, WIRE_19,WIRE_21;7483 b2v_i nst(.B4(WIRE_0),.C0(WIRE_1),.A1(A1),.A2(A2),.B1(WIR

5、E_2),.B2(WIRE_3),.A3(A3),.B3(WIRE_4),.A4(A4),.S3(S3),S4(S4),.S2(S2),C4(C4),S1(S1);assign WIRE_21 =B3;assign WIRE_15 = WIRE_23 & WIRE_6;assign WIRE_13 = WIRE_7 & WIRE_23;assign WIRE_18 = Adder_Subtraction & B3;assign WIRE_11 = WIRE_9 & WIRE_23;assign WIRE_14 = Adder_Subtraction & B2; assign WIRE_19 =

6、 Adder_Subtraction & C0; assign WIRE_12 = B1 & Adder_Subtractio n;assign WIRE_2 = WIRE_11 | WIRE_12;assign WIRE_3 = WIRE_13 | WIRE_14;assign WIRE_7 =B2;assign WIRE_0 = WIRE_15 | WIRE_16; assign WIRE_4 = WIRE_17 | WIRE_18;assign WIRE_6 =B4;assign WIRE_23 = Adder_Subtractio n;assign WIRE_9 =B1;assign

7、WIRE_1 = WIRE_19 | WIRE_23;assign WIRE_17 = WIRE_21 & WIRE_23;assign WIRE_16 = Adder_Subtraction & B4; en dmoduleb、逻辑电路图利用74LS83实现加法减法逻辑电路图XAdder_Subtract ionS1COS2XA1S3XB1S4XA2C4XB2A3XB3XA4XB4adderXXXinst利用74LS83实现加法减法器的逻辑符号Adder_Subtraction为加法减法控制端,CO为初始进位输入端,A1A4、B1B4为数据输入端,S1S4为本位和输出端,C4为进位输出端。加

8、法时:C4S4S3S2S仁A4A3A2A1+B4B3B2B1+C0;减法时:被减数从 B1B4 输入,C4S4S3S2S仁A4A3A2A1-B4B3B2B14、结果分析对照上图分析,030ns之间Adder_Subtraction=1,为做加法。 分别为变化的情况,如图中蓝线所对应数据,C0=0,A4A3A2A1 = 1101,B4B3B2B1 = 1101,C4S4S3S2S1 = 11010 ;即电路对应中1101 + 110仁11010,与理论响符。可以从图中读出,其他 也是与理论相符。再看30ns后的,Adder_Subtraction=0 ,电路做减法。分析40ns 时对应的数据,A

9、4A3A2A1 = 1001 ,B4B3B2B1 = 1000,输出部分C4S4S3S2S1 = 10001,只取四位为 0001,即 1001-1000=0001,与 理论相符,再看 50ns 处,A4A3A2A1 = 1110 , B4B3B2B1=0010,输 出部分 C4S4S3S2S1 = 11100,只取 四位为 1100 ,即1110-0010=1100,与理论相符,同样其他情形从波形上看据与理论 相符。综上,此电路可以实现4位加法减法的运算。1、时序逻辑设计1、题目1011序列发生器和检测器的设计实现设计内容:1)进行需求分析,确定总体框架;2)画出逻辑电路图;3)对设计电路进

10、行仿真;设计要求:1)设计一个1011序列发生器;2)设计一个1011序列检测器,改序列检测器的输入可以通过人工拨动开关来选择;2、设计原理a、芯片简介74194是一个双向移位寄存器,能够左移和右移。如下图为,74194逻辑符号,具有SL ( R) SI左(右)移串行输入端,A、E、C、D四个数据输入端,S1、 SO控制端,异步低电平有效清零端CL RN和一个时钟输入端,输出部分,QA、QE、QC、QD四个状 态输出端,为典型的串/并行输入,串/并行输出型移位寄存器。其 中S1、SO控制端作用为,S1、SO = O O,保持状态;S1、 SO = O 1,右移状态;S1、SO = 1 O,左移

11、状态;S1、SO = 11,同步置数状态,即当S1、SO = 1 1且时钟有效沿到来时 QAQBQCQD=ABCDO74194逻辑符号b、设计原理通过分析状态图来利用移位寄存器完成 1011序列发生器。 使用移位寄存器芯片74*194,将初始值设为1011,而后开始移位, 并将QA作为下一输入。以此实现1011序列的产生,并用QA作为 序列发出端,得到串行输出的1011序列。由于题目要求,改序列检 测器可由人工手动拨动开关选择,联系到74194的置数功能,我们可以将A、B、C、D四个输入端作为选择要发生序列的输入端,即A、 B、C、D四个输入端接到逻辑开关,拨动快关来决定要发生的序列, 但是再

12、同时考虑输出这边,由于为左移,有 QA*=QB,QB*=QC,QC*=QD,QD*=SLSI ,如此循环,发现如果 SLSI二QA则可以往复的发生序列,达到目的。再看序列检测器这边,同样由一个74194来实现,把前一个序列发生器的序列输出端置入序列检测器的SLSI输入端,S1、CLRN接高电平,A、B、C、D接低电平,时钟端接一起,S0作为一个检 测器的使能端为:Control,当S0=0时为正常检测序列,当S0=1时 重置为0。因为此序列检测器的检测序列要能够变化,构思在检测时 看他是否与输入是相同即可,所以在检测器的输出端的每一输出线上 分别与相应的输入端做异或运算,若相同则为0,不同则为

13、1,再将这四个异或后的结果用或门连接,取或门输出为输出端Result,即有 若序列相同则Result=0,若有任意一位不同则Result=1。3、设计结果a、Verilog 程序moduleSeque nce(Reset,CLK,A,B,C,D,Co ntrol,Seque nce,Result);in put Reset,CLK,A,B,C,D,Co ntrol;output Seque nce,Result;wire WIRE_0,WIRE_21,WIRE_3,WIRE_4,WIRE_5,WIRE_6,WIRE_7,WIRE_8,WIRE_9,WIRE_10,WIRE_22,WIRE_23

14、,WIRE_17,WIRE_18,WIRE_19,WIRE_20;assign Seque nee = WIRE_10;assig n WIRE_21 = 1;assign WIRE_22 = 0;assign WIRE_23 = 1;74194b2v_i nst(.SLSI(WIRE_O),B(B),C(C),.CLK(CLK),.CLRN(WIRE_21),D(D),.S1(WIRE_21),.SO(Reset),A(A),.QA(WIRE_10),.QB(WIRE_3),.QC(WIRE_4),.QD(WIRE_5);assign WIRE_O = WIRE_10;assig n Res

15、ult = WIRE_6 | WIRE_7 | WIRE_8 | WIRE_9; 74194b2v_i nst2(.SLSI(WIRE_10),.B(WIRE_22),.C(WIRE_22),.CLK(CLK),.CLRN(WIRE_23),.D(WIRE_22),.S1(WIRE_23),.S0(Co ntrol),.A(WIRE_22),.QA(WIRE_17),.QB(WIRE_20),.QC(WIRE_19),.QD(WIRE_18);assign WIRE_6 = A 八 WIRE_17;assign WIRE_8 = WIRE_18 八 D;assign WIRE_7 = C 八

16、WIRE_19;assign WIRE_9 = B 八 WIRE_20;en dmoduleb、逻辑原理图利用双74194实现可以手动改变的4位任意序列发生器和序列检测器C、1011序列发生器和序列检测器波形仿真Utt10CEKK 0叵Coati*(flX 012i*5ttk 0三Ak 11*4k 0CK 1三DA :Sequence!B :Re皿tB :10.0 hei30. Q ns40.0ns13.475 nsd、改序列成1101后发生器和序列检测器 波形仿真e、改序列成1001后发生器和序列检测器 波形仿真Value13 48cutAOControlAOAOkA 1BAOCAO16DA

17、 1鱼BOResultE 1I10. Q ns20. Q 皿130,0 ns1I_II_If、改序列成0001后发生器和序列检测器波形仿真4、结果分析首先对于初始的1011序列发生器和序列检测器的设计中,起初Reset=1,为置入A、B、C、D输入的所要发生的序列,即为1011, 然后再Reset=0为发生此序列,从序列输出端 Sequenee端看出发 生了 101110111011101序列,数据检测器Control=0为检测状态, 对于每完成一个1011序列Result就相应地在下一个时钟输出一个 0,即序列正确,与题目要求以及需求一致。通过手动拨动A、B、C、D对应的开关来改变要发生的序列, 得到如上图的一些序列发生与检测的实例,均与理论相符。三、总结1、加法减法电路设计总结利用本身就是一个加法器的芯片来设计加法减法电路,只需要变 通一下理解怎样通过加法来实现减法,减法时把被减数的负值的补码作为新的加数即可,最后再设计一个加法减法的控制端来控制电路做 加法还是减法。2、序列发生器和序列检测器设计总结在本次设计中,发现1011序列的发生与检测都有许多种方案可 行,有多种逻辑电路能实现该功能。但是出于提高芯片利用率,降低 成本的考虑,我在发生器和检测器的设计时都使用了移位寄存器 74194.使用这种设计不仅使成本降到了最低, 利用率达到最高,而

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论