1.新建.mif文件
设置自己所需要的参数
将16进制转换成无符号十进制
自动填充数据:范围0~255(共256),从0开始自增,增量为1
填充后
2.创建ROM IP核
自定义IP核的名称如:my_rom。
这里需对应.mif文件设置的参数 需要>= .mif设置的位宽及大小
看自己设计需要需要勾选‘q’,勾选后在仿真中可见延时两个时钟,不勾选正常延时1个时钟
3.按照第一图搭建程序
3.1 顶层模块 ip_rom
module ip_rom(clk, rst_n, q);
input clk;
input rst_n;
output [7:0] q;
wire [7:0]addr;
//控制地址变化
addr_ctrl addr_ctrl_dut(
.clk(clk),
.rst_n(rst_n),
.addr(addr)
);
//IP核:ROM
my_rom my_rom_dut(
.address(addr),
.clock(clk),
.q(q)
);
endmodule
3.2 addr_ctrl模块
功能:控制ROM的地址变化
module addr_ctrl(clk, rst_n, addr);
input clk;
input rst_n;
output reg [7:0] addr; //控制ROM的地址变化(0~255)
always@ (posedge clk,negedge rst_n)begin
if(rst_n == 1'b0)
addr <= 8'd0;
else if(addr <= 8'd255)
addr <= addr + 8'd1;
else
addr <= 8'd0;
end
endmodule
4.modelsim 仿真
5.下板仿真测试
5.1. 下板的话 ip核设置中,必须勾选上如下图
5.2 直接打开之前创建的my_rom IP核就可以更改
5.3 分配管脚——>全编译——>下板生成.sof文件——>Tools——> In System memory Content Editor——>Hardware 选择 Blaster-USB——>File 选择.sof文件——>点击file前的小图标 下载——>下载完成即为下图 (00—FF:256位数据)