Gowin Vol.3 第1部第3章 リスト1

module segment_driver (
input wire [3:0] decimal_number, // 7セグLEDに表示したい10進数の入力
output wire [6:0] segment_output // 各LEDへの出力.[0]がA,[6]がGのLEDに対応
);

logic [6:0] segment = 7'b00000000;
always_comb begin
case (decimal_number) // 10進数の入力に応じて各LEDへの出力を決定
4'd0: segment[6:0] = 7'b0111111;
4'd1: segment[6:0] = 7'b0000110;
4'd2: segment[6:0] = 7'b1011011;
4'd3: segment[6:0] = 7'b1001111;
4'd4: segment[6:0] = 7'b1100110;
4'd5: segment[6:0] = 7'b1101101;
4'd6: segment[6:0] = 7'b1111101;
4'd7: segment[6:0] = 7'b0000111;
4'd8: segment[6:0] = 7'b1111111;
4'd9: segment[6:0] = 7'b1101111;
default: segment[6:0] = 7'b0000000; // 0~9以外が入力されたときには何も表示しない
endcase
end

assign segment_output = segment;

endmodule