FPGA实验之串口接收

本文介绍了一种使用FPGA进行串口数据接收的方法,通过Verilog代码详细阐述了如何设置波特率、接收数据位、校验位和停止位。在ModelSim环境下进行了仿真验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

FPGA实验之串口接收

串口数据的接收采样在每个数据位的中间,这样能够采集到比较准确的数据。

(1)    建立工程

(2)    编写程序

module UART_receive(input CLK,RST,RXD,

                                            output Receive_done,Odd_data,

                                            output [7:0]Receive_data);

//parameter BPS9600=13'd5208; //每位数据传输时间为t=1/9600 s,周期T=1/50000000,计数值为t/T=5208

parameter BPS115200=9'd434;//每位数据传输时间为t=1/115200 s,周期T=1/50000000,计数值为t/T=434

reg [31:0]C1;

reg [7:0]ii;

reg H2L1,H2L2;

reg receive_done,odd_data;

reg [7:0]receive_data;

 

always @(posedge CLK or negedge RST)

       if(!RST)

              begin C1<=32'd0;ii<=0; receive_done<=0; receive_data<=8'b0; odd_data<=1'b0;end 

       else

              case(ii)

              0: if(!RXD) beginii<=ii+1;end

              1: if(C1==BPS115200)begin C1<=32'd0; ii<=ii+1; end //起始位,,没做处理,直接忽略

                     elseC1<=C1+1;

              2,3,4,5,6,7,8,9:begin

                     if(C1==BPS115200-1)begin C1<=32'd0; ii<=ii+1; end //接收数据位

     &

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值