数字电路实验报告 联系客服

发布时间 : 星期二 文章数字电路实验报告更新完毕开始阅读6b2ad348a26925c52cc5bfcf

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