吃饱没事做之——用Verilog实现串口接收

意外比发送还简单。(当然,这里是简约到不能再简约的,相当于只是理想化的将串口通讯协议代码化了)

这个串口接收用串口发送的简单改改就行了。

直接rx为0的时候,就进入读的状态。8次之后就回到stop状态。之后继续等待数据的到来。
但ok信号好了的时候,数据就是完全读好的状态。

module uart_rx(
    input wire clk,
    input wire rst_n,
    output reg [7:0] data,
    input reg rx,
    // input  wire fork_flag,
    output wire ok
);
localparam init  = 'b0011;
localparam start = 'b0001;
localparam stop  = 'b0010;
localparam read = 'b0000;

reg [3:0]staus;

// wire data_flag;
// reg [7:0]data_d1;
// reg write_flag;
// always @(posedge clk or negedge rst_n)
// begin
//     if(!rst_n)
//     begin
//         data_d1 <= 8'b0;
//         write_flag <= 0;
//     end
//     else if(!data_flag)
//     begin
//         if(data_d1 != data)
//         begin
//             write_flag <= 1;
//         end
//         else
//         begin
//             write_flag <= 0;
//         end
//     end
//     else
//     begin
//         data_d1 <= data;
//     end
// end

reg [3:0] bit
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值