大哥如果方便的话,能否下一次,找个板子把引脚改一下,就OK了.看看灯点的亮不,总觉得是QUARTUS II哪个地方设置的不对导致片子不工作啊
我在家调试,有万用表,就是没有示波器,悲催啊,但我分析时钟应该是有的,之前我下载了一个这样的程序,运行是正常的
`include "gen_divd.v"
`include "uart_x.v"
module uart_x_top(
Resetb,
Clkin,
Txd
/*
//test
TxFinishTS,
XmitPlus,
TxClkTS,
Cnt,
TxData
*/
);
input Resetb,Clkin;
output Txd;
/*
//test
output TxFinishTS;
output XmitPlus;
output TxClkTS;
output [1:0] Cnt;
output [7:0] TxData;
*/
reg XmitPlus;
reg [7:0] TxData;
reg [3:0] ByteCnt;
reg [1:0] Cnt;
wire TxFinish;
wire TxClk;
defparam Gen_TxClk.divdFACTOR=174,Gen_TxClk.divdWIDTH=7;//分频出115200的波特率
gen_divd Gen_TxClk(.reset(Resetb),.clkin(Clkin),.clkout(TxClk));//端口名称关联
uart_x UartTx(.Bclk(TxClk),.Resett(Resetb),.Txd(Txd),
.XmitCmdp(XmitPlus),.TxdBuf(TxData),.TxDone(TxFinish));
always @ (posedge Resetb or posedge TxClk )
if(Resetb)
begin
ByteCnt<=4'd0;
Cnt<=2'b0;
XmitPlus<=0;
end
else//循环发送a-j,共10个字母
begin
Cnt<=Cnt+1'b1;
case(Cnt)
2'b00:
begin
XmitPlus<=1;
TxData<=8'h61+ByteCnt;
end
2'b01:
XmitPlus<=0;
2'b10:
begin
if(TxFinish)
begin
Cnt<=2'b0;
ByteCnt<=ByteCnt+1'b1;
if(ByteCnt>=9)
ByteCnt<=4'b0;
end
else
Cnt<=2'b10;
end
endcase
end
/*
assign TxFinishTS=TxFinish;
assign TxClkTS=TxClk;
*/
endmodule |