📄 diag.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 + -