www.pudn.com > UART.zip > uart_test.v, change:2007-07-14,size:1405b


/********************uart_test************************* 
**模块名称:uart_test 
**功能描述:uart的测试顶层模块 
**************************************************/ 
module uart_test( 
				clock,					//系统时钟 
				RXD,TXD					//uart接收与发送引脚 
				); 
input clock;					 		//系统时钟(48MHz) 
input RXD;								//uart接收引脚 
output TXD;								//uart发送引脚 
 
reg[7:0] senddata;						//发送一个字节的数据缓存区 
reg WR_R1,WR_R2,WR_R3;					//控制产生一个发送的写信号 
 
wire [7:0]recdata;						//接收缓存区 
wire RI,TI,WR;							//接收、发送中断以及写控制信号				 
wire clksend,clkrec;					//发送和接收的时钟频率 
 
 
wire clk100M; 
 
always@(posedge clksend)				//通过RI接收中断产生一个写信号,维持时间为1个Clk	 
begin 
	WR_R1 <= RI; 
	WR_R2 <= WR_R1; 
	WR_R3 <= WR_R2; 
end 
 
assign WR = (~WR_R3)&(WR_R2)&(WR_R1);	//控制写信号 
 
 
 
always@(posedge RI)						//当接收了一个数据后,把数据加1后发回PC机 
begin 
   	senddata <= recdata+8'd1; 
end 
 
 
rec   uartrec(							//实例化一个uart接收模块 
            .clk(clock), 
            .clkout(clkrec), 
            .Dataout(recdata), 
            .RXD(RXD), 
            .RI(RI) 
            ); 
 
 
send   uartsend(						//实例化一个uart的发送模块 
              .clk(clock), 
              .clkout(clksend), 
              .Datain(senddata), 
              .TXD(TXD), 
              .TI(TI), 
             . WR(WR) 
              ); 
 
endmodule