Matlab生成Xilinx Rom IP CORE的初始化內容coe檔案
在進行FPGA設計時,經常要對rom模組進行初始化。ISE或Quartus II軟體本身具備的初始化功能對於較小的rom是行之有效的,但面對大容量的rom時就顯得捉襟見肘了。而matlab作為一神器,在這時就有了用武之地。使用它生成.coe或.mif檔案,可以起到事半功倍的效果。
生成.coe檔案
一、瞭解.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:\Users\Administrator\Desktop\cos_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;
生成.mif檔案
一、瞭解.mif檔案的格式
%.mif檔案的結構
%--WIDTH=16; -->位寬
%--DEPTH=1024; -->深度
%--ADDRESS_RADIX=UNS; -->地址的進位制,此處為無符號型別
%--DATA_RADIX=UNS; -->資料的進位制,此處為無符號型別
%--CONTENT BEGIN -->儲存內容的開頭
%--0:0;
%--……;
%--1023:43;
%--END; -->儲存內容的結束
二、使用matlab生成.mif檔案
width=16; %rom的位寬
depth=1024; %rom的深度
x=linspace(0,2*pi,depth); %在一個週期內產生1024個取樣點
y_cos=cos(x); %生成餘弦資料
y_cos=y_cos+1; %將生成的資料全部轉換為整數
y_cos=round(y_cos*(2^(width-1)-1)); %將幅值放大,並轉換為整數
y_sin=sin(x); %生成正弦資料
y_sin=y_sin+1;
y_sin=round(y_sin*(2^(width-1)-1)); %將幅值放大,並轉換為整數
fid=fopen('C:\Users\Administrator\Desktop\cos_mif.mif','w');
for num=0:depth-1;
fprintf(fid,'%d:%d;\n',num,y_cos(num+1));
end
fclose(fid);
fid=fopen('C:\Users\Administrator\Desktop\sin_mif.mif','w');
for num=0:depth-1;
fprintf(fid,'%d:%d;\n',num,y_sin(num+1));
end
fclose(fid);
%用於測試生成的資料
%plot(x,y_cos)
%plot(x,y_sin)
相關文章
- 使用matlab生成rom初始化檔案.coeMatlab
- Xilinx COE檔案生成
- MATLAB生成coe檔案Matlab
- 用於初始化Xilinx 儲存 IP核的COE檔案格式
- Xilinx內建RAM的初始化資料COE檔案編寫
- 從Matlab到FPGA(Matlab生成coe檔案或mem檔案)MatlabFPGA
- MATLAB生成.coe檔案和.mif檔案程式碼示例Matlab
- Vivado開發環境,將COE檔案加入IP核ROM中開發環境
- 利用MATLAB產生COE檔案Matlab
- 用MATLAB產生VIVADO可用的coe檔案Matlab
- Matlab生成.exe格式檔案Matlab
- java檔案相關(檔案追加內容、檔案內容清空、檔案內容讀取)Java
- 讀取.net core配置檔案appsetting.json內容APPJSON
- COE檔案是什麼
- .NET CORE下最快比較兩個檔案內容是否相同的方法
- coe檔案資料後的逗號
- 檔案內容比較
- vim內替換檔案內容
- IP核之ROM
- 八、.net core(.NET 6)配置讀取appsettings檔案內容的通用功能APP
- vite vue-cli 讀取檔案原始內容 使用base64內容的檔案ViteVue
- 如何編輯PDF檔案的內容?
- MATLAB|讀取一個檔案,並將其不同內容儲存為不同的矩陣Matlab矩陣
- git檢視檔案內容Git
- 檔案內容對比工具
- 使用ln同步檔案內容,支援忽略檔案
- 【打包1】內容、嵌入資源等檔案的生成操作,屬性如何設定
- 修改所有xml檔案中的某些內容XML
- git檢視指定提交檔案的內容Git
- matlab生成exe獨立執行檔案已破解(好用)Matlab
- mybatis讀取properties檔案內容MyBatis
- 實用解析dmp檔案內容
- node中給檔案追加內容
- 命令列技巧:分割檔案內容命令列
- ftp上直接修改檔案內容FTP
- 使用GeoTools解析shp檔案內容
- linux-批次修改檔案內容Linux
- 搜尋本地pdf檔案內容
- python中修改檔案行內容Python