スポンサーリンク

ここではハンドアセンブルで機械語に変換されたプログラムをFPGA内のメモリに書き込む方法について記述します。動作確認として以下のプログラムを書き込みます。P3入力端子とP4入力端子から入力した数値を足してP1出力端子へと出力する内容のプログラムになっています。


【 0 】 INA	【 1 】 100
【 2 】 INB	【 3 】 101
【 4 】 LD	【 5 】 100
【 6 】 ADD	【 7 】 101
【 8 】 ST	【 9 】 102
【 10】 OUTA	【 11】 102
【 12】 JUMP	【 13】 0

※【 】(隅付き括弧)で囲んでいる数値はメモリの番地を表しています。

 

上記のプログラムを機械語に変換すると以下のようになります。


【 0 】 14	【 1 】 100
【 2 】 15	【 3 】 101
【 4 】 3		【 5 】 100
【 6 】 7		【 7 】 101
【 8 】 4		【 9 】 102
【 10】 16	【 11】 102
【 12】 1		【 13】 0

※【 】(隅付き括弧)で囲んでいる数値はメモリの番地を表しています。

 

上記の機械語をFPGA内のメモリに書き込むために、前ページで作成したMIFファイルを使います。Quartusのメイン画面左側にある”Files”タブを押すとプロジェクト内のファイルが表示されます。

 

前ページで作成した”cpu.mif”ファイルを開きます。

 

MIFファイルを開くと以下のような編集画面が表示されます。自作CPUのプログラムを書き込む時には以下のようなMIFファイルの編集画面で数値を入力していきます。番地は左上の0番地から始まり、右方向へ+1ずつ増えていきます。+7まで来たら折り返して2行目左端の8番地へ飛び、以降は同様にして右方向へ+1ずつ増えていきます。各番地への数値入力は10進数で行います。今回作成したMIFファイルは「Word size:」に8ビットを指定しましたので入力可能な数値は0〜255までの数値になります。

 

スポンサーリンク

上で示した機械語プログラムを入力すると以下のようになります。

 

編集が完了したらメニューから「Processing」->「Start Compilation」を選択します。

 

“cpu.mif”への変更が保存されていない場合は以下のようなメッセージが表示されます。”Yes”を押すと保存されます。

 

コンパイルが成功すると以下のメッセージが表示され、”cpu.mif”へ書き込んだプログラムが実行できる状態になります。(”cpu.mif”の内容は変更するたびにコンパイルが必要です。)

 

<戻る       次へ>

 

スポンサーリンク