新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Verilog串口UART程序

        Verilog串口UART程序

        作者: 時間:2012-03-25 來源:網絡 收藏

        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/149350.htm
        上一頁 1 2 下一頁

        關鍵詞: 程序 UART 串口 Verilog

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 万宁市| 利辛县| 德江县| 南岸区| 阿鲁科尔沁旗| 龙游县| 甘谷县| 讷河市| 永州市| 盐池县| 和龙市| 静宁县| 玉田县| 博罗县| 北碚区| 崇义县| 栖霞市| 咸宁市| 宁海县| 安达市| 凉山| 紫阳县| 石渠县| 章丘市| 德惠市| 广西| 防城港市| 北流市| 田林县| 锡林浩特市| 樟树市| 临潭县| 长汀县| 中超| 商丘市| 科技| 隆尧县| 拜泉县| 连云港市| 库车县| 曲麻莱县|