当前位置:首页 > 数字电路实验报告
for(i=0 ; i <= 15 ; i = i+1) begin
out2[i] = A[i] + B[i] + ci; ci = A[i]&B[i] | B[i]&ci | A[i]&ci; end end
endmodule
module Tadder4( input [3:0] a, input [3:0] b, input
ci,
output [3:0] f, output p, output
g
);
assign f = a + b + ci; assign g3 = a[3] & b[3]; assign g2 = a[2] & b[2]; assign g1 = a[1] & b[1];
29
assign g0 = a[0] & b[0]; assign p3 = a[3] | b[3]; assign p2 = a[2] | b[2]; assign p1 = a[1] | b[1]; assign p0 = a[0] | b[0];
assign g = g3 | (p3 & g2) | (p3 & p2 & g1) | (p3 & p2 & p1 & g0); assign p = p3 & p2 & p1 & p0;
endmodule
module Tadvance( input [3:0] p, input [3:0] g, input
ci, output cx, output cy, output
cz
);
assign cx = g[0] | (p[0] & ci);
assign cy = g[1] | (p[1] & g[0]) | (p[1] & p[0] & ci);
30
assign cz = g[2] | (p[2] & g[1]) | (p[2] & p[1] & g[0]) | (p[2] & p[1] & p[0] & ci);
endmodule
Verilog用了例化的方法,将4个4位的加法器,实现了超前进位,Tadder4是产生g,p的作用,而Tadvance是产生超前进位的作用。最后在主模块中调用他们以实现超前进位加法器。而串行进位的加法器,则是利用for循环语句,将每一位的进位传给下一位,然后循环到最高位。
下面为编译仿真之后的波形图
由波形仿真图可见,超前进位比串行进位约有5ns左右的速度的提前。可见超前进位在运算中相比串行进位可以提高运算的速度。 实验小结
本次试验为一个16位的运算器的搭建,将4片4位的ALU搭建成一个16位的AUL,并且利用74182实现超前进位,利用74157实现超前进位和非超前进位的选择。在verilog之中利用硬件描述语言实现了16位超前进位的加法器,让我对超前进位的逻辑实现有了更加深刻的理解。并且对超前进位对时间的提升有了更加深刻的认识。
31
实验六 4Kx8bit存储器的设计
实验目的:
熟悉MOS集成存储电路的性能和使用; 掌握扩大存储容量和存储器字长的方法;
了解设计功能较完善的存储器,即有独立的控制、时序、自检、校验功能的存储器的基本要求 实验内容:
利用Quartus II 1kx4bit的存储器件搭建1kx8bit的存储器件,以实现与2114功能相仿的存储器,再通过例化所搭建的原件,实现4kx8bit的存储器,并进行验证。 利用verilog对此电路图进行描述,利用波形图验证正确性。 实验实现:
1.利用Quartus II 工具,画出实验的TTl电路如下图
32
共分享92篇相关文档