EDA365电子论坛网

标题: 如何借助Matlab生成ROM的.coe文件(适用于Xilinx的IP core) [打印本页]

作者: gaoxings    时间: 2019-1-9 07:30
标题: 如何借助Matlab生成ROM的.coe文件(适用于Xilinx的IP core)
如何借助Matlab生成ROM的.coe文件(适用于Xilinx的IP core)7 M& N$ y8 \# C8 Q1 L, a! q

/ C- X$ ]0 F) y' T( G( H' F3 M+ D% f  T: }

6 F. K! \  Z5 M6 ^% F4 T+ X) Q) ~. |" h6 Y; U% [0 ~

9 V* I9 ]6 O2 u- l! H3 V$ |1 ^) y

例:生成定点正余弦波形数值,形成.coe文件并加载到块ROM中。

首先,利用Matlab计算出正余弦波形的浮点值,并量化为16bit定点波形数值:

x=linspace(0,6.28,1024);//在区间[0,6.28]之间等间隔地取1024个点

y1=cos(x);//计算相应的正余弦值

y2=sin(x);

//由于正余弦波形的值在[0,1]之间,需要量化成16bit,先将数值放大

y1=y1*32678;

y2=y2*32678;

//再将放大的浮点值量化,并写到存放在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);

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

memory_initialization_radix=10;

memory_initialization_vector=

然后,保存文件退出。

9 P. e! z. L" x4 A# o
! }; g6 @4 P* Z& |& s

作者: fanichicl    时间: 2019-1-9 10:39
好方法 谢谢楼主!




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2