新聞中心

        好用的Verilog串口UART程序

        作者: 時(shí)間:2010-06-20 來(lái)源:網(wǎng)絡(luò) 收藏

        if (!rx_busy !rx_d2) begin
        rx_busy = 1;
        rx_sample_cnt = 1;
        rx_cnt = 0;
        end
        // Start of frame detected, Proceed with rest of data
        if (rx_busy) begin
        rx_sample_cnt = rx_sample_cnt + 1;
        // Logic to sample at middle of data
        if (rx_sample_cnt == 7) begin
        if ((rx_d2 == 1) (rx_cnt == 0)) begin
        rx_busy = 0;
        end else begin
        rx_cnt = rx_cnt + 1;
        // Start storing the rx data
        if (rx_cnt > 0 rx_cnt 9) begin
        rx_reg[rx_cnt - 1] = rx_d2;
        end
        if (rx_cnt == 9) begin
        rx_busy = 0;
        // Check if End of frame received correctly
        if (rx_d2 == 0) begin
        rx_frame_err = 1;
        end else begin
        rx_empty = 0;
        rx_frame_err = 0;
        // Check if last rx data was not unloaded,
        rx_over_run = (rx_empty) ? 0 : 1;
        end
        end
        end
        end
        end
        end
        if (!rx_enable) begin
        rx_busy = 0;
        end
        end

        // TX Logic
        always @ (posedge txclk or posedge reset)
        if (reset) begin
        tx_reg = 0;
        tx_empty = 1;
        tx_over_run = 0;
        tx_out = 1;
        tx_cnt = 0;
        end else begin
        if (ld_tx_data) begin
        if (!tx_empty) begin
        tx_over_run = 0;
        end else begin
        tx_reg = tx_data;
        tx_empty = 0;
        end
        end
        if (tx_enable !tx_empty) begin
        tx_cnt = tx_cnt + 1;
        if (tx_cnt == 0) begin
        tx_out = 0;
        end
        if (tx_cnt > 0 tx_cnt 9) begin
        tx_out = tx_reg[tx_cnt -1];
        end
        if (tx_cnt == 9) begin
        tx_out = 1;
        tx_cnt = 0;
        tx_empty = 1;
        end
        end
        if (!tx_enable) begin
        tx_cnt = 0;
        end
        end

        endmodule

        本文引用地址:http://www.104case.com/article/151787.htm

        上一頁(yè) 1 2 下一頁(yè)

        關(guān)鍵詞: 程序 UART 串口 Verilog

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 香港| 简阳市| 五常市| 吉安市| 五指山市| 苍南县| 古浪县| 彭山县| 南昌市| 保亭| 金门县| 罗田县| 大渡口区| 林芝县| 专栏| 屯留县| 阿拉善盟| 鄢陵县| 竹溪县| 龙泉市| 怀仁县| 怀安县| 邢台县| 凉山| 色达县| 福鼎市| 彩票| 金川县| 黑龙江省| 邮箱| 南充市| 依兰县| 宜君县| 吴江市| 称多县| 阳原县| 滨州市| 米易县| 天峻县| 乐亭县| 丰城市|