FPGA笔记(九)-实现ROM步骤
1、建立MIF文件(Memory Initialization File)
1、mif文件是在编译和仿真过程中作为存储器(ROM或RAM)初始化输入的文件。
2、选择好字位宽和字数
3、编辑每个地址上要存储的数
4、其实MIF文件可以直接用记事本另存为.mif文件来创建(在该工程文件夹下),当然也可以打开来修改
ADDRESS_RADIX=UNS;%设置地址基值(实际就是地址用什么进制的数表示) 可以设为BIN(二进制),OCT(八进制),DEC(十进制),HEX(十六进制) UNS:无符号数
DATA_RADIX=UNS ; %设置数据基值 同上
2、QuartusII下实现ROM步骤
1、选择tools,在下拉菜单下选择MegaWizard Plug-In Manager:(老版本),图片目前用的版本15.0,这些模块的配置地方有变
2、选择好单通道的ROM的字宽(存储器的横向宽度WIDTH)和字数(存储器的纵向宽度DEPTH)
3、问哪些通道需要寄存器,默认选择q输出通道就行
4、把刚才建立的MIF文件用BROWER选作为ROM的初始化
5、
6、
7、Rom设置好后,可以看到仿真结果。
module rom_test(
input CLK,
input Rst,
output [7:0] data
);
reg [4:0] addr=5'd0; //初始化很重要
//Rom实例化
Rom Rom_0(
.address(addr),
.clock(CLK),
.q(data));
always@(posedge CLK or negedge Rst)
begin
if(!Rst)
addr <= 5'd0;
else if(addr <= 5'd31)
addr <= addr + 5'd1;
else
addr <= 5'd0;
end
endmodule
仿真结果如下:
可以看到从Rom里面读出的数据,正是mif文件初始化的值!