题解 | #串行进位加法器#
串行进位加法器
https://www.nowcoder.com/practice/83c5850805004b6d8c48742f582f304a
`timescale 1ns/1ns module add_4( input [3:0] A , input [3:0] B , input Ci , output wire [3:0] S , output wire Co ); wire [3:0]S1; wire [3:0]S2; add_full u1( .A(A[0]), .B(B[0]), .Ci(Ci), .S(S1[0]), .Co(S2[0]) ); add_full u2( .A(A[1]), .B(B[1]), .Ci(S2[0]), .S(S1[1]), .Co(S2[1]) ); add_full u3( .A(A[2]), .B(B[2]), .Ci(S2[1]), .S(S1[2]), .Co(S2[2]) ); add_full u4( .A(A[3]), .B(B[3]), .Ci(S2[2]), .S(S1[3]), .Co(S2[3]) ); assign S=S1; assign Co=S2[3]; endmodule module add_half( input A , input B , output wire S , output wire C ); assign S = A ^ B; assign C = A & B; endmodule module add_full( input A , input B , input Ci , output wire S , output wire Co ); wire S1; wire S2; add_half UUT( .A(A), .B(B), .S(S1), .C(S2) ); assign S=S1^Ci; assign Co=S2|(S1&Ci); endmodule
多个全加器例化,没啥可说的

