调试sii1161和sii164通过SSRAM(cy7c1470)缓存数据来输入输出DVI信号,调试过程中发现问题如下:
(1)连接所有module后,显示器无信号,测量ssram和sii164发现都没有时钟信号,最初怀疑时钟IP核有问题,但是只保留sii1161的module并注释掉所有其他module后,时钟信号正常,逐步增加module,发现两个ssram同时工作时时钟信号异常。经过检查发现quartus中的如下语句没有按照我的本意执行:
ssram1_rw <= ~ssram1_rw;
ssram2_rw <= ~ssram2_rw;
并将两个reg在复位时的值置为0和1;但是在运行过程中两个信号并没有取反,重新建立模型试验此功能,并将程序改为
ssram1_rw <= ~ssram1_rw;
ssram2_rw <= ssram1_rw;
两个reg复位值均为0,再次运行,两个信号取反正常。
(2)module运行过程中还发现两个ssram的地址线递增与程序不符,程序中地址线递增为1,原时钟信号为148.5MHz,通过PLL将27M晶振倍频实现(11,2)。考虑可能是由于时钟过快造成,将PLL倍频取消,时钟为27M时地址递增正常。可以基本断定是由于频率过高引起,下一步考虑时间约束来解决此问题。
(3)module运行过程中发现数据线仅为0或者1,暂未发现原因。