本帖最后由 cqugjw 于 2013-6-14 14:31 编辑
回复 6# yadog
谢谢斑竹的回复,基于IP core的single port ram我已经读写成功了。先分享下代码:
先用core gen生成了一个8*8bit的single port ram,加载COE初始化文件:ABCDEBDA,直接例化。
Verilog部分代码:
module bramtest(
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
testbench部分代码:
module bramtest_test;
// Inputs
reg clk;
reg rst_n;
reg ram1_en;
reg [7:0] dina;
reg [2:0] addr;
// Outputs
reg wea;
wire [7:0] douta;
// Instantiate the Unit Under Test (UUT)
bramtest 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
仿真波形:
single port ram仿真波形
|