matlab生成ROM中的定点正、余弦波形数值,形成.coe文件并加载到块ROM中

matlab生成ROM中的定点正、余弦波形数值,形成.coe文件并加载到块ROM中
1、利用MATLAB计算出正、余弦波形的浮点值,并量化16bit的定点波形数值

x = linspace(0,6.28,1024); //在区间[0,6.28]之间等间隔地取1024个点
y1 = cos(x);  ///计算相应的正弦值
y2 = sin(x);
//由于正余弦波形的值在[0,1]之间,需要量化成16bit ,现将数值放大
y1 = y1*32768;
y2 = y2*32768;
//再将放大的浮点值量化,并写到C盘文本中
fid = fopen('c:/cos_coe.txt','wt');
fprintf(fid.'%16.0f\n',y1); //在写文件时量化成16bit
fclose(fid)
fid = fopen('c:/sin_coe.txt','wt');
fprintf(fid,'%16.0f\n',y2);
fclose(fid)

2、产生.coe文件。在C盘根目录下,将.txt的后缀改成.coe,打开文件把每一行之间的空格用文本的替换功能换成逗号“,”,并在最后一行添加分号“,”。最后在文件的最开始添加下面两行:

memory_initialization_radix = 10;
memory_initialization_vector =

然后保存文件退出。
3、将coe文件加载到blockROM所生成的ROM中。新建一个ROM IP核,Block Memory Generator,在第一页选择single port ROM,在第二页选择位宽为16、深度为1024,在第三页加载coe文件,finish,完成生成。(coe文件正确为黑色,不正确为红色。主要错误为数据基数不对和数据的长度不对两类)

猜你喜欢

转载自blog.csdn.net/tusiji5286/article/details/107765213
ROM