一、介紹
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