我加了一个2位宽,4个位深的ram ip核,程序如下,综合没错,接着向问问怎么向里面写数据,还有怎么将数据读出来? 麻烦帮帮忙。。十分感谢。。。因为要急用,所以没时间去慢慢看书。。。还有我见例程有些参数要定义wire变量弄弄到子程序里面,请问什么情况时候用到。。wire和reg的区别我大概清楚,就是不明白问什么有些子程序参数要定义wire变量。。先谢谢帮忙的人。。
module ram_top(
clk,
a,
d,
out
);
input clk;
input [1:0] a;
input [1:0] d;
output [1:0] out;
ram2 ram2_1 (
.clka(clk),
.wea(1), // Bus [0 : 0]
.addra(a), // Bus [1 : 0]
.dina(d), // Bus [1 : 0]
.douta(out)); // Bus [1 : 0]
endmodule
可是我不要初始化啊..我是要现场采集数据然后送到ram里面的。。请问怎么用啊 。。具体。。datasheet里面也没怎么解释。。T T。。先谢谢你帮忙
追答那就写进去嘛ram2 ram2_1 (
.clka(clk),
.wea(1), // Bus [0 : 0]
.addra(a), // Bus [1 : 0]
.dina(d), // Bus [1 : 0]
.douta(out)); // Bus [1 : 0]
给到dina
给addra地址,然后给dina数据就好了, 接着读呢? 读就直接给地址,输出口就变成地址里面存的值了?我试了不行啊。。麻烦再浪费少少时间答答这个问题,急用啊。。谢谢。。
追答ram2 ram2_1 (
.clka(clk),
.wea(1), // Bus [0 : 0]
.addra(a), // Bus [1 : 0]
.dina(d), // Bus [1 : 0]
.douta(out)); // Bus [1 : 0]
你看看这几个管脚是输入还是输出,wea应该是写使能吧,写入应该不用给地址的
额。。。不用地址? 那addra这个端口是干什么的。。。貌似只能再追问一次了。。呵呵。。不好意思。。浪费你这么多时间。。
追答写只能按顺序写入,读出需要根据地址
本回答被提问者采纳