FPGA自带ram可以使用,先打开IP catlog,搜索ram
如下就是ram的IP
Basic设置如下
porta设置如下,其他保持默认
以下为测试用例
`timescale 1ns / 1ps
module led( );
reg clka;
reg ena;
reg wea;
reg [9:0]addra;
reg [7:0]dina;
wire [7:0]douta;
blk_mem_gen_0 your_instance_name (
.clka(clka), // input wire clka
.ena(ena), // input wire ena
.wea(wea), // input wire [0 : 0] wea
.addra(addra), // input wire [9 : 0] addra
.dina(dina), // input wire [7 : 0] dina
.douta(douta) // output wire [7 : 0] douta
);
initial begin
clka = 0;
ena = 0;
wea = 1;
#100
ena = 1;
addra = 0;
dina = 55;
wea = 1;
#100;
clka =1;
#10;
clka =0;
addra = 1;
dina = 66;
wea = 1;
#100;
clka =1;
#10;
clka =0;
wea = 0;
addra = 0;
#100;
clka =1;
#10;
clka =0;
#100
$stop;
end
endmodule
波形如下,可以看到在第一个脉冲边沿,这时候地址为0,数据为37,WEA为高(写),第2各边沿,地址为1,数据为42。第三个边沿,WEA为低(读),且地址为0,读取数据为37.
以上,试验成功。