新聞中心

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

        好用的Verilog串口UART程序

        作者: 時間:2010-06-20 來源:網絡 收藏

        ==========================================================================
        //-----------------------------------------------------
        // 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

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 巴林左旗| 荥经县| 长葛市| 于田县| 怀来县| 响水县| 石首市| 闽清县| 桂东县| 错那县| 克拉玛依市| 临颍县| 项城市| 延安市| 宽甸| 房产| 罗平县| 桐梓县| 永川市| 胶南市| 新巴尔虎左旗| 诏安县| 怀来县| 贵州省| 武平县| 论坛| 射洪县| 济源市| 大埔区| 安阳市| 万荣县| 安化县| 平陆县| 古丈县| 金秀| 积石山| 揭东县| 六枝特区| 德令哈市| 高雄县| 吕梁市|