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