内存读写
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,用寄存器实现, 一下都出来, 大于,就只能一个时钟一个数据。 双口一般,一个写,一个读。流水线。
应该不行。
