top_board_Lab3

Modified

2025-11-11

Source: Lab3Extra/top_board_Lab3.v (modified 2025-10-21 10:01)

// top_board_adder4.v
// SW[3:0]=A, SW[7:4]=B, SW[8]=Cin
// segments[6:0] -> a..g (active-low), segments[7] -> dp (active-low) 显示Cout
module top_board_Lab3(
    input  [9:0] SW,
    output [7:0] segments   // segments[6:0]=a..g, segments[7]=dp
);
    // 拨码开关到加法器
    wire [3:0] A   = SW[3:0];
    wire [3:0] B   = SW[7:4];
    wire       Cin = SW[8];

    // 加法结果
    wire [3:0] Z;
    wire       Cout;

    // 你的四位加法器(已定义为输出 Z)
    Adder4 U_adder4 (
        .A(A), .B(B), .Cin(Cin),
        .Z(Z), .Cout(Cout)
    );

    // 七段译码(只用来驱动 a..g 显示 Z 的 16 进制)
    wire [6:0] seg_sum;  // a..g (active-low)
    sevenSeg U_hex_sum (
        .digit(Z),          // 输入 0~15
        .segments(seg_sum)  // 输出 a..g (active-low)
    );

    // 拼成 8 根段线:a..g + dp
    // 若段线为主动低:Cout=1 时点亮 dp,则 dp = ~Cout
    assign segments[6:0] = seg_sum;     // 显示 Z
    assign segments[7]   = ~Cout;       // 用小数点显示 Cout

endmodule