微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 请教一个系统时钟频率的很怪异的问题。

请教一个系统时钟频率的很怪异的问题。

时间:10-02 整理:3721RD 点击:
ISE14.1下做了个工程,时序约束到100Mhz,implement后的时序分析也正常。但是实际只能工作到30MHZ,再高数据就有错误了。
各位大侠遇到过类似的问题么?怎么处理的?谢谢

数据怎么产生的,从FPGA IO进来的吗?有别的异步时钟吗?有的时候自己没做到位,工具误认为有其他时钟,同步设计搞成了异步,导致没有约束好;有时候io delay没加上。

时钟从专用时钟引脚进来,经过DCM分成2个时钟,一个作为系统时钟,一个作为串口的时钟。
时钟约束是约束的时钟引脚的时钟。数据是通过串行口进来的,然后送给RAM,然后开始处理RAM的数据

只能工作到30M的表现是什么呢?

时钟超过30M,结果的数据就错误了。

检查下约束文件,是不是不严谨或者不完整。看看数据交互的接口,是否异步

这个描述不详细,也不严谨。先不说你的时序约束是否完整。在外部信号有毛刺的情况下,系统提高频率采到毛刺也是能导致数据错误的。数据错了,到底是采进来就错了,还是从RAM出来处理的时候错了?

    支持大牛的说法!

有很多种可能性:
1. FPGA时钟和外部数据时钟不同步,你看到的30MHz没出错可能是暂时现象
2. IOdelay没用上,数据在IO口进入时建立或保持时间不够
3. 如果功能仿真能够上100MHz,而实际板上不能,请查看时序报告关于数据信号那块有没有问题,是否需要加时序约束。

顺着这位大哥的问题 我想问下IO delay一般都是哪里知道具体是要约束到多少的呢?

我是小编,用chipscope查看串口进入到BRAM中的数据是正确的,但对BRAM中数据进行运算后结果就不对了,正常情况下结果数据的数值及个数是固定的,但是实际每次运行后结果的数值及数量都随机。另外重新用ISE在时序约束为30M的情况下综合了一次工程,发现新的bitstream下载后结果有错,也就是说每次综合后实现的结果还不一样,不知是为什么?

先检查RAM读写,后仿看看。把你的程序精简到最小,但是又能复现错误的程度。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top