使用Verilog代码编写的串口接收程序:
数据位8位,停止位1位,校验位没有,流控没有
波特率由波特率模块生成
串口时序大致如下图所示:
module uart_recv(GClk,clk_bps,reset,rx_en,Rxd,datain,rx_ok);
input GClk,clk_bps,reset,rx_en,Rxd;
output [7:0]datain;
output rx_ok;
//neg_rx:__/\______________________________
//rx_ok:_________________________________/^\_
//rx_en:^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//RxAv:____/^^^^^^^^^^^^^^^^^^^^^^^^^^^^\___
wire clk_bps;
reg [7:0]data;//接收数据缓存
reg [7:0]data_temp;
reg