4-01 重み係数とバイアスのHDL生成

●係数ROMは手作業でHDL化するのは大変

 各層の
重み係数はハードウェアではROM(初期値付きのRAM)に置かれます。係数の数はこのように非常に多く、一つ一つ手作業でROMのHDLファイルにコピペするわけにはいきません。

 
そこでEXCELのVBA(Visual Basic for Application)を使って、HDLファイルを自動生成します。

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

 1層目のEXCELファイル(TS_layer1.xlsm)ではVBAを使ってシートを生成していきました(Module01〜07を実行)。
 1層目の重み係数ROMのHDLファイルは
Module12を使って生成します。表4‐01のリンクを参考にしてください(*1)。

(*1)係数やバイアスのファイルはvbaoutputディレクトリに生成されます。マクロ実行前に、これを展開してEXCELと同じ場所にvbaoutputディレクトリを置きます(それがないとエラーが出る)。

マクロ ファイルの数 備考
1層目 Module12 1 TS_layer1.xlsm
2層目 Module10, 11 4 TS_layer2.xlsm
3層目 Module10, 11 2 TS_layer3.xlsm
4層目 Module10, 11 4 TS_layer4.xlsm
5層目 Module10, 11 16 TS_layer56.xlsm
6層目 Module15 1 TS_layer56.xlsm

表4‐01 重み係数をファイルに転写するVBAマクロ

●せっかくだからバイアスも自動生成

 また、
バイアスも同様にVBAを使ってHDLを生成します。バイアスは重み係数と比べて数は少ないのですが(出力チャネル数と同じになる)、VBAで自動生成するほうが間違いがなくて良いと思います。表4‐01のリンク先にその説明があります。

目次へ戻る