8-04 vgg-5, 6, 7層目のVHDL化(続き)

●Relu_XXは8chぶん多重化されているので分離する

 図8‐64はModelSimシミュレーションのようすです。積和演算→ビット削減→ReLuの結果、Relu_00〜31という信号になります。そこまでは32個の信号ですが、同図ではRelu_24を11.52us毎にデマルチプレクスして8つの信号reg_24_0〜7に分解しています。

 このように処理するので、出力の1画素を計算するのにかかる時間は 90ns x 128 x 8 = 92.16us になります。


図8‐64 Relu_24の値 4, 0, 0, 1, 0, 5, 0, 1 がそれぞれreg_24_0, 1, 2,... 7に渡される

●5層目の出力がバッファに書かれるようす(env内)

 そして1ラインは75画素なので 92.16us x 75 = 6.912ms で1ライン計算します。図8‐65のReluWrSelは出力ラインバッファ(4個)の切り替え信号で、6.912ms周期で切り替わっています。


図8‐65 出力1ライン計算に6.912ms

●relu.outに出力が書かれている

 5層目も出力はテキストファイルに落とされます。図8‐66はrelu.outの最後の部分、75×75画素なので1画面で5625行、また出力は256チャネルなのでビット幅は 5bit x 256 =
1280bit になります。これをVBAで256個のCSVファイルに分割してPythonの結果と比較します。


図8-66 relu.outに5層目の結果が書かれる


●バッチファイルでまとめて比較する

 CSVファイルが256個もあるので、前層までと同様にバッチファイルによって比較します。その結果は図8-67のようになり、全てのチャネルがピタリ一致しています。


図8-67 コマンドプロンプトでtest5.batを走らせる


●5層目のファイル類はここ

プロジェクトのアーカイブ
EXCEL+VBA
relu.out
Pythonの結果
バッチファイル

次のページへ



目次へ戻る