1.首先生成rom的初始化mif文件,Files-New-Memory INitialization File
设置数据个数和位宽
之后会生成一个像表格的文件,让你去填入数据,在表格的第一列或者第一行右键,可以选择地址或者数据的格式,2,8,10,16进制可选
生成完后关闭就可以了
生成mif文件还可以直接使用脚本生成
下面是matlab生成的代码
depth =4096; %存储器的深度
widths = 8; %数据宽度为8位
a1(1:1:depth)=0;%初始化一个矩阵
%正弦波
N = 0 :4095; %把一个周期的正弦信号分为4096份
qqq = fopen('sine.mif','wt'); %使用fopen函数生成sine.mif
fprintf(qqq, 'depth = %d;\n',depth); %使用fprintf打印depth = 4096;
fprintf(qqq, 'width = %d;\n',widths); %使用fprintf打印width = 8;
fprintf(qqq, 'address_radix = UNS;\n'); %使用fprintf打印address_radix = UNS; 表示无符号显示数据
fprintf(qqq,'data_radix = UNS;\n'); %使用fprintf打印data_radix = UNS; 表示无符号显示数据
fprintf(qqq,'content begin\n'); %使用fprintf打印content begin
for x = 1 : depth %产生正弦数据
a1(x)=round((255*(sin(2*pi*(x-1)/4096)+1))/2);
fprintf(qqq,'%d:%d;\n',x-1,a1(x));
end
%plot(a1,'r','LineWidth',2);
fprintf(qqq, 'end;'); %使用fprintf打印end;
fclose(qqq);
2.生成rom的ip核文件
选择Tools 点击MegaWizard Plug-In Manager
进入ip设计阶段
选择mif文件
生成的EDA 库文件,这里直接下一步
选择生成文件
可以按下面这样选择
点击Finish,弹出对话框,询问是否将ip加入工程,点击Yes
打开生成的inst文件,如下所示(编辑器打开)
sin sin_inst (
.address ( address_sig ),
.clock ( clock_sig ),
.q ( q_sig )
);
可以将上面代码复制到你的设计中,就可以使用了