UART串口的接收代码verilog

/uart_rxd延迟信号。if(clk_cnt==cnt/2) begin //判断系统时钟计数器计数到数据位中间。//结束标志 uart_done。//寄存数据位最低位。//寄存数据位最高位。//为rx_flag计数。input uart_rxd, //串行输入数据。output [7:0]uart_data //并行输出数据。output uart_done, //结束标志。根据自己画的接收时序图写代码如下。
摘要由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_rxd延迟信号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值