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のリンク先にその説明があります。 |
目次へ戻る
|