?? uart_test.v
字號:
/********************uart_test*************************
**模塊名稱:uart_test
**功能描述:uart的測試頂層模塊
**************************************************/
module uart_test(
clock, //系統(tǒng)時鐘
RXD,TXD //uart接收與發(fā)送引腳
);
input clock; //系統(tǒng)時鐘(48MHz)
input RXD; //uart接收引腳
output TXD; //uart發(fā)送引腳
reg[7:0] senddata; //發(fā)送一個字節(jié)的數(shù)據(jù)緩存區(qū)
reg WR_R1,WR_R2,WR_R3; //控制產(chǎn)生一個發(fā)送的寫信號
wire [7:0]recdata; //接收緩存區(qū)
wire RI,TI,WR; //接收、發(fā)送中斷以及寫控制信號
wire clksend,clkrec; //發(fā)送和接收的時鐘頻率
always@(posedge clksend) //通過RI接收中斷產(chǎn)生一個寫信號,維持時間為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) //當(dāng)接收了一個數(shù)據(jù)后,把數(shù)據(jù)加1后發(fā)回PC機(jī),注意串口一個一個數(shù)據(jù)發(fā)
begin
senddata <= recdata+8'd1;
end
rec uartrec( //實例化一個uart接收模塊
.clk(clock),
.clkout(clkrec),
.Dataout(recdata),
.RXD(RXD),
.RI(RI)
);
send uartsend( //實例化一個uart的發(fā)送模塊
.clk(clock),
.clkout(clksend),
.Datain(senddata),
.TXD(TXD),
.TI(TI),
. WR(WR)
);
endmodule
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -