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個もあるので、前層までと同様にバッチファイルによって比較し、全てのチャネルがピタリ一致することを確認します。 |
次のページへ
目次へ戻る |