四位全加器的实现
顶层文件
module test1 (clk , A , B , C0 , S , C) ;
input clk , C0 ;
input [3:0] A ;
input [3:0] B ;
output [3:0]S;
output C ;
wire [2:0] C2 ;
test1_fulladd add1(clk , C0 , A[0] , B[0] , C2[0] , S[0] ) ;
test1_fulladd add2(clk , C2[0] , A[1] , B[1] , C2[1] , S[1] ) ;
test1_fulladd add3(clk , C2[1] , A[2] , B[2] , C2[2] , S[2] ) ;
test1_fulladd add4(clk , C2[2] , A[3] , B[3] , C , S[3] ) ;
endmodule
底层文件
module test1_fulladd(clk , c0 , a , b , c1 , s ) ;
input clk , c0 , a , b ;
output c1 , s ;
reg c1 ;
reg s ;
always@ (clk)
begin
s <= a ^ b ^ c0 ;
c1 = (a&b)|((a^b)&c0);
end
endmodule
波形图仿真