意外比发送还简单。(当然,这里是简约到不能再简约的,相当于只是理想化的将串口通讯协议代码化了)
这个串口接收用串口发送的简单改改就行了。
直接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