题解 | #超前进位加法器#
超前进位加法器
https://www.nowcoder.com/practice/c4c6afdab9ce45a3a2279a98391686ca
`timescale 1ns/1ns module huawei8//四位超前进位加法器 ( input wire [3:0]A, input wire [3:0]B, output wire [4:0]OUT ); //*************code***********// wire [4:0] C; wire [3:0] G,P; genvar i; generate for(i=0;i<4;i=i+1) begin assign G[i] = A[i] & B[i]; assign P[i] = A[i] | B[i]; assign C[i+1] = G[i] | (P[i] & C[i]); assign OUT[i] = A[i] ^ B[i] ^ C[i]; end endgenerate assign C[0] = 1'b0; assign OUT[4] = C[4]; //*************code***********// endmodule //////////////下面是两个子模块//////// module Add1 ( input a, input b, input C_in, output f, output g, output p ); endmodule module CLA_4( input [3:0]P, input [3:0]G, input C_in, output [4:1]Ci, output Gm, output Pm ); endmodule
没看明白ADD1中的f是什么意思(我估计是全加器中的sum),就没用子模块实现,直接用一个for循环实现