8-01 vgg-1層目のVHDL化(続き)

●VBAモジュールの説明

 EXCELファイル(SSD_layer01_gen.xlsm)にはいくつかのVBAモジュールがあり、それらによりシートの生成、VHDLの生成、シミュレーション結果の並び替えなどを行います。


 Module01〜06はここで説明しました。これらは畳み込み演算などを行いながらシートを生成し、出力を得るためのものです。

 またModule20〜22は前のページで説明しました。

●ファイル生成はVBAで自動化する

 Module10〜12はシミュレーション用ファイルやVHDLファイルを生成するためのものです(表8‐01)。

 表8‐01
動作 生成ファイル/シート 備考
Module10 入力データを符号なし化&結合 B5bit, G6bit, R5bit, RGB565 Gは6bit, BRは5bit, 結合後16bit
Module11 シム用SDRAM初期化値生成 initmem.txt RGBHEX300シートから生成
Module12 重み係数のVHDL生成 dataUnified.txt W1_Biasの各行を576bitに結合


 1層目の入力は3チャネルあり、Ch00シートがB()、Ch01シートがG()、Ch02シートがR()です。入力はCMOSカメラモジュールを想定しているので、そのフォーマットはRGB565、すなわちR, Bが5ビット、Gは6ビットです。従ってCh00, Ch02シートは下位3ビットが0、Ch01シートは下位2ビットが0になっています(図8‐22)。


図8‐22 Ch00は-128〜+127の範囲だが下位3ビットが0(みな8の倍数)なので実質5ビット


 Module10はそれらの下位ビットを取り去り、さらに符号なしにして結合するためのものです。

 Module11は結合したRGB565のデータを並び替えて、SDRAMのシミュレーションモデルの初期値とするためのものです。

 Module12は重み係数をVHDL化するためのものです。図8‐23のようなファイル(dataUnified.txt)が生成されます。


図8‐23 64個のセルにある9ビットのデータを一つに(まとめたほうがシムが速くなる)


●重み係数ROMはアドレス5ビット、データ576ビットになる

 重み係数はW1_Biasシートにあり、それを2進数にしたものがW1_Bias_binシートです。Module12はその各行を結合して1つのデータにします。各セル9ビット、横に64列あるのでビット幅は9 x 64 = 576ビットになり、27行あるのでアドレスは0〜26になります。


最初のページへ



目次へ戻る