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

内存读写

时间:10-02 整理:3721RD 点击:
请问各位 内存读得时候 我可以同时读不同地址的数据吗?例如 if(read)
          data_out <= memory[addr];
我可以
          data_out0 <= memory[0];
          data_out1 <= memory[1];
          data_out2 <= memory[2];
          data_out3 <= memory[3];吗?
如果可以,但是一个memory 只有一个输出口 请问怎么安排 data_out0,1,2,3。
多谢大家

不行,因为只有一个输出,时序上是不能实现的。



   那可不可以串转并这样的 always @ (posedge clk)                                       if(rst)
                                        cur0 <=0;
                                        cur1 <=0;
                                        cur2 <=0;
                                        cur3 <=0;
                                     else
                                        cur0 <= data_out;
                                        cur1 <= cur0;
                                        cur2 <= cur1;
                                        cur3 <= cur2;

取决于你的内存是什么样了,如果是双口的,就可以。



   并串转换可以试试

学习学习!

完全不一样的处理方式,RAM的每一个数据位宽不一定是单比特,你后面的那种方式,算是寄存器的基本操作,比较适合单比特的。你把你的需求说清楚,现在好像一点都不清楚你到底要什么。



   谢谢, 我做的是图像算法,我想把表示图像信息的每个像素从RAM里读出来,然后所有像素去同时运算,就设计到ram读取的问题了, 数据是8bit的

那估计你要寻找一些迭代算法或者分时计算的算法,至少读取RAM是不可能在一个时刻全部出来数据的。

少于1kb,用寄存器实现, 一下都出来,  大于,就只能一个时钟一个数据。 双口一般,一个写,一个读。流水线。

应该不行。

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

网站地图

Top