1 创建一个mif文件
ROM上电后需要进行初始化,支持HEX或MIF格式的文件初始化。所以在使用ROM之前要先设置ROM的初始化文件。
这里使用了一个三角波的产生表:0 ~ 127 127 ~ 0
2 启动IP核
3 获取ROM的端口列表
module iprom (
address,
clock,
q);
input [7:0] address;
input clock;
output [7:0] q;
4 testbench
`timescale 1ns/1ns
module rom_tb;
reg [7:0] address;
reg clock;
wire [7:0] q;
iprom f1(
.address(address),
.clock(clock),
.q(q)
);
initial clock = 1'b1;
always #10 clock = ~clock;
integer i;
initial begin
address = 8'b0;
#21;
for(i=0;i<255;i=i+1)
begin
#20;
address = address + 1;
end
#(20*50);
$stop;
end
endmodule
5 前仿真
可以发现数据输出变化相比地址变化差不多延迟了两个时钟周期
6 查看模拟波形