1. 程式人生 > >使用matlab生成rom初始化檔案.coe

使用matlab生成rom初始化檔案.coe

在進行FPGA設計時,經常要對rom模組進行初始化。ISE或Quartus II軟體本身具備的初始化功能對於較小的rom是行之有效的,但面對大容量的rom時就顯得捉襟見肘了。而matlab作為一神器,在這時就有了用武之地。使用它生成.coe或.mif檔案,可以起到事半功倍的效果。
一、瞭解.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:UsersAdministratorDesktopcos_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;