1)串口模块信号波形设计如下图:
参考代码:
`define SIM
module uart_rx(
input clk ,
input rst_n ,
input rx232_rx ,
output reg rdy,
output reg [7:0] rx_data
);
`ifndef SIM
localparam BAUD_CNT = 5208 ;
`else
localparam BAUD_CNT = 56 ; //如果仿真则使用这个参数
`endif
reg rx_ff0;
reg rx_ff1;
reg rx_ff2;
reg rx_flag ;
reg [12:0 ] cnt0 ;
reg [3:0 ] cnt1 ;
reg bit_flag ;
reg [3:0] cnt3;
wire add_cnt1 ;
wire end_cnt1 ;
wire neg_flag ;
wire add_cnt0 ;
wire end_cnt0 ;
always @(posedge clk or negedge rst_n)begin
if(rst_n==1'b0)begin
rx_ff0 <= 0;
rx_ff1 <= 0;
rx_ff2 <= 0;
end
else begin
rx_ff0 <= rx232_rx ;
rx_ff1 <= rx_ff0 ;
rx_ff2 <= rx_ff1 ;
end
end
assign neg_flag = rx_ff2==1&&rx_ff1==0;
always @(posedge clk or negedge rst_n)begin
if(!rst_n