微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 寄存器求教

寄存器求教

时间:10-02 整理:3721RD 点击:
本人设计了一个寄存器存储数据,当存满后,我会从后往前用寄存器的数据,同时我还要从新往寄存器里写东西,这时候我用一段数据后发现数据已经变了,现在不知道怎么解决,请高手指点,谢谢!

仿真有没有问题?有没有读写冲突,或者还没读就被写覆盖了

1。对写寄存器进行控制
2。做成类似fifo的东西

没读就被写覆盖了

其实就是类似FIFO的,但是是连续写连续读的,而且我是从寄存器后面开始读,导致前面数据要用的时候被覆盖了

没读就被写覆盖了

为什么一定要在临界空满状态下操作FIFO呢?你可以利用其他功能来控制FIFO,比如计数器或者通过读写信号控制写FIFO满

我的问题主要是先进后出,导致数据被覆盖掉了

lz说的应该是栈吧?先进后出。
又重看了一遍。好像也不是。你的意思是不是要先存一部分数据。然后从后面读出来。同时还有数据过来。也要求这样的读写顺序?像是交织。
如果是这样的话就用乒乓操作就行了。

应该是,可是我不懂栈

用两组寄存器,乒乓操作应该可以的

那乒乓操作的地址怎么变化呀

或者设计个环形缓冲器

不过非常感谢呀

先进后出不就是后进先出吗,就是栈啊。 假设你的设计是先进的数据存在低地址,首先为寄存器保存一个地址指针指向寄存器的最低地址,写数据的时候写到指针指向的地址,然后指针自增1。读数据的时候指针自减1,然后读出指针地址里的数据。当然你要做一些额外的控制,比如栈的空标识和满标识。

读写要控制好,不要读穿也不要写穿了

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

网站地图

Top