.coe格式的數據文件簡介
在Vivado中,對rom進行初始化的文件是.coe文件.它的格式如下:
memory_initialization_radix=10; memory_initialization_vector = 65534, 65533, ..., 60211;
其中,memory_initialization_radix=10; 表示文件存儲數據的進制,10即為10進制,memory_initialization_vector是數據向量,等號后面的數字就是數據向量,使用逗號隔開數據,分毫表示結束。
小結:
① .coe文件的前兩行的開頭格式是固定的,不能改變的
② 所存儲的數據數量與大小是與設計rom的位寬和深度相對應的
使用matlab生成.coe文件
以下面的程序為例,演示了生成位寬為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文件
注意,windows中換行符可能是/r/n
① 在前兩行添加:
memory_initialization_radix=10; memory_initialization_vector =
② 將最后一行的逗號改為分號.
Vivado中ROM IP核的使用
① 在project manager選擇IP Catalog:
② 找到Block Memory Generator,并雙擊:
③ 在下面的界面中進行ROM的設置,在Other Options欄中設置剛剛設置好的.coe文件的位置,推薦將該文件放在工程目錄下面。并點擊OK,即可完成ROM的設置,成功會的結果如下所示:
④ 完成上面的操作之后可以在工程文件中調用該ROM IP核,調用的方式是在IP Source中打開所生成的ROM IP核,再打開*.v文件,如下圖所示:
復制該文件中的調用語句:
module rom_data_i(clka, addra, douta) /* synthesis syn_black_box black_box_pad_pin="clka,addra[16:0],douta[15:0]" */; input clka; input [16:0]addra; output [15:0]douta; endmodule
模仿該格式就可以調用IP核。
編輯:hfy
-
ROM
+關注
關注
4文章
562瀏覽量
85679 -
存儲數據
+關注
關注
0文章
85瀏覽量
14092 -
Vivado
+關注
關注
19文章
808瀏覽量
66347
發布評論請先 登錄
相關推薦
評論