求教:提升时钟频率后的时序问题,加入signaltap后编译报警,时序紊乱
在用3C5做NAND Flash 控制器,在写好的控制器外部另加了一个data_src.v模拟数据源来测试连续的写操作。数据源和控制器有一个512字节的FIFO来缓存数据。
外部时钟24MHz,通过PLL的c0和c1分别为数据源和控制器提供时钟
c0 6MHz,c1 24MHz
即数据源以6M的速度输出数据,而控制器在FIFO非空时以24MHz读取并向Flash写入时,一切正常。
c0 8MHz,c1 32MHz
每次运行时Signaltap捕捉到的时序不太一样,有以下四种情况,1.jpg为正确时序。
http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_510699.JPG
正确 (原文件名:1.JPG)
http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_510700.JPG
WE与CLE的沿对齐了 (原文件名:2.JPG)
http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_510701.JPG
送数据时没有WE (原文件名:3.JPG)
http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_510702.JPG
送地址时没有WE (原文件名:4.JPG)
频率再提高时(最终要求c0 24Mhz c1 80Mhz),会报Can't achieve timing requirement Clock Setup
查看有问题的路径发现都是与signaltap信号相关的。禁用signaltap后则不报错,但我也没法调试了。在网上找到Altera的AN280,根据它的方法将signaltap部分加入LogicLock Region,但问题依旧,报错的路径一条都没少。
FPGA用得不多,感觉很棘手,不知问题出在哪里,如何解决。望高手指点一二,万分感谢!!! 已调试通过。代码改来改去,signaltap中的波形总有问题。昨晚发现是采样时钟误选成外部的24M时钟了。后来把控制器频率提到80M,也没再出现时序违规。还是不太清楚原因,可能跟后来精简了代码有关系。 回复【1楼】sankesa 谢谢啊
-----------------------------------------------------------------------
signaltap为什么不能选外部时钟作为采样时钟啊,应该不会报错吧
页:
[1]