module general_project (
    input wire clk,
    input wire rst_n,
    // UART
    input wire rx_M2,
    output wire tx_G1,
    // 数码管
    output wire [5:0] SEL,
    output wire [7:0] DIG,
    // 点阵
    output wire matrix_K6,
    // 按键
    input wire key_F8,
	// LED
	output [3:0] led
);
//// tx
wire start;
//wire [7:0] data_tx;
//wire done_tx;
//// rx
//(* keep *)wire [7:0] data_rx;
//wire done_rx;
//
//assign data_tx = num_to_display;
//assign start = done_rx;
// 数码管
reg [19:0] num_to_display;
// always @(posedge clk or negedge rst_n) begin
//     if (!rst_n)
//         num_to_display <= 20'd0;
//     else if (done_rx)
//         num_to_display <= data_rx;
// end

always @(posedge clk or negedge rst_n) begin
    if(!rst_n)
        num_to_display <= 0;
    else if(start)
        num_to_display <= num_to_display + 1;
end


/*************************例化**************************/
// UART
// tx
// tx tx_1(
//     // input
//     .clk(clk),
//     .rst_n(rst_n),
//     .start(start),
//     .data_tx(data_tx),
//     // output
//     .tx_G1(tx_G1),
//     .done_tx(done_tx)
// );
// // rx
// rx rx_1(
//     // input
//     .clk(clk),
//     .rst_n(rst_n),
//     .rx_M2(rx_M2),
//     // output
//     .data_rx(data_rx),
//     .done_rx(done_rx)
// );
// 数码管
LED_tube LED_tube_1(
    // input
    .clk(clk),
    .rst_n(rst_n),
    .num_to_display(num_to_display),
    // output
    .SEL(SEL),
    .DIG(DIG)
);
// 点阵：自动输出笑脸
LED_matrix LED_matrix_1(
    // input
    .clk(clk),
    .rst_n(rst_n),
    // output
    .matrix_K6()
);
// 按键
key_filter key_filter_1(
    // input
    .sys_clk(clk),   
    .sys_rst_n(rst_n),   
    .key_in(key_F8),
    // output
    .key_flag(start)
);
endmodule