9-02 Affine1,2層目のVHDLファイル自動生成(EXCEL+VBA)

●重み係数ROMファイルはたくさんあるので自動生成させる

 第1部でも行ったように、重み係数ROMはEXCEL+
VBAでVHDLを自動生成させます。図9-10のように開発タブからVisual Basicをクリック。



 図9-10 VBAを開始する


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


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


●VBAマクロを2つ開いて順番に走らせる

 左枠のVBA Projectから
Module2、Module3をダブルクリックすると図9-12のようにSub makeTextW7、margeTextW7から始まるVBAマクロが現れます。


 図9-12 重み係数のROMを生成するマクロ


 makeTextW7、margeTextW7の順に実行(上図の三角マーク)を押すとvbaoutputフォルダにVHDLファイルが50個(ROM_W7_00〜15)が生成されます(図9-13)。 


 図9-13 50個のROMファイルが生成される(Affine1層目の重み係数)


●Affine2層目も係数ROM自動生成

 Module6, Module7を実行するとAffine2層目の重み係数ROMのVHDLを生成できます。表9-01にaffine_layer12.xlsmのVBAマクロを示します。

  表9-01 affine_layer12.xlsmの主なVBAマクロ一覧
モジュール名 マクロ名 機能 ファイル数
Module1 affin12_in Affine1層目の入力1024個をconv_layer6.xlsmから転写する -
Module2 make TextW7 1層目重み係数ROM用のテキストファイルを生成 50
Module3 marge TextW7 1層目重み係数ROMのVHDLファイルを生成 50
Module4 makeTextPix 1層目入力画像ROM用のテキストファイル生成 1
Module5 makeTextB7 1層目バイアス用のテキストファイルを生成 1
Module6 make TextW8 2層目重み係数ROM用のテキストファイルを生成 10
Module7 marge TextW8 2層目重み係数ROMのVHDLファイルを生成 10
Module8 af2_makeTextPix 2層目入力画像ROM用のテキストファイル生成 1
Module9 makeTextB8 2層目バイアス用のテキストファイルを生成 1


目次へ戻る