资源预览内容
第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
第9页 / 共10页
第10页 / 共10页
亲,该文档总共10页全部预览完了,如果喜欢就下载吧!
资源描述
数字电路与逻辑设计课程小设计题目: 简单运算器运算电路设计 专 业:计算机科学与技术班 级:CS1409学 号:U201414813姓 名:唐礼威指导教师:徐老师一、 设计题目每位同学自选下列题目之一。(1)时序信号发生器设计(2)地址译码电路设计(3)自选(内容要求参见(1)、(2)二、 设计内容要求2.1、简单运算器设计用Verilog实现一个满足设计要求的简单运算器的运算电路。2.1.1设计要求设计一个能实现两种算术运算和两种逻辑运算的 4 位运算器。参加运算的 4 位二进制 代码分别存放在 4 个寄存器 A、B、C、D 中,要求在选择变量控制下完成如下 4 种基本运算:(1)实现 A 加 B,显示运算结果并将结果送寄存器 A;(2)实现 A 减 B,显示运算结果并将结果送寄存器 B;(3)实现 A 与 C,显示运算结果并将结果送寄存器 C;(4)实现 A 异或 D,显示运算结果并将结果送寄存器 D。2.1.2 功能描述根据设计要求,为了区分 4 种不同的运算,需设置 2 个运算控制变量。设运算控制变 量为 S1 和 SO,可列出运算器的功能,如表 1 所示。根据功能描述可得出运算器的结构框 图,如图 1 所示。整个电路可由传输控制电路、运算电路、显示电路 3 部分组成。S1S0功能说明00ABAA 加 B,结果送至 A01ABAA 减 B,结果送至 A10ABCA 与 C,结果送至 C11ABDA 异或 D,结果送至 D简单运算功能说明表运算器的结构框图由简单运算器的结构图可知其由传输控制电路、运算电路和运算结果显示电路三个大部分构成,其中运算电路又由算术运算电路、逻辑运算电路构成。这次设计主要是利用Verilog语言设计运算器中运算电路部分。2.1.3 电路设计运算电路的逻辑电路图如下:由运算电路的逻辑电路图可以看出运算器中的逻辑关系,运算器主要由一片74LS283芯片和4个寄存器及8个异或门和4个与门构成。 由运算电路逻辑电路图可以初步构思设计个子模块的功能。但是仅有运算电路的逻辑电路图还不够,还需要整体运算器的逻辑电路图才能确定各个子模块的输入与输出关系。运算电路的完整逻辑电路图如下:可以看到运算电路逻辑图只是其中一部分,其中74LS283芯片功能为超前进位的全加器,可以将它设计为一个加法器模块。由以上的分析,知该设计主要要解决的问题:主模块的设计、寄存器模块的设计、加法器模块的设计、仿真验证。由此写出程序代码如下:功能代码:timescale 1ns / 1ps/主模块module JDYS(CIN,S1,S0,CP,A,B,C,D,F); input CIN,S1,S0,CP; input 3:0 A; input 3:0 B; input 3:0 C; input 3:0 D;output reg 3:0 F; wire 3:0 xnor1; wire 3:0 and1; wire 3:0 xnor2; wire 3:0 r1; wire 3:0 r2; wire 3:0 r3; wire 3:0 r4; wire 3:0 a; wire aout;parameter W = 1b1xor (xnor10,r10,r40), xor (xnor11,r11,r41), xor (xnor12,r12,r42), xor (xnor13,r13,r43);xor (xnor20,r20,CIN), xor (xnor21,r21,CIN), xor (xnor22,r22,CIN), xor (xnor23,r23,CIN); register X1(W,A3,A2,A1,A0,W,W,W,W,CP,r13,r12,r11,r10), register X2(W,B3,B2,B1,B0,W,W,W,W,CP,r23,r22,r21,r20), register X3(W,C3,C2,C1,C0,W,W,W,W,CP,r33,r32,r31,r30), register X4(W,D3,D2,D1,D0,W,W,W,W,CP,r43,r42,r41,r40); add X5(CIN,r1,xnor2,a,aout); and (and10,r10,r30), and (and11,r11,r31), and (and12,r12,r32), and (and13,r13,r33); always (*) begin case(S1,S0) 2b00 : begin F = a; end 2b01 : begin F = a; end 2b10 : F = and1; 2b11 : F = xnor1; endcase endendmodule/加法器模块module add (cin,x,y,z,fc); input cin; input 3:0 x; input 3:0 y; output reg 3:0 z; output reg fc; reg 3:0 c; always(cin,x,y,z,fc) begin z0 = x0y0cin; c0 = (x0y0)&cin|x0&y0); z1 = x1y1c0; c1 = (x1y1)&c0|x1&y1); z2 = x2y2c1; c2 = (x2y2)&c1|x2&y2); z3 = x3y3c2; fc = (x3y3)&c2|x3&y3); endendmodule/寄存器模块module register(FCLR,D,C,B,A,DR,DL,S1,S0,CP,Q4,Q3,Q2,Q1); input FCLR,D,C,B,A,DR,DL,S1,S0,CP; output reg Q4,Q3,Q2,Q1; parameter W = 1,F = 0; initial Q4,Q3,Q2,Q1 = 4b0000; always (posedge CP) if(!FCLR) Q4,Q3,Q2,Q1 = 0; else if (S1)&(S0) Q4,Q3,Q2,Q1 = Q4,Q3,Q2,Q1; else if(S1&S0) Q4,Q3,Q2,Q1 = D,C,B,A; else if(S1)&S0&DR) Q4,Q3,Q2,Q1 = 1,Q3,Q2,Q1; else if(S1)&S0&(!DR) Q4,Q3,Q2,Q1 = 0,Q3,Q2,Q1; else if(S1&(S0)&DL) Q4,Q3,Q2,Q1 = Q3,Q2,Q1,W; else if(S1&(S0)&(DL) Q4,Q3,Q2,Q1 = Q3,Q2,Q1,F; Endmodule仿真程序timescale 1ns / 1psmodule JDYS_tb( ); reg CIN,S1,S0,CP; reg 3:0 A; reg 3:0 B; reg 3:0 C; reg 3:0 D; wire 3:0 F; JDYS DUT (.A(A), .B(B), .C(C), .D(D), .S1(S1), .S0(S0), .CP(CP), .CIN(CIN), .F(F); initial begin A = 4d12;B = 4d11;C = 4d2;D = 4d8;S1 = 0;S0 = 0;CIN = 0;CP = 1; #10 S1 = 0;S0 = 1;CIN = 1;CP = 0; #10 S1 = 1;S0 = 0; #10 S1 = 1;S0 = 1; #10 A = 4d5;B = 4d7;C = 4d5;D = 4d1;S1 = 0;S0 = 0;CIN = 0;CP = 1; #10 S1 = 0;S0 = 1;CIN = 1;CP = 0; #10 S1 = 1;S0 = 0; #10 S1 = 1;S0 = 1; #10 A = 4d0;B = 4d15;C = 4d4;D = 4d8;S1 = 0;S0 = 0;CIN = 0;CP = 1; #10 S1 = 0;S0 = 1;CIN = 1;CP = 0; #10 S1 = 1;S0 = 0; #10 S1 = 1;S0 = 1; #10;endendmodule运算电
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号