用FPGA做东西往往需要进行在线调试,调试方法也有几种,最近我是使用串口实时监测接收引脚或者是寄存器上的数据,然后回传到PC机。在PC机上存储,并用matlab协助处理数据。最终还原串口接收到的数据,如果需要的话,还可以将数据转成二进制,并绘制出图像(也类似示波器中显示的图像)。相比其他调试方法,这么做的好处,不需要额外的芯片上的资源,而且记录信号的时间长度没有限制,至与采集精度可能稍为逊色一点,对于串口的传输速度,最快的能到1Mbps多已经边缘了,还不考虑传输对误码的影响,但是对于低速的一些设计还是可以的。
具体的,我使用115200bps的串口速度发送数据,然后在PC上用串口猎人接收,并将数据保存成TXT格式文本,完成后打开matlab,在mtalab中运行本程序即可。
由于FPGA串口程序不难,自己编写即可,需要注意的是串口发送和接收顺序(串口一般是由低到高发送),需要保证在PC上还原出的数据跟引脚或者是寄存器发送的数据顺序一致即可。
下面是matlab编写的代码部分,有兴趣的可以试一试,东西已经实测,没问题,效果图也附上(第一张为日光灯频率100Hz),第二张前一段是1K,后面是100HZ,使用matlab放大后及可看清。