📄 fpga_40xrs232.v
字号:
//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
// ;;
// 开放矽智财 ;;
// ;;
// 矽智财名称 : FPGA 4.0的RS-232串列介面测试 ;;
// 程式档名称 : fpga_40RS232.v ;;
// 实验板平台 : OPEN FPGA 4.0 ;;
// ;;
// ;;
// (C) Copyright 2002, All Rights Reserved ;;
// ;;
//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
// 月/日/年 历史记录
// 05/15/03 开始
module fpga_40RS232( reset1,CLK, segout, CTS, RTS, RD, TD );
input reset1; // 以按键开关S1做为重置讯号输入
input CLK; // 以512KHz时脉做为系统时脉输入
input CTS, RD; // RS-232的输入
output RTS, TD; // RS-232的输出
output [7:0] segout; // 显示收到的RS-232资料
wire S1= reset1;
wire [7:0]LED;
//****************除频电路********************************
reg [2:0]div;
always@(posedge S1 or negedge CLK) //12M
begin
if(S1) div=0;
else
div=div+1'b1;
end
wire CLK1 = ( div == 2'd2 ); //1.5MHz for 19200 ok
//*********************************************************
// RS-232串列介面控制单元
//*********************************************************
wire int_rd, int_wr;
wire int_rx, int_tx;
wire [7:0] s_data_out;
wire [7:0] s_data_in;
serial serial(
.reset( S1 ), .clock( CLK1 ),
.data_out( s_data_out ),.data_in( s_data_in ),
.rd( int_rd ), .wr( int_wr ),
.int_rx( int_rx ), .int_tx( int_tx ),
.rx( RD ), .tx( TD ), .rts( RTS ), .cts( CTS )
);
diag diag(
.reset( S1 ), .clock( CLK1 ), .led( LED ),
.int_data_out( s_data_in ),.int_data_in( s_data_out ),
.int_rd( int_rd ), .int_wr( int_wr ),
.int_rx( int_rx ), .int_tx( int_tx )
);
//.........................................................
wire [7:0] segout;
assign segout[7:0] = reset1 ? 8'b01010101 : LED[7:0];
//*********************************************************
// 显示器部分
//*********************************************************
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -