关于FPGA内部RAM的使用
先从RAM里读取390个数据,再对这些数据进行处理,然后再写入RAM
现在遇到的问题是,写入数据的过程中,仿真结果是,波形都没有问题,和时序一样,但是看RAM里面的数据就有错误的,不是全错,有写地方错,大部分是对的:比如下面的65个写入的数据,红色的是错误的
29 94 62 62 62 62 62 62 62 62 62 62 62
62 62 62 62 62 62 62 62 62 62 61 62 62
36 90 37 93 34 58 24 29 29 28 28 30 5
35 33 33 33 33 33 34 35 33 35 35 34 34
33 33 33 34 34 34 34 34 34 33 34 33 38
请高手帮忙看看有可能是哪些原因导致,谢谢
顺便说一下,我仿真过单独写RAM的程序,这时候数据是对的,所以时序上肯定不会有问题,再说数据也不是全错,再次谢谢
有代码,和实际测量条件才能下结论
重新把数据读出来看看,排除是否看错地方了
认为应该是没有满足ram时序要求
你对问题的描述太含糊了,最好具体点。
ram是否读写冲突,地址是否出现负数?这些都有可能
顺便说一下,我仿真过单独写RAM的程序,这时候数据是对的,所以时序上肯定不会有问题,再说数据也不是全错,再次谢谢
如果是这样,可以做下后仿,看下时序仿真是不是对的就ok了
像这样子,有一部分数据对一部分不对的,就很有可能是时序上不妥。虽然单独仿过,但是,还是看一下是否一样吧。个人意见。
再进行时序仿真检查下
(⊙o⊙)…代码在朋友的电脑上,我手头现在没有,至于实测么,由于朋友把板子搞废掉了,所以也实测不了,本来我也是想先测了再说的……谢谢
谢谢,但是不会看错地方的,因为我就只写了从地址0开始的65个存储单元,其实这个让我费解的是,仿真的波形上都是没有问题的,我把RAM的数据线接出来看了
谢谢,可是只是少量的数据错误啊,如果不满足时序要求的话应该不会这样吧
谢谢,不会有读写冲突的,首先RAM有读写的控制信号,高的时候写,低的时候读。其次,我是先一次性读了390个,然后处理(130个时钟周期),然后再写入的,也就是说读和写之间间隔了130个时钟周期
谢谢,我做的是时序仿真
我在用xilinx的fpga时也遇到过这种问题,最后证明是timing问题
是指时序问题么,我再看看吧,虽然我一直认为没有错,但是也找不到其他合理的原因了,谢谢
个人认为也是 时序问题,是不是边沿没有被时钟检查到,漏了,把检查边沿的时钟频率弄宽点,试下
不知道是什么速度的读写,如果上200M可能是Timing问题
