◆FPGAの備忘録

●メモリ初期化用Intel-formatファイルについて 

 メモリ初期化ファイルは、Quartus II ではHexadecimal(Intel-format)ファイルと
MemoryInitializationFile(.mif)の2種類、ModelSimではHexadecimal(Intel-format)ファイルがサポートされています。
 ここでは、Quartus IIとModelSimでサポートされているIntelHexファイル形式を見ます。





●メモリ初期化ファイルの設定 

Quartus IIの Tools > MegaWizerd Plug-In Manager で初期化ファイルを設定する画面です。IntelHex.hexファイルを設定しています。




 次はMOdelSimの初期化ファイルを設定です。Simulate > Start Simulation で左下のダイヤログが出るので、Libraries タブで Add で出る右下のダイヤログで altera_mf を選択します。
 ModelSim ALTERA 6.1g の標準インストールではインストール位置が図の様になっています。私も6.1gを初めて使った時迷ってしまいました。
 IntelHex.hexファイルは、Comet2eのVerilogHDLコードと同じフォルダに入れておきます。





●メモリ初期化用MIFファイルについて 

 メモリ・ブロックの初期値をMemoryInitializationFile(.mif)で指定出来ます。

 MIFファイルには、メモリ内の各アドレスに対する初期値が保存されています。
 MIFファイル内では、メモリの奥行きと幅も指定する必要があります。
 また、アドレスおよびデータ値の表示と解釈に使用される基数も指定できます。
 メモリ・ブロックごとに別ファイルが必要です。

 次に MIファイルの例を示します。

DEPTH = 32;	% Memory depth and width are required	%
WIDTH = 14;	% Enter a decimal number	%

ADDRESS_RADIX = HEX;	% Address and value radixes are required	%
DATA_RADIX = HEX;	% Enter BIN, DEC, HEX, OCT, or UNS; unless 	%
			% otherwise specified, radixes = HEX	%

-- Specify values for addresses, which can be single address or range

CONTENT
	BEGIN

[0..F]	:	3FFF;	% Range--Every address from 0 to F = 3FFF	%
	6	:	F;	% Single address--Address 6 = F	%
	8	:	F E 5;	% Range starting from specific address--	%

END ;	% Addr[8] = F, Addr[9] = E, Addr[A] = 5	%
注)同じアドレスに複数の値が指定されると、最後の値だけが使用されます。

MIF は Memory Editor を使って作成することができます。


ホームへ戻る