顶层模块:
modulemy_uart{
clk,rst_n,rsx_rx,
rsx_tx
};
input clk;//50M时钟
input rst_n;//复位信号低电平有效
input rsx_rx;//
output rsx_tx;
wire bps_start1,bps_start2; //声明发送、接收波特率启动信号
wire clk_bps1,clk_bps2; //声明中间采样位置
wire[7:0] rx_data;//数据信号
wire rx_int;//高电平有效,接收状态
//-----------------------------------------------------------------------
my_speed speed_rx( //例化接收波特率
.clk(clk),
.rst_n(rst_n),
.bps_start(bps_start1),
.clk_bps(clk_bps1)
);
my_rx uart_rx( //例化数据接收模块
.clk(clk),
.rst_n(rst_n),
.rsx_rx(rsx_rx),
.clk_bps(clk_bps1),
.bps_start(bps_start1),
.rx_data(rx_data),
.rx_int(rx_int)
);
//-----------------------------------
my_speed speed_tx( //例化发送波特率
.clk(clk),
.rst_n(rst_n),
.bps_start(bps_start2),
.clk_bps(clk_bps2)
);
my_tx uart_tx( //例化数据发送模块
.clk(clk),
.rst_n(rst_n),
.rsx_tx(rsx_tx),
.clk_bps(clk_bps2),
.bps_start(bps_start2),
.rx_data(rx_data),
.rx_int(rx_int)
);