vivado 中存储器IP的应用
学习如何展示这类IP的学习和应用方法
ROM_test.v 使用IP核 IP catalog。在菜单栏中可以看到有两个与ROM相关的IP,一个是Distributed Memory Generator, 另一个是Block Memory Generator,先简单说说两个的差别,两者最主要的差别是生成的core所占用的FPGA资源不一样,从Distributed Memory Generator 生成的ROM、RAM core占用的资源是 LUT(查找表,查找表本质是一个小的RAM);从Block memory Generator 生成的ROM RAM core占用的资源是 Block memory(嵌入式的硬件RAM),两者详细的区别和使用会进行详解。
各自的应用场合:假如只需要一个32或128字节的ROM,使用LUT比较合适,消耗的不多。Block memory Generator要么就是9k或者18k,需求量比较大的场景。根据存储空间的大小来决定。
IP的操作
还有mif 初始化文件。ROM的初始化文件
简单写testbench显示
module rom_tb;
reg clka;
reg [11:0]addra;
wire [9:0]douta;
rom rom(
clka;
addra;
douta
);
initial clka = 1;
always #10 clka = ~clka;
initial begin
addra = 100;
#501;
repeat(3000) begin
addra = addra + 1;
#20;
end
#2000;
$stop;
end
endmodule
主要看 仿真输出延时