微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 关于RAM读写时序的问题

关于RAM读写时序的问题

时间:10-02 整理:3721RD 点击:
从一个单口RAM中读取数据出来,和其他数据累加后再写入,要求在2拍内完成
如果压缩到2拍,那必须要求第2拍的数据线上的数据开始是读出来的数据,后面是写入的数据,对不对呢?要如何实现呢?
一直不理解,数据线上的数据不会冲突嘛?
菜鸟一枚。求高人指点

怎么木有人说话呢?有什么想法都说下嘛~

两个周期内搞定read,add,write.add部分是否考虑全由combinational logic实现。在第一个周期的negative edge获取到ram的data,同时激活add 的combinational logic和write信号;并同时将数据输入切换为add的输出,在第二个周期的negative edge,RAM获取的应该是add的输出,这种方式对时序要求比较严格。
所以建议采用第二种方式,pipeline的方式来实现。我贴了个时序方面的图,由于是两个周期内的实现,所以你还能有其他种方式来实现你想要的。需要注意的是:第一个write应该是虚的,需要有ff的存储。



图片有些错误 最后一个周期的解释应该只有 read data3

没有这么复杂,数据总线和地址总线分别操作。
Q端数据总线输出到加法器的1端,直接用组合逻辑相加,加法器输出直接拉到ram的D端,没有任何时序器件。
地址总线第一个cycle为读地址,第二个cycle为写地址。
ram一般都有读写使能信号,这个信号也是第一个cycle读使能,第二个cycle写使能。
这样就完事儿了



    嗯,嗯最后就是按你这个时序图描述来实现的,读取2拍后写入,3q



    这样子也可以,就是时序有点紧张哈
   呵呵,谢谢

学习一下。

学习一下

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

网站地图

Top