4-05 その他連続データの生成

●係数ファイルの生成以外でもVBAを使う

 4層目のEXCEL(TS_layer4.xlsm)のVBAからModule
16を開いて実行してみましょう(図4‐40)。するとvbaoutputディレクトリにdotpro_many.txtというファイルが生成されます。

図4‐40 dotpro_w4.txtというファイルを開いて文字を置換するVBAマクロ

●各層VBAを使ってHDLファイル生成

 
dotpro_many.txtを開くと図4‐41のように積和演算器(dotpro)が512個インスタンス化されています。
 それぞれに番号がdotpro_xxx_yyと付けらています。xxxは0〜127、yyは0〜3、それらに応じて信号にも名前が付けられています。

 単純に見えますが、512個もあると
手作業では大変ですし、疲れてくると間違いも起こり得ます。したがってVBAを使ってHDLコードを自動生成し、conv_layer4.vhdというファイルにコピペします。
 VBAのプログラム自体は簡単です。図4‐40を見ると大体分かると思います。

図4‐41(a)
     :     :      :
図4‐41(b)
     :     :      :
図4‐41(c)

●4層目のHDL化を手助けするVBAマクロたち

 TS_layer4.xlsmにはそのようなVBAマクロが数個あります。以下に簡単な説明。
モジュール マクロ名 生成する連続データ
Module13 TS_makecomac signal coeff_xxx_yy, mac_xxx_yy など
Module14 TS_makecoeffall coeff_xxx_yy <= W4Data など
Module16 TS_makedotpro dotpro_xxx_yy : dotpro_w4 など
Module17 TS_makeshift MacAll_xxx <= mac_xxx_yy など
Module18 TS_makepoolall pooling_max_xxx : pooling_max など
  表4‐03 xxxは0〜127、yyは0〜3まで

●AIのハード化には必須の「HDL自動生成」

 表4‐03は4層目のマクロですが、他の層にもHDL自動生成マクロがあるので参考にしてください。
 ディープラーニングでは一つの回路を何百もインスタンス化することが多々あります。それに伴うNotation(名前や番号を付ける作業)は極力
自動化するのが良いでしょう。

目次へ戻る