⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 diag.v

📁 清华大学verilog hdl源码例子
💻 V
字号:
//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
//                                                       ;;
//              ICDIY - 开放矽智财                       ;;
//                                                       ;;
//      矽智财名称      : RS-232串列介面测试             ;;
//      程式档名称      : diag.v                         ;;
//      实验板平台      : OPEN FPGA 3.0                  ;;
//      作者            : Albert Hu (albert@icdiy.com)   ;;
//                                                       ;;
//      (C) Copyright 2002, All Rights Reserved          ;;
//                                                       ;;
//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

// 月/日/年     历史记录
// 13/05/03     开始

module diag(
        reset, clock,             // 重置讯号与系统时脉
        led,		          // 使用FPGA 4.0的LED segment
        int_rd, int_wr,           // 内部读写控制讯号
        int_rx, int_tx,            // RS-232的中断讯号       
        int_data_in,int_data_out
);

//.........................................................

input           reset, clock;
output  [7:0]   led;

input  [7:0] int_data_in;
output [7:0] int_data_out; 

wire   [7:0] int_data_in;
wire   [7:0] int_data_out;

input           int_rx, int_tx;
output          int_rd, int_wr;

//*********************************************************
//                 回应RS-232串列介面
//*********************************************************
// 读取RS-232串列介面接收到的资料

reg     [7:0]   rx_data;
reg             int_rd;

always @( posedge clock or posedge reset )
        if( reset )     int_rd <= 0;
        else            int_rd <= int_rx;

always @( posedge clock or posedge reset )
        if( reset )             rx_data <= 8'b0;
        else if( int_rd )       rx_data <= int_data_in;//data


wire  [7:0]led;
assign led=rx_data;


// 回应RS-232串列介面接收到的资料..........................

reg             int_wr;
reg             int_rd_q;

always @( posedge clock or posedge reset )
        if( reset )     int_rd_q <= 0;
        else            int_rd_q <= int_rd;

wire            echo_wr = int_rd_q & ( ~int_rd );
assign int_data_out = ( int_wr ) ? rx_data : 8'hzz;//8'hzz; //data

always @( posedge clock or posedge reset )
        if( reset )     int_wr <= 0;
        else            int_wr <= echo_wr;

//*********************************************************

endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -