8-06 vgg-11, 12, 13層目のVHDL化(続き)

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

 図8‐104はModelSimシミュレーションのようすです。積和演算→ビット削減→ReLuの結果、Relu_00〜31という信号になります。そこまでは32個の信号ですが、同図ではRelu_14を46.08us毎にデマルチプレクスして16個の信号reg_14_00〜15に分解しています。
 このように処理するので、出力の1画素を計算するのにかかる時間は 90ns x 512 x 16 = 737.28us になります。


図8‐104 出力1画素計算に737.28us


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

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


図8‐105 1ライン計算に27.648ms

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

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


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


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

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

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

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

次のページへ



目次へ戻る