一、介绍
Xilinx COE文件用于初始化ROM内容,设置FIR滤波器系数等功能(才疏学浅,目前只用到这些),coe文件中的数据格式可以为有三种格式:
(1)、二进制Binary :2
(2)、十进制Decimal :10
(3)、十六进制Hex :16
以一个FIR滤波器的系数coe文件为例,如下所示:
; XILINX CORE Generator(tm)Distributed Arithmetic FIR filter coefficient (.COE) File
; Generated by MATLAB(R) 9.0 and the DSP System Toolbox 9.2.
; Generated on: 07-Jun-2018 11:44:51
Radix = 16;
Coefficient_Width = 12;
CoefData = 000,
ffd,
00f,
02e,
f8b,
ef9,
24e,
7ff,
7ff,
24e,
ef9,
f8b,
02e,
00f,
ffd,
000;
上面的coe文件为15阶16抽头个数的低通FIR滤波器的系数定义,系数量化为16进制,位宽为12,有符号数
Attention:
二、官方格式
<Radix_Keyword> = Value ; Optional Comment 进制
<Data_Keyword> = Data_Value1, Data_Value2, Data_Value3; 数据
三、进制关键字
Radix_Keyword关键字有两个:
Keyword |
描述 |
RADIX |
用于无存储的ip的系数 |
MEMORY_INITIALIZATION_RADIX |
用于将ROM/RAM初始化 |
根据官方说明“Keywords are not case sensitive”,关键字不区分大小写。
四、数据关键字
Data_Keyword关键字有两个:
Keyword |
描述 |
COEFDATA |
滤波器系数 |
MEMORY_INITIALIZATION_VECTOR |
用于将ROM/RAM初始化 |
等 |
等 |
其他未说明的可参考下图:
五、总结
1、分号后的代码都被认为是注释内容,;作为注释符,用于添加额外注释
2、COEFDATA,MEMORY_INITIALIZATION_VECTOR和MEMDATA必须是COE文件中最后一个Keyword。后续的所有关键词都被编译器忽略。
3、每一个数据用逗号和换行实现,注意数据的输入行不可以加分号,因为加分号的话会把该系数注释掉,最后一行的数据结束要加分号表示数据写入完毕。
https://www.xilinx.com/support/documentation/sw_manuals/xilinx11/cgn_r_coe_file_syntax.htm