8-05 vgg-8, 9, 10層目のVHDL化(続き)
●Relu_XXは4chぶん多重化されているので分離する
図8‐91はModelSimシミュレーションのようすです。積和演算→ビット削減→ReLuの結果、Relu_00〜127という信号になります。そこまでは128個の信号ですが、同図ではRelu_84を46.08us毎にデマルチプレクスして8つの信号reg_84_0〜3に分解しています。
このように処理するので、出力の1画素を計算するのにかかる時間は 90ns x
512 x 4 = 184.32us になります。 |
図8‐91 出力1画素計算に184.32us
●9層目の出力がバッファに書かれるようす
そして1ラインは38画素なので 184.32us x 38 = 7.00416msで1ライン計算しますが、その後休み期間があるので図8‐92のように13.824ms毎に1ラインをバッファに書き込みます。同図のように出力ラインバッファ(4個)が13.824ms周期で切り替わっています(ReluWrSel)。 |
図8‐92 1ライン計算に13.824ms
●relu.outに出力が書かれている
9層目も出力はテキストファイルに落とされます。図8‐93はrelu.outの最後の部分、38×38画素なので1画面で1444行、また出力は512チャネルなのでビット幅は
5bit x 512 = 2560bit になります。これをVBAで512個のCSVファイルに分割してPythonの結果と比較します。 |
図8-93 relu.outに9層目の結果が書かれる
●バッチファイルでまとめて比較する
CSVファイルが512個もあるので、前層までと同様にバッチファイルによって比較し、全てのチャネルがピタリ一致することを確認します。 |
次のページへ
目次へ戻る |