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

module top (
input wire clk, // 27MHzクロック入力
output wire [6:0] segment_output, // LED(A~G)への出力
output wire dot_output, // LED(DP)への出力(ここでは使用しない)
output wire [5:0] digit_output // 表示する桁の指定
);
localparam CLK_FREQ = 27_000_000;
localparam DIGIT_FREQ_HZ = 1_000;

assign dot_output = 1'b0;

// 各桁に表示する数字を指定
wire [3:0] decimal_number[6] = {4'd0, 4'd1, 4'd2, 4'd3, 4'd4, 4'd5};

// 表示する桁を指定するモジュール
// 一定の間隔で次の桁へ移動する
wire [3:0] digit_count;
digit_driver #(
.CLK_FREQ (CLK_FREQ),
.DIGIT_FREQ_HZ (DIGIT_FREQ_HZ)
) digit_driver_i (
.*
);

// decimal_numberの値をsegment_outputをへ変換するモジュール
segment_driver segment_driver_i (
.decimal_number(decimal_number[digit_count]), // どの桁を表示するかをdigit_countで指定
.*
);

endmodule