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

●Modelsimという無償の論理シミュレータを使う

 このアーカイブを解凍してシミュレーションします(*6)。vgg-1層目はconv_layer1で、その下にdotpro_00〜63があります(図8‐06)。これらは積和演算回路で、64個並列に動作します。

(*6)ModelSimの使い方(シミュレーションの走らせ方)はこの辺りが参考になります。


図8‐06 dotpro(積和乗算器)が64個ある


●入力画像と重み係数を掛けて足し込んでいく

 
図8‐07は積和演算の部分で、入力画像PixRomDataと係数MatRomDataが乗算されてmuloutとなり、それが累積されていくようすがaddoutに見て取れます。


 図8‐07 積和演算のようす


●2層目のパディングを考慮しながらの書き込み

 図8‐08は1層目の出力を書き込む部分、RAM_X1_0はに1ラインぶん(300個)のデータを書き込みます。アドレスRAM_X1_WR_ADDRは1〜300(*7)、データは5bit x 64ch = 320bitになります。

(*7)アドレスは0〜299ではなく、次層のパディングを考慮して1〜300に書く。


図8‐08 アドレス9ビット、データ320ビットのRAMに出力をため込む


●ラインバッファは4個、順番に書き込む

 出力用RAMは4個(4ラインぶんのバッファ)あり、図8‐09のように順番に書き込まれます(RAM_X1_WR_N_0〜3が順番にイネーブルになっている)。


図8‐09 ライトイネーブルがLのとき書き込み


次のページへ



目次へ戻る