8-05 vgg-8, 9, 10層目のVHDL化(続き)

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

 図8‐85はModelSimシミュレーションのようすです。積和演算→ビット削減→ReLuの結果、Relu_00〜63という信号になります。そこまでは64個の信号ですが、同図ではRelu_41を23.04us毎にデマルチプレクスして8つの信号reg_41_0〜7に分解しています。
 このように処理するので、出力の1画素を計算するのにかかる時間は 90ns x 256 x 8 = 184.32us になります。


図8‐85 出力1画素計算に184.32us


●8層目の出力がバッファに書かれるようす

 そして1ラインは38画素なので 184.32us x 38 = 7.00416msで1ライン計算しますが、その後休み期間があるので図8‐86のように13.824ms毎に1ラインをバッファに書き込みます。同図のように出力ラインバッファ(4個)が13.824ms周期で切り替わっています。


図8‐86 1ライン計算に13.824ms

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

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


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


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

 CSVファイルが512個もあるので、前層までと同様にバッチファイルによって比較し、全てのチャネルがピタリ一致することを確認します。

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

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

次のページへ



目次へ戻る