当前位置:首页 > 数字电路实验报告
实验五 十六位运算器的逻辑设计
实验目的:
1·掌握算术了逻辑部件74181和提前进位发生器74182等集成块的结构原理和应用。 2·熟悉运算器基本组成的控制方法,以及不同的结构进位速度情况。
实验内容:
1.用74181,74182等集成块和数字逻辑实验仪组成16位可控运算器。 2. 控制不同运算方式,并列表记录运算结果
3. 设计一个选择,分别利用超前进位和不利用超前进位进行加法运算,并比较所用时间的差。
实验原理:
ALU功能表,74181
25
超前进位推导
4位之间采用先行进位公式,每一位的进位公式可递推如下: 第0位向第1位的进位公式为 Cn+1=Y0+X0Cn
其中Cn是向第0位(末位)的进位。 第1位向第2位的进位公式为
Cn+2=Y1+X1Cn+1=Y1+Y0X1+X0X1Cn 第2位向第3位的进位公式为
Cn+3=Y2+X2Cn+2=Y2+Y1X1+Y0X1X2+X0X1X2Cn 第3位的进位输出(即整个4位运算进位输出)公式为
串行计算:直接使用74181,将进位串联起来就可以 并行计算:加上74182超前进位。
Cn+4=Y3+X3Cn+3=Y3+Y2X3+Y1X2X3+Y0X1X2X3+X0X1X2X3Cn 利用四片74181构成16位的ALU,然后利用74182实现超前进位,并且利用数据选择器
26
74157进行超前进位与非超前进位间的选择。
实验实现:
1.利用Quartus II 工具,画出实验的TTl电路如下图
经过编译仿真之后,仿真波形图如下图:
如图,输入a和b分别为16进制的1234和2222是,sel从0开始计数,则输出如下,与实验时老师给我们的标准相同。 2.利用verilog进行描述
Verilog只描述了16位的超前进位加法器的实现,以及串行加法器的实现,以运算速度的比较。
module yunsuan(
27
wire wire wire wire wire
input input
[15:0] [15:0] [15:0]
A, B, OUT,
output
output reg [15:0] out2 ); CX; CY; CZ; [3:0] P; [3:0] G;
reg ci; integer i;
Tadder4 adder4_0(.a(A[3:0]), .b(B[3:0]), .ci(0), .f(OUT[3:0]), .p(P[0]), .g(G[0])); Tadder4 adder4_1(.a(A[7:4]), .b(B[7:4]), .ci(CX), .f(OUT[7:4]), .p(P[1]), .g(G[1])); Tadder4 adder4_2(.a(A[11:8]), .b(B[11:8]), .ci(CY), .f(OUT[11:8]), .p(P[2]), .g(G[2])); Tadder4 adder4_3(.a(A[15:12]), .b(B[15:12]), .ci(CZ), .f(OUT[15:12]), .p(P[3]), .g(G[3])); Tadvance adva(.p(P), .g(G), .ci(0), .cx(CX), .cy(CY), .cz(CZ));
always @(A or B) begin
28
共分享92篇相关文档