最近做一个项目遇到的一些问题:
1、SDRAM 通讯
SDRAM 通讯模块在以前调试使用过全部正常但是在加入这个工程以后出现如下情况: 工程在加入reveal以后工作正常 ,如果不加入reveal文件SDRAM数据 就有一部分不正确:
如:数据是0X34读出是0XF4或0X74等。总是有几位数据不正确。后经分析是SDRAM 模块在加入工程以后不限长度变长使数据总线变长是数据在输出时读取数据时数据线不稳定造成。解决方法:a、调整 数据总线约束b、改变SDRAM的CLK延时一定的相位角度 事实上我调整了输出7/8*360的相位角以后读取数据完全正确。是否添加reveal工程运行都正确了。
2、与ARM 通讯
该工程在与ARM 通讯时 收到ARM发送来的数据 有部分正确 有部分不正确。比如写:某个地址为1 但是经常出现 写的不是1 是0 等。
分析如下:FPGA 与ARM使用总线方式通讯 ARM 通讯频率是100/14M =不到10M,而 FPGA使用的是100M 这时无法判断 ARM通讯时什么时候 进行CS 和WR RD 因此为了稳定通讯在检测到CS 和WR 或RD信号 等待1,2,周期以后在进行通讯(主要是写WR信号,RD信号影响不大)。其实就是等数据线在ARM 控制线稳定了在读取ARM歇过来的数据数据。