|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
按照本论坛某位前辈的方法,新建了一块RAM,然后仿真,代码及结果如下,现在的问题是:
1.仿真的结果douta出来的数据和我初始化的数据对不上,这是为什么呢?2.dina数据是做什么用的?
请高手指教~
顶层文件:
module ram2(
input clk,input rst_n,
input ram1_en,
input [7:0] dina,
input [2:0] addr,
input wea,
output [7:0] douta
);
ram1 sp_ram (
.clka(clk), // input clka
.rsta(rst_n), // input rsta
.ena(ram1_en), // input ena
.wea(wea), // input [0 : 0] wea
.addra(addr), // input [2 : 0] addra
.dina(dina), // input [7 : 0] dina
.douta(douta) // output [7 : 0] douta
);
endmodule
测试文件:
module ramtest;
// Inputs
reg clk;
reg rst_n;
reg ram1_en;
reg [7:0] dina;
reg [2:0] addr;
reg wea;
// Outputs
wire [7:0] douta;
// Instantiate the Unit Under Test (UUT)
ram2 uut (
.clk(clk),
.rst_n(rst_n),
.ram1_en(ram1_en),
.dina(dina),
.addr(addr),
.wea(wea),
.douta(douta)
);
initial begin
// Initialize Inputs
clk = 0;
ram1_en = 1;
rst_n = 0;
dina = 0;
addr = 0;
wea = 1;
#60 wea = 0;
end
always #10 clk = ~clk;
always #20 begin dina <= dina + 1; addr <= addr+1; end
endmodule
初始化的coe文件:
MEMORY_INITIALIZATION_RADIX=2;
MEMORY_INITIALIZATION_VECTOR=
01001111,
01000010,
01000011,
01000100,
01000101,
01000010,
01000100,
01000001;
结果
|
|