刚开始学习FPGA,用的siga-16的xilinx的板子,在做串口发送实验的时候,按照教程代码,仿真串口发送单个字节的时序没有问题。
后面要写个连续发多个字节的代码,本来应该是蛮简单的,但就是收不到数据,奇怪的是,这个简单的程序使用ISE也仿真也有问题。
源代码如下:
- module test(clk,dataout,wrsig);
- input clk;
- output [7:0]dataout;
- output wrsig;
-
- reg [7:0]dataout;
- reg wrsig;
-
- reg [7:0]cnt;
-
- always @(posedge clk)
- begin
- if(cnt == 20)
- begin
- dataout <= dataout + 8'd1;
- wrsig <= 1'b1;
- cnt <= 8'd0;
- end
- else
- begin
- wrsig <= 1'b0;
- cnt <= cnt + 8'd1;
- end
-
- end
- endmodule
复制代码代码比较简单,就是每隔20个时钟周期,输出的dataout加1,然后wrsig输出一个脉冲。
但是这段代码在ISE怎么也仿真不出来,加的激励是20ns的时钟周期。如下图1:
调了好长时间也不知道原因,实在不相信是代码的问题,然后转用quartus仿真,可以得到期望的波形,如图2:
现在也想不出原因,特发帖请教。
此帖出自
小平头技术问答
一周热门 更多>