使用matlab生成rom初始化文件.coe

在进行FPGA设计时,经常要对rom模块进行初始化。ISE或Quartus II软件本身具备的初始化功能对于较小的rom是行之有效的,但面对大容量的rom时就显得捉襟见肘了。而matlab作为一神器,在这时就有了用武之地。使用它生成.coe或.mif文件,可以起到事半功倍的效果。

一、了解.coe文件的格式
在ISE中,对rom进行初始化的文件是.coe文件。它的格式如下:
   memory_initialization_radix=10; -->文件存储数据的进制,10即为10进制
   memory_initialization_vector = -->数据向量
   65534,65533,……,65532,65528; -->所存储的10进制数据,每个数据使用逗号隔开,最后分号结束

**.coe文件的前两行的开头格式是固定的,不能改变的。
**--|第一行:memory_initialization_radix=<进制>;
**--|第二回:memory_initialization_vector=    

**所存储的数据数量与大小,是与设计rom的位宽和深度相对应的。

二、使用matlab生成.coe文件

2.1 以下程序用于为位宽为16bit,深度为1024的rom生成初始化文件
   width=16;    %rom的位宽
   depth=1024; %rom的深度
   x=linspace(0,2*pi,depth);   %在一个周期内产生1024个采样点
   y_cos=cos(x);    %生成余弦数据
   y_cos=round(y_cos*(2^(width-1)-1))+2^(width-1)-1;   %将余弦数据全部转换为整数

   fid=fopen('C:UsersAdministratorDeskto pcos_coe.coe','w');   %创建.coe文件
   fprintf(fid,'%d,n',y_cos);   %向.coe文件中写入数据
   fclose(fid);   %关闭.coe文件

2.2 编辑.coe文件(最好使用UltraEdit打开)
--在前两行添加
   memory_initialization_radix=10;
   memory_initialization_vector =
--将最后的逗号改为分号
--最后文件格式:
   memory_initialization_radix=10;
   memory_initialization_vector =
   65534,
   65533,
   .....
   65334,
   65287;

       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值