UART串口的接收代码verilog

该博客详细介绍了如何使用Verilog编写UART串口的接收代码,包括时序图、波特率、时钟频率的设置,以及从串行输入到并行输出数据的转换过程。通过检测下降沿、计数器和状态机来实现数据的正确接收,并提供了完整的Verilog模块代码。
摘要由CSDN通过智能技术生成

 根据自己画的接收时序图写代码如下

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值