例化RAM的使用~~求助
时间:10-02
整理:3721RD
点击:
我产生了一个16KRAM IP核,想把产生的随机数存入其中,但是,怎么也不行,检查表达式通过,可是,却没有将数据存入,哪位能帮我看一下,自己学真是太痛苦了;
module randomsystem(clk,rst,data_in,data_out,we,addr);
input clk,rst,we;//we --write enable
input [3 : 0] addr;
input[15:0]data_in;
output [15 : 0] data_out;
reg[15:0]data_out;
reg[15:0]data;
integer i,j;
parameter taps=16'h1001;//initial value of LFSR
always@(posedge[/email] clk or negedge rst)
begin
if (!rst)
data<=16'h0001;
else
begin
for (i=0;i<=15;i=i+1)
if(taps)
data[i+1]<=data^data[3];
else
data[i+1]<=data;
data[0]<=data[15];
$display("random=%d",data);
end
end
sigportBram uut (
.clka(clka),
.dina(dina),
.addra(addra),
.wea(wea),
.douta(douta)
);
endmodule
module randomsystem(clk,rst,data_in,data_out,we,addr);
input clk,rst,we;//we --write enable
input [3 : 0] addr;
input[15:0]data_in;
output [15 : 0] data_out;
reg[15:0]data_out;
reg[15:0]data;
integer i,j;
parameter taps=16'h1001;//initial value of LFSR
always@(posedge[/email] clk or negedge rst)
begin
if (!rst)
data<=16'h0001;
else
begin
for (i=0;i<=15;i=i+1)
if(taps)
data[i+1]<=data^data[3];
else
data[i+1]<=data;
data[0]<=data[15];
$display("random=%d",data);
end
end
sigportBram uut (
.clka(clka),
.dina(dina),
.addra(addra),
.wea(wea),
.douta(douta)
);
endmodule
always@(posedge[/email] clk or negedge rst)
上面的这一行其实是:always@(posedge clk or negedge rst),不知道怎么回事就变成那样了
求达人指点一下
顶一个!
data没有和RAM进行任何通信呀。怎么看像是两个毫无关系的部分——前面的随机数产生和后面的RAM调用。
该怎么在2部分间建立联系呢
等待其他高手解答
调用RAM,根本就没对RAM进行操作嘛
晕,都是些只会说不会做的!
把data值赋给RAM数据输入啊
问问题的态度怎么都是那么不端正呀?人家说的你都看不明白,还要别人手把手教你不成?
你好好检查你的代码,在@条件下产生的data,你用到什么地方去了?例化的RAM的端口信号里面你有使用这个data吗?自己的粗心大意,态度还那么嚣张呀,这样不好,年轻人。
sigportBram uut (
.clka(clka),
.dina(dina),
.addra(addra),
.wea(wea),
.douta(douta)
);
这上面的端口信号里面,自己好好看看。
楼上说的好,请教别人要谦虚点
多谢指正,是我太着急,出言不逊,多多包涵!
学习了
