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

📄 uart_tran.v.bak

📁 UART串口的传送verilog原程序
💻 BAK
字号:
module uart_tran (clk,reset,wr_en,data,data_out,complete,clk_equ);
input clk,reset,wr_en;
input [7:0] data;
output  data_out;
output complete;
output clk_equ;
reg[15:0] cnt;
reg [9:0]data_reg;
//reg [9:0]data_reg2;
reg complete;
reg data_out;
reg contral;
wire shift_done;
wire clk_equ;
reg [3:0] i;

parameter COUNT = 16'd3;	
parameter [2:0]
  idle=3'b000,
  start=3'b001,
  transition=3'b010,
  stop=3'b100;
       
/**************************************/
always@(posedge clk)										
begin
	if(clk_equ)
		cnt = 16'd0;
	else 
		cnt = cnt+1'b1;
end
assign clk_equ = (cnt == COUNT);
/**************************************/



always@(posedge clk or posedge reset)
begin
	if(reset)
	   data_reg<=10'b0;
	else	      //有数据写入缓存
	  begin
	    if(wr_en)
		 begin
		  data_reg = {1'b1,data[7:0],1'b0};	//读入数据,并把缓存组成一帧数据,10位
          contral=1'b1;
         end
        else
          begin
           if(complete)
           contral=1'b0;
          end      
	  end
end


always@(posedge clk or posedge reset)
     begin
      if(reset)
        begin
            data_out<=1;
            complete<=0;
			i<=4'h0;
        end
      else
        begin
        if(clk_equ)
           begin
            if(i<4'd10&&contral)
              begin
              data_out<=data_reg[i];
              i<=i+4'h1;
              complete<=0;
              end
            else
              begin
               i<=4'd0;
               complete<=1;
              end
           end
       end
     end









endmodule

⌨️ 快捷键说明

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