利用MATLAB產生COE檔案

盼盼朱發表於2018-10-31

1.利用MATLAB產生COE檔案,初始化RAM
產生正餘弦波形數值,形成COE檔案,載入在ROM中。
MATLAB中程式碼如下:
x = linspace(0,6.28,1024); %在0和2pi間取1024個點
y1 = cos (x)+1;
y2 = sin (x)+1;

y1 = y1 * 32768; %在將波形抬高到座標軸上後,再將上面算得的數值放大量化成16位
y2 = y2 * 32768;

fid = fopen(‘c:/cos_coe.txt’,‘wt’); % 生成TXT檔案
fprintf( fid, ‘memory_initialization_radix=10;\n’, y1);%生成索引
fprintf( fid, ‘memory_initialization_vector =\n’, y1 );
fprintf(fid,’%16.0f,\n’,y1);%量化資料格式,具體說明見前面,注意其中的逗號!
fclose(fid)
plot(y1);
hold on;

fid = fopen(‘c:/sin_coe.txt’,‘wt’);
fprintf( fid, ‘memory_initialization_radix=10;\n’, y2);
fprintf( fid, ‘memory_initialization_vector =\n’, y2 );
fprintf(fid,’%16.0f,\n’,y2);
fclose(fid)
plot(y2);
2.生成.coe檔案。在D盤根目錄下,將cos_coe.txt和sin_coe.txt的字尾改成.coe。開啟檔案,把每一行之間的空格用文字替換功能換成“,”(這可以通過強大的UltraEdit來實現!),並在最後一行新增一個分號“;”。最後,在檔案的最開始新增下面兩行:
memory_initialization_radix=10;
memory_initialization_vector=
然後,儲存檔案退出。
3.將coe檔案載入到BLOCKROM所生成的ROM中。新建一個BLOCKROM的IP Core, 其位置為“Memories & Storage Elements---->RAMs & ROMs----->Block Memory Generator v2.4”。在第1頁中選擇“single port rom”,在第2頁中選擇位寬為16,深度為1024,在第3頁下載coe檔案,如下圖,然後雙擊Finish,完成IP Core的生成。如果coe檔案生成得不對,Browse前面的框中是顯示紅色的檔名,coe檔案錯誤型別主要有資料基數不對和資料的長度不對兩種。
MODELSIM下rom模擬。

相關文章