新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > Verilog串口UART程序

        Verilog串口UART程序

        作者: 時間:2012-03-25 來源:網(wǎng)絡 收藏

        ==========================================================================
        //-----------------------------------------------------
        // Design Name : uart
        // File Name : uart.v
        // Function : Simple
        // Coder : Deepak Kumar Tala
        //-----------------------------------------------------
        module uart (
        reset ,
        txclk ,
        ld_tx_data ,
        tx_data ,
        tx_enable ,
        tx_out ,
        tx_empty ,
        rxclk ,
        uld_rx_data ,
        rx_data ,
        rx_enable ,
        rx_in ,
        rx_empty
        );
        // Port declarations
        input reset ;
        input txclk ;
        input ld_tx_data ;
        input [7:0] tx_data ;
        input tx_enable ;
        output tx_out ;
        output tx_empty ;
        input rxclk ;
        input uld_rx_data ;
        output [7:0] rx_data ;
        input rx_enable ;
        input rx_in ;
        output rx_empty ;

        // Internal Variables
        reg [7:0] tx_reg ;
        reg tx_empty ;
        reg tx_over_run ;
        reg [3:0] tx_cnt ;
        reg tx_out ;
        reg [7:0] rx_reg ;
        reg [7:0] rx_data ;
        reg [3:0] rx_sample_cnt ;
        reg [3:0] rx_cnt ;
        reg rx_frame_err ;
        reg rx_over_run ;
        reg rx_empty ;
        reg rx_d1 ;
        reg rx_d2 ;
        reg rx_busy ;

        // RX Logic
        always @ (posedge rxclk or posedge reset)
        if (reset) begin
        rx_reg = 0;
        rx_data = 0;
        rx_sample_cnt = 0;
        rx_cnt = 0;
        rx_frame_err = 0;
        rx_over_run = 0;
        rx_empty = 1;
        rx_d1 = 1;
        rx_d2 = 1;
        rx_busy = 0;
        end else begin
        // Synchronize the asynch signal
        rx_d1 = rx_in;
        rx_d2 = rx_d1;
        // Uload the rx data
        if (uld_rx_data) begin
        rx_data = rx_reg;
        rx_empty = 1;
        end
        // Receive data only when rx is enabled
        if (rx_enable) begin
        // Check if just received start of frame


        上一頁 1 2 下一頁

        關鍵詞: 程序 UART 串口 Verilog

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 德阳市| 修武县| 东源县| 铜山县| 上林县| 民权县| 霍林郭勒市| 黄龙县| 芦山县| 奎屯市| 交城县| 项城市| 永州市| 丹棱县| 富顺县| 剑河县| 聂拉木县| 那曲县| 米泉市| 沐川县| 隆子县| 茶陵县| 年辖:市辖区| 河曲县| 霍林郭勒市| 新巴尔虎左旗| 嘉鱼县| 桐乡市| 达尔| 金乡县| 扎赉特旗| 嘉峪关市| 平南县| 房产| 静安区| 资兴市| 博白县| 观塘区| 邯郸市| 肥西县| 台前县|