Page 289 - 3-2
P. 289

reg [15:0]clk_count;
                    reg [7:0]tx_reg;
                    reg tx_empty;
                    reg [3:0]tx_cnt;
                    reg uart_txd;
                    reg [7:0]sw_buff;
                    reg s_cnt = 0;
                    reg [7:0]string[1:0];
                    reg [30:0]rst_cnt;
                    reg rst_flag;


                    parameter BAUD_clk = 5208;


                    always @ (posedge clk, negedge reset)
                    if(!reset) begin string[0]<=8'h00; string[1] <= 8'h00; end
                    else
                    begin
                                    string[0] <= data[1];
                                    string[1] <= data[0];
                    end
                    always @(posedge clk, negedge reset)
                    if(!reset) begin clk_count <=0; clk_uart <=0; end
                    else
                    begin
                            if(clk_count == BAUD_clk-1)
                            begin
                                    clk_count<=0;
                                    clk_uart<=1;
                            end
                            else
                            begin
                                    clk_count<=clk_count+1;
                                    clk_uart<=0;
                            end
                    end


                    always @ (posedge clk, negedge reset) //tx_cnt
                    if(!reset) tx_cnt <=0;
                    else
                    begin
                            if(clk_uart==1)
                            begin
                                    if(!tx_empty)
                                    begin
                                            if(tx_cnt==9)   tx_cnt <=0;


                                                         - 289 -
   284   285   286   287   288   289   290   291   292   293   294