「HDLBits题解」Adder100i

本专栏的目的是分享可以通过HDLBits仿真的Verilog代码 以提供参考 各位可同时参考我的代码和官方题解代码 或许会有所收益

题目链接:Adder100i - HDLBits

module top_module( 
    input [99:0] a, b,
    input cin,
    output [99:0] cout,
    output [99:0] sum 
);

    add1 Add0(a[0], b[0], cin, sum[0], cout[0]) ; 

    genvar i ;
    generate
        for (i = 1 ; i <= 99 ; i = i + 1 ) begin : u 
            add1 t(a[i], b[i], cout[i - 1], sum[i], cout[i]) ;
        end
    endgenerate

endmodule

module add1 ( input a, input b, input cin, output sum, output cout );
 
// Full adder module here
    assign sum = a ^ b ^ cin ; 
    assign cout = (a & b) | (a & cin) | (b & cin) ; 
 
endmodule

你可能感兴趣的:(HDLBits,题解,Verilog)