利用MATLAB产生COE文件

1.利用MATLAB产生COE文件,初始化RAM
产生正余弦波形数值,形成COE文件,加载在ROM中。
MATLAB中代码如下:
x = linspace(0,6.28,1024); %在0和2pi间取1024个点
y1 = cos (x)+1;
y2 = sin (x)+1;

y1 = y1 * 32768; %在将波形抬高到坐标轴上后,再将上面算得的数值放大量化成16位
y2 = y2 * 32768;

fid = fopen(‘c:/cos_coe.txt’,‘wt’); % 生成TXT文件
fprintf( fid, ‘memory_initialization_radix=10;\n’, y1);%生成索引
fprintf( fid, ‘memory_initialization_vector =\n’, y1 );
fprintf(fid,’%16.0f,\n’,y1);%量化数据格式,具体说明见前面,注意其中的逗号!
fclose(fid)
plot(y1);
hold on;

fid = fopen(‘c:/sin_coe.txt’,‘wt’);
fprintf( fid, ‘memory_initialization_radix=10;\n’, y2);
fprintf( fid, ‘memory_initialization_vector =\n’, y2 );
fprintf(fid,’%16.0f,\n’,y2);
fclose(fid)
plot(y2);
2.生成.coe文件。在D盘根目录下,将cos_coe.txt和sin_coe.txt的后缀改成.coe。打开文件,把每一行之间的空格用文本替换功能换成“,”(这可以通过强大的UltraEdit来实现!),并在最后一行添加一个分号“;”。最后,在文件的最开始添加下面两行:
memory_initialization_radix=10;
memory_initialization_vector=
然后,保存文件退出。
3.将coe文件加载到BLOCKROM所生成的ROM中。新建一个BLOCKROM的IP Core, 其位置为“Memories & Storage Elements---->RAMs & ROMs----->Block Memory Generator v2.4”。在第1页中选择“single port rom”,在第2页中选择位宽为16,深度为1024,在第3页下载coe文件,如下图,然后双击Finish,完成IP Core的生成。如果coe文件生成得不对,Browse前面的框中是显示红色的文件名,coe文件错误类型主要有数据基数不对和数据的长度不对两种。
MODELSIM下rom仿真。

你可能感兴趣的:(解决问题,MATLAB,COE,IP核,ROM查找表,vhdl)