module uart_test(
input sys_clk_p,
input sys_clk_n,
input rst_n,
input uart_rx,
output uart_tx
);
在模块uart_test中,定义了差分时钟输入脚,复位输入脚,数据接收输入脚和数据发送输出脚。
IBUFDS sys_clk_ibufds
(
.O (sys_clk),
.I (sys_clk_p),
.IB (sys_clk_n)
);
IBUFDS是差分输入缓冲,与专用时钟引脚相连的首级缓存。sys_clk_p和sys_clk_n是差分时钟输入引脚,sys_clk为缓冲时钟输出。
assign rx_data_ready = 1'b1;
表示rx_data_ready线设置为高电平。
always @(posedge sys_clk or negedge rst_n)
begin
if(rst_n == 1'b0)
begin
wait_cnt <= 32'd0;
tx_data <= 8'd0;
state <= IDLE;
tx_cnt <= 8'd0;
tx_data_valid <= 1'b0;
end
else
case(state)
IDLE:
state <= SEND;
SEND:
begin
wait_cnt <= 32'd0;
tx_data <= tx_str;
if(tx_data_valid == 1'b1 && tx_data_ready == 1'b1 &