PS部分使用AXI-LITE去读取PL部分采样到的AD值,如果整个电路只包含一个AXI-lite IP,里面只含一个ADS7825的采样时序,那么PS读取到的AD值通过UART打印出来是正确的,但是另外又加入了一个DAC的AXI-lite IP后,读取到ADC的值就有时候会突然出现0,但是正确值占了大部分,ADC采用时序,XDC等都没有错误。以下是一些调试的图片信息。
主要程序部分如上面两张图,应该没什么大问题。
上面三张图是调试结果图,通过查看内存,发现内存块确实有时候会变为0,我一个AXI lite内存分配了64K,从0x43C0000到0x43C0FFFF,因为我整个IP只使用了4个32位寄存器,所以是不是最后两位为00都指向slv_reg0寄存器,那么为什么最后两位为00的内存空间值都是不一样的,我不太理解这一块内存是如何分配的,里面的值又是如何变动的。
还有我主要想知道为什么我会经常读到0,有什么办法可以解决,理论上ADC结果的data值应该始终是不会为0,即使时序出现错误的,内存区为什么会变0呢?