数电课程设计组合逻辑设计_第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 、C0 九个输入端,其中 A1、A2 、A3 、A4、B1 、B2、 B3、B4 是加数和被加数的数据输入端, C0 为初始进位。 S1、S2、 S3、S4、C4 五个输出端口, S1、S2、 S3、S4 为本位和, C4 为 进位输出。ii74LS83 逻辑图b、设计思路由于芯片本身

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

3、如下关系:初始进位端C0=Adder_Subtraction + Adder_Subtraction & C0 (初始进位输 入)A1A4 不作变化B1=B1 & Adder_Subtraction | B1 & Adder_Subtractioniii B2=B2 & Adder_Subtraction | B2 & Adder_Subtraction B3=B3 & Adder_Subtraction | B3 & Adder_Subtraction B4=B4 & Adder_Subtraction | B4 & Adder_Subtraction3、设计结果a、 Verilog 程序

4、module adder(A1,A2,A3,A4,B1,B2,B3,B4,C0,Adder_Subtraction,S1,S2, S3,S4,C4);input A1,A2,A3,A4,B1,B2,B3,B4,C0,Adder_Subtraction; 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

5、;7483 b2v_inst( .B4(WIRE_0), .C0(WIRE_1), .A1(A1),.A2(A2),.B1(WIRE_2),iv.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 = W

6、IRE_9 & WIRE_23;assign WIRE_14 = Adder_Subtraction & B2; assign WIRE_19 = Adder_Subtraction & C0; assign WIRE_12 = B1 & Adder_Subtraction;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;assig

7、n WIRE_6 = B4;assign WIRE_23 = Adder_Subtraction;assign WIRE_9 = B1;assign WIRE_1 = WIRE_19 | WIRE_23; assign WIRE_17 = WIRE_21 & WIRE_23;assign WIRE_16 = Adder_Subtraction & B4; endmoduleb、逻辑电路图vi利用 74LS83 实现加法减法逻辑电路图adderAdder_SubtractionS1C0S2A1S3B1S4A2C4B2A3B3A4B4inst利用 74LS83 实现加法减法器的逻辑符号Adder_

8、Subtraction 为加法减法控制端, C0 为初始进位输入端,viiA1A4 、B1B4 为数据输入端, S1S4 为本位和输出端, C4为进位 输出端。加法时: C4S4S3S2S1=A4A3A2A1+B4B3B2B1+C0 ;减法时:被减数从 B1B4 输入, C4S4S3S2S1=A4A3A2A1-B4B3B2B14、结果分析对照上图分析, 030ns 之间 Adder_Subtraction=1 ,为做加法。 分 别 为 变 化 的 情 况 , 如 图 中 蓝 线 所 对 应 数 据 , C0=0 , A4A3A2A1=1101,B4B3B2B1=1101 , C4S4S3S2S

9、1=11010 ;即电 路对应中 1101+1101=11010 ,与理论响符。可以从图中读出,其他 也是与理论相符。再看 30ns 后的,Adder_Subtraction=0 ,电路做减法。 分析 40ns 时对应的数据, A4A3A2A1=1001 , B4B3B2B1=1000 ,输出部分viii C4S4S3S2S1=10001 ,只取四位为 0001 ,即 1001-1000=0001 ,与 理论相符,再看 50ns 处,A4A3A2A1=1110 ,B4B3B2B1=0010 ,输 出 部 分 C4S4S3S2S1=11100 , 只 取 四 位 为 1100 , 即 1110-

10、0010=1100 ,与理论相符,同样其他情形从波形上看据与理论 相符。综上,此电路可以实现 4 位加法减法的运算。、 时序逻辑设计1、题目1011 序列发生器和检测器的设计实现 设计内容: 1 )进行需求分析,确定总体框架;2)画出逻辑电路图;3)对设计电路进行仿真 ;设计要求 : 1)设计一个 1011 序列发生器;2)设计一个 1011 序列检测器, 改序列检测器的输入可 以通过人工拨动开关来选择;2、设计原理a、芯片简介74194 是一个双向移位寄存器, 能够左移和右移。 如下图为,74194 逻辑符号,具有 SL( R)SI 左(右)移串行输入端,、ix四个数据输入端,、 控制端,异

11、步低电平有效清零端和一个时钟输入端,输出部分,、四个状态输出端,为典型的串并行输入,串并行输出型移位寄存器。其中、控制端作用为,、,保持状态;、,右移状态;、,左移状态;、,同步置数状态,即当、且时钟有效沿到来时。逻辑符号b、设计原理通过分析状态图来利用移位寄存器完成 1011 序列发生器。 使用移位寄存器芯片 74*194 ,将初始值设为 1011 ,而后开始移位, 并将 QA 作为下一输入。以此实现 1011 序列的产生,并用 QA 作为 序列发出端,得到串行输出的 1011 序列。由于题目要求,改序列检 测器可由人工手动拨动开关选择,联系到 74194 的置数功能,我们 可以将 A、B、

12、C、D四个输入端作为选择要发生序列的输入端, 即 A、 B、C、D 四个输入端接到逻辑开关,拨动快关来决定要发生的序列, 但是再同时考虑输出这边,由于为左移,有 QA*=QB,QB*=QC,QC*=QD,QD*=SLSI , 如 此 循 环 , 发 现 如 果 SLSI=QA 则可以往复的发生序列,达到目的。再看序列检测器这边,同样由一个 74194 来实现,把前一个序 列发生器的序列输出端置入序列检测器的 SLSI 输入端, S1、CLRN 接高电平, A、 B、C、 D 接低电平,时钟端接一起, S0 作为一个检 测器的使能端为: Control ,当 S0=0 时为正常检测序列,当 S0

13、=1 时 重置为 0。因为此序列检测器的检测序列要能够变化,构思在检测时 看他是否与输入是相同即可, 所以在检测器的输出端的每一输出线上 分别与相应的输入端做异或运算,若相同则为 0,不同则为 1,再将 这四个异或后的结果用或门连接, 取或门输出为输出端 Result ,即有 若序列相同则 Result=0 ,若有任意一位不同则 Result=1 。3、设计结果a 、Verilog 程序moduleSequence(Reset,CLK,A,B,C,D,Control,Sequence,Result);input Reset,CLK,A,B,C,D,Control;output Sequence

14、,Result;wire WIRE_0,WIRE_21,WIRE_3,WIRE_4,WIRE_5,WIRE_6,xiWIRE_7,WIRE_8,WIRE_9,WIRE_10,WIRE_22,WIRE_23,WIRE_17,WIRE_18,WIRE_19,WIRE_20;assign Sequence = WIRE_10;assign WIRE_21 = 1;assign WIRE_22 = 0;assign WIRE_23 = 1;74194 b2v_inst(.SLSI(WIRE_0),.B(B),.C(C),.CLK(CLK),.CLRN(WIRE_21),.D(D),.S1(WIRE_2

15、1),.S0(Reset),.A(A),.QA(WIRE_10),.QB(WIRE_3),.QC(WIRE_4),.QD(WIRE_5);xii assign WIRE_0 = WIRE_10;assign Result = WIRE_6 | WIRE_7 | WIRE_8 | WIRE_9;74194 b2v_inst2( .SLSI(WIRE_10), .B(WIRE_22), .C(WIRE_22), .CLK(CLK),.CLRN(WIRE_23), .D(WIRE_22), .S1(WIRE_23),.S0(Control), .A(WIRE_22),.QA(WIRE_17),.QB

16、(WIRE_20),.QC(WIRE_19), .QD(WIRE_18);assign WIRE_6 = A WIRE_17;assign WIRE_8 = WIRE_18 D;assign WIRE_7 = C WIRE_19;xiiiassign WIRE_9 = B WIRE_20;endmoduleb、逻辑原理图利用双 74194 实现可以手动改变的 4 位任意序列发生器和序列检测器c、1011 序列发生器和序列检测器 波形仿真xivd 、改序列成 1101 后发生器和序列检测器 波形仿真e 、改序列成 1001 后发生器和序列检测器 波形仿真xvf、改序列成 0001 后发生器和序列

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

温馨提示

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

评论

0/150

提交评论