7‐02 2層目の重み係数とバイアスのHDL生成

●8種類に限定された係数シート

 ここでPythonをEXCEL化した際の2層目のファイル(TS_layer2.xlsm)を開きます。W2_Biasシートに重み係数がありますが、それらは
8種類(+64, +32, +16, +4, -4, -16, -32, -64)しかありません(図7‐04)。


図7-04 みな2の累乗なのでビットシフト乗算できる

●Visual Basic for Applicationウインドウ

 図7‐05のようにVBAから
Module10を開きます。このマクロ(TS_makeTextW2)はW2_Biasシートの重み係数をエンコードして結合するものです。

図7‐05 TS_makeTextW2 (Module10)

●ROMDATA(0)〜(35)が生成される

 マクロを実行すると
vbaoutputディレクトリ(これを展開)にdata00〜03.txtが生成されます(図7‐06)。W2_Biasシートの各セルがエンコードされて横一行になっています(*1)。

(*1)-64=100, -32=101, -16=110, -4=111, +4=000, +16=001, +32=010, +64=011と3ビットにエンコード。それを横一行なので3x32 = 96ビットになる。ROMDATAは0〜35まで(入力16ch/4 = 4ch, カーネル3x3なので4x9 = 36)


図7‐06 ビット幅96bit、アドレスは0〜35

●VBA2つでHDLファイル完成

 つぎに
Module11を開いて実行します(図7‐07)。TS_margeTextW2というマクロで、これにより係数ROMのHDLファイルとなります。

図7‐07 もう一つVBAを実行


次のページへ


目次へ戻る