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

📄 tx.v

📁 FPGA上实现UART串口原程序
💻 V
字号:
module tx(clk,tx,data,txok,txready);
    input clk;
    output tx,txready;
    input[7:0] data;
    input txok;

	 reg tx,txclk;
    reg txready;
	 reg[3:0] bitpos;	 
  	 reg[1:0] state;
	 reg[3:0] cnt;
	 reg[10:0] count;
	 
	 wire[10:0] databuf;
	 parameter idle=1,txrun=2;
  
	 assign databuf={1,1,data,0}; 

   always @(posedge clk)
   begin
    if(count==325) begin
      count<=0;
	   txclk<=1; 
	 end
    else	 begin
      count<=count+1;
	   txclk<=0;
    end 
   end 

  always @(posedge txclk)  //发送
  begin
   case(state)
	idle: begin
	         txready<=1;
	        if(txok==0)  begin
			    cnt<=0;
			    state<=idle;
				 tx<=1;	   end
			   else   begin 
				  state<=txrun;
				  bitpos<=0; end
          end
   txrun: begin  	
				  txready<=0;
			  if(cnt==15) begin
			    cnt<=0;
	          tx<=databuf[bitpos];
			    bitpos<=bitpos+1;
			    if(bitpos==10)  begin
			      bitpos<=0;
				   state<=idle;
             end
           end
			  else  cnt<=cnt+1;
			  end
    default: state<=idle;
    endcase
   end    
    
endmodule

⌨️ 快捷键说明

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