根据自己画的接收时序图写代码如下
module receive(
input sys_clk,
input rst_n,
input uart_rxd, //串行输入数据
output uart_done, //结束标志
output [7:0]uart_data //并行输出数据
);
wire uart_en; //使能信号
parameter bps=115200; //波特率
parameter clk_freq=50000000; //时钟频率
localparam cnt=434;
parameter sum=4340;
reg start_flag; //开始标志
reg rx_flag; //转换过程标志
reg [15:0]clk_cnt; //时钟信号计数
reg [3:0] rx_cnt; //数据计数
reg [15:0]cnt_sum; //为rx_flag计数
reg data_done; //结束标志 uart_done
reg [7:0]data; //uart_data
reg [7:0]dataout; //uart_data
wire signal_down; //下降沿标志信号
reg signal_delay_down; //uart_r