实验任务:利用串口实现FPGA每秒发送一次“HELLO 2020”到上位机,
但是实际的运行效果如图1所示。
观察图1,发现H没有发送到上位机,怎么办呢?
(1)通过SIGNALTAP调试工具看看测试结果,没有看到,放弃这种调试方法;
(2)通过MODELISIM看看仿真结果,打开软件,测试波形:如图2所示。

可以看到:在发送H的时候只给了一个CLK时钟(20ns),这样根本无法发送‘H’状态机就进入了发送‘E’的状态了,重新看看程序, 截图如图4所示。

经过分析,主要问题是,在FIFO发送的状态(S_RD_SEND)的时候,UART_TX_READY的信号为1,即没有启动串口发送。解决办法:应该在S_RD_SEND前一个状态启动发送,修改程序为如图5所示。

图 5
仿真波形如图6所示,从图6可以看出H字母可以发送,并且在S_RD_FIFO状态开始UART_TX_DTAT_EN为高电平,启动发送,在S_RD_SEND 状态UART_TX_READY为低电平,发送状态继续持续。


最终下载测试的实验效果为图7所示

浙公网安备 33010602011771号