●EXCELから画素や係数をコピペ・・・手作業じゃ大変

 ROM関係(画像ROM、フィルタ係数ROM)は手作業でVHDL化するには煩雑すぎるので、
EXCEL+VBAを使って自動生成させます。


■EXCELファイルからVBAを実行する方法

 このEXCELファイルをダウンロードし、適当なディレクトリにコピーしてから開きましょう。1枚目のシートX0withPadはMNIST画像の最初の1枚(数字の7)です(図6-40)。元画像は28×28画素ですが、パディングを施して
30×30画素になっています。


  図6-40 これを自動的にVHDLファイルに貼り付ける


●EXCELの開発ツールを有効にする

 そこで
VBA (Visual Basic for Application)という機能を使います。まずは図6-41のようにEXCELの「ファイル」→「オプション」→「ユーザー設定」から「開発」をチェックしましょう。


  図6-41 VBA開発できるように設定する


 すると図6-42のように「開発」タブが現れるのでクリックし、左のVisual Basicをクリックします。


  図6-42 開発タブからVisual Basic



●VBAマクロを開いて走らせる

 左枠のVBA ProjectからModule1をダブルクリックすると図6-43のように
Sub makeTextPixから始まるVBAマクロが現れます。

  図6-43 VBAマクロを開く


 マクロを走らせる前にこのアーカイブを解凍し、図6-44のようにvbaoutputフォルダをEXCELファイルと同じディレクトリにコピーします。

  図6-44 VBAの結果を出力するディレクトリ


 その後マクロ実行ボタン(三角マーク)をクリックすると図6-45のようなダイアログが現れます。


  図6-45 ダイアログが現れる

 vbaoutputフォルダの中にdataX.txtというテキストファイルができています。1番目のシートX0withPadが2進値となってEXCELから転写されています(図6-46)。



  図6-46 テキストファイルに画素データの2進値


 次にModule2をダブルクリックすると図6-47のようにSub margeTextPixから始まるVBAマクロが現れます。同様に三角マークでマクロを実行します。


  図4-47 VHDLファイルを生成するマクロ


 「ROM_X.vhdに書き出しました」というダイアログが現れ、vbaoutputディレクトリに同VHDLファイルが出来ています(図4-48)。


  図4-48 画像ROMのVHDLファイル


次のページへ


目次へ戻る