COE文件之读写操作

在Xilinx的FIR、Block Memory等 IP核的配置中,需要使用COE(Coefficient)文件来进行初始化。

写COE文件

一般是通过Matlab设计好参数后,再生成COE文件。具体代码如下。

x = 1:512;
fid = fopen('test.coe','w');
fprintf(fid, 'memory_initialization_radix=10;\n');
fprintf(fid, 'memory_initialization_vector=\n');
fprintf(fid, '%d,\n', x);
fclose(fid);

其中radix可以为2,、10、16。上面的为Block Memory的coe文件生成方法。
对于FIR IP核的coe文件则可使用如下代码。

x = randn(1,512);
q_width = 12;
fid = fopen('FIR_coe.coe','w');
coe_data = round(x/max(abs(x))*(2^(q_width-1)));
fprintf(fid,'Radix = 16;\r\n');
fprintf(fid,'Coefficient_Width = %d;\r\n',q_width);
fprintf(fid,'CoefData = \r\n');
fprintf(fid,'%x,\r\n',coe_data);
fclose(fid);

读COE文件

对于一个未知工程,有时候可能需要回读COE文件来验证设计是否正确。Matlab官方提供了一个coeread函数,其介绍如下。
在这里插入图片描述
但笔者一直未能正确调用该函数,故使用另一种方法来实现coe文件的回读。

x_rd = textread('test.coe', '%d', 'delimiter', ',',  'headerlines', 2);

textread函数的前两个参数就不再解释了,‘delimiter’参数值为’,'代表了读的过程中跳过该字符;’headerlines‘参数的值为2代表txt文件的标题行数,在读的过程中也会跳过。

删除COE文件

删除文件coe文件时,可在Design Sources中的Coefficient Files找到欲删除的文件,右击后点击Remove File from Project。如果要彻底删除coe文件,则勾选下面的选项框。
在这里插入图片描述
如果手动从文件夹中删除coe文件后,则必须再到工程中删除一遍,否则将会报错。

更新COE文件

经测试在生成IP核时无论是选择Global还是Out of context per IP的综合选项,如果更新了COE文件,都必须重新生成IP核。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值