Vivado使用技巧(9):COE檔案使用方法
COE檔案
在某些IP核的配置中,需要使用COE(Coefficient)檔案來傳遞引數,正如《FPGA數字訊號處理系列》中我多次使用MATLAB自動生成FIR濾波器所需的濾波係數檔案。
COE檔案是一種ASCII文字檔案,檔案頭部定義資料基數(Radix),可以時2、10或16。資料以向量的形式給出,每個向量以分號結尾。Vivado會解析COE檔案格式,並在生成IP核時匯出相關的MIF格式檔案,用於行為級模擬。
最好將COE檔案放在與使用此檔案的IP核同目錄下(即與XCI檔案同目錄),這樣在使用Core Cotainer打包IP核時也會將COE檔案打包到XCIX檔案中。當替換COE檔案時,必須要刪掉舊的COE檔案,否則也會傳遞到工程的綜合過程中;需要注意,如果只是在磁碟上刪掉了檔案,而不是在工程中移除,會導致報告一個error。
COE檔案語法
COE檔案的通用語法格式如下:
Keyword =Value ; 註釋
<Radix_Keyword> =Value ; 註釋
<Data_Keyword> =Data_Value1, Data_Value2, Data_Value3;
COE語法不區分關鍵詞的大小寫;分號後為註釋。下面是與定義資料值的基數相關的關鍵詞:
- RADIX:用於非儲存型別IP核的基數定義(比如FIR濾波器);
- MEMORY_INITIALIZATION_RADIX:定義儲存器初始化值的基數。
下面是與資料值相關的關鍵詞:
- COEFDATA:定義濾波器的係數;
- MEMORY_INITIALIZATION_VECTOR:定義塊儲存器與分散式儲存器的資料;
- PATTERN:用於位相關器(Bit Correlator)COE檔案;
- BRANCH_LENGTH_VECTOR:用於Interleaver COE檔案。
COE檔案最後定義的關鍵詞必須是COEFDATA或MEMORY_INITIALIZATION_VECTOR,之後的關鍵詞定義都會被忽略。下面給出幾個COE檔案的示例。
1.Block Memory COE File
; This .COE file specifies the contents for a block memory of depth=16, and width=4.
memory_initialization_radix=2;
memory_initialization_vector=
1111,
1111,
1111,
1111,
1111,
0000,
0101,
0011,
0000,
1111,
1111,
1111,
1111,
1111,
1111,
1111;
2.FIR COE File
; Example of a Distributed Arithmetic (DA) FIR Filter .COE file
; with hex coefficients, 8 symmetrical taps, and 12-bit coefficients.
Radix = 16;
CoefData= 346, EDA, 0D6, F91, F91, 0D6, EDA, 346;
生成的MIF檔案
COE檔案提供了一種設定記憶體初始化值的高層次方法,但實際上並不能直接使用。當生成IP核時,Vivado會將COE檔案轉換為MIF檔案。MIF檔案儲存了原始值,用於儲存類IP核的初始化和模擬模型。
MIF檔案中每一行代表一個儲存位置,如第一行代表地址0,第二行代表地址1……每一行必須是初始化值(高位在前),與之相關的記憶體地址為二進位制格式(注意可能與一些軟體生成的MIF格式不同)。在HDL模擬時,MIF檔案必須模擬模擬目錄下。使用Vivado Simulator模擬時Vivado會自動完成相關操作。
相關文章
- 用MATLAB編寫VIVADO的coe檔案Matlab
- 用MATLAB產生VIVADO可用的coe檔案Matlab
- Vivado使用技巧(13):CSV檔案定義IO Ports
- Vivado開發環境,將COE檔案加入IP核ROM中開發環境
- COE檔案是什麼
- Xilinx COE檔案生成
- MATLAB生成coe檔案Matlab
- matlab寫coe檔案Matlab
- 使用matlab生成rom初始化檔案.coeMatlab
- Vivado使用技巧(10):編輯與改寫IP核原始檔
- Vivado使用技巧(25):Block Synthesis技術BloC
- Vivado使用技巧(20):Waveform功能詳解ORM
- Vivado使用技巧(17):建立IBIS模型模型
- 利用MATLAB產生COE檔案Matlab
- Vivado使用技巧(23):綜合執行與OOC
- Vivado使用技巧(4):查詢功能詳解
- Vivado使用技巧(11):設定FPGA配置模式FPGA模式
- MATLAB生成.coe檔案和.mif檔案程式碼示例Matlab
- Vivado使用技巧(5):屬性編輯器的使用
- coe檔案資料後的逗號
- 帶COE檔案的核的tips
- Vivado使用技巧(16):SSN轉換噪聲分析
- Vivado使用技巧(14):IO規劃方法詳解
- Vivado使用技巧(8):Core Container打包IP核AI
- 從Matlab到FPGA(Matlab生成coe檔案或mem檔案)MatlabFPGA
- Vivado使用技巧(21):模擬中的Debug特性
- Vivado使用技巧(28):支援的Verilog語法
- C++檔案說明及使用方法C++
- Vivado使用技巧(7):使用IP核自帶Testbench進行模擬
- Vivado使用技巧(24):HDL/XDC中設定綜合屬性
- Vivado使用技巧(22):綜合策略與設定的選擇
- WinRAR檔案分卷壓縮功能使用方法
- VIM 搜尋命令使用方法和技巧
- WinRAR自動備份檔案功能的使用方法
- Oracle9i的OMS使用方法Oracle
- win10 檔案怎麼粉碎 win10 檔案粉碎機使用方法Win10
- Xilinx 中Block ram的初始化檔案.coe建立BloC
- Vivado使用技巧(12):設定DCI與內部參考電壓