⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uart_rec.v.bak

📁 大幅噶是大法师父啊方式大法发生的发生的发生的发生的发达省份发
💻 BAK
字号:
module uart_rec(rst,baud_clk_16x,sin,dout,rd_n,drdy);input rst,baud_clk_16x,sin,rd_n;output [7:0] dout;output [0:0]drdy;reg [7:0] dout;reg [0:0] drdy;reg [3:0] read_bits_num;reg [3:0] clock_times;reg [7:0] buffer_reg;reg [0:0] in_message;reg [1:0] true;initialtrue=1;always @ (posedge baud_clk_16x,posedge rst,negedge rd_n)//////模块始终检测有关信号,以做不同的工作begin  if(rst)////模块复位    begin       drdy=0;       dout=8'bxxxxxxxx;       clock_times=0;       read_bits_num=0;    end/////复位结束   else    if(rd_n==0)         drdy=0; ///////////rd_n有效,请零drdy/////////////////////////////////////////////////////////////////////////????????else  else  if(drdy==0)   begin     case(read_bits_num)    4'd0:  /////一位都没读,开始检测开始信号。    begin        if(clock_times==0)/////检测信号是否为低电平             begin             in_message=sin;             clock_times=clock_times+1;             //dout[0]=in_message;//////////////////////////?????//////////////////////////////////////////             end         else              if(clock_times==8)//////确认是否为低电平                   begin                    if(in_message==0 && sin==0)                      begin                      read_bits_num=1;                      clock_times=0;                      end                    else  /////////发现不是低电平,则不能开始接受信息。继续检测。                      clock_times=0;                   end              else               clock_times=clock_times+1;     end    4'd1,  /////读第1位    4'd2,  /////读第2位    4'd3,  /////读第3位    4'd4,  /////读第4位    4'd5,  /////读第5位errors.    4'd6,  /////读第6位    4'd7,  /////读第7位    4'd8:  /////读第8位         begin         if(clock_times==4'b1111)            begin            buffer_reg[read_bits_num-1]=sin;           // dout[read_bits_num-1]=sin;////////////////////////////*****************???*******///////////////////////            read_bits_num=read_bits_num+1;            clock_times=0;            end         else            clock_times=clock_times+1;                        end    4'd9:  /////已经读完8位,开始检测结束信号。         begin         if(clock_times==4'b1111)            begin                        in_message=sin;            if(in_message==1)//////检测到结束信号               begin               dout=buffer_reg;               drdy=1;               clock_times=0;               end            else//////////////////未检测

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -