9-03 extras-5, 6層目のVHDL化

extras-6層目はカーネルが3x3になる

 extras-5層の出力はextras-6層に入力されます。図9-39は6層目のタイミングのイメージを示します。

 extras-6層目の入力は128ch、出力は256chになります。この層はカーネルが
3x3になります。この層では1つの乗算器で出力を256ch、1並列(1個の乗算器)で計算が間に合います。


図9-39 extras-6層目のタイミングのイメージ


●256ch×1並列なので出力256ch

 図9-23の上段はoutCh0,1,2,...255を計算するようすです。これら出力256chは1個の乗算器で「逐次的に」計算されます。したがって1画素の計算にかかる期間は90ns x 128 x
256 = 2949.12usになります。

 この層の入力は5x5画素ですが、出力は
3x3画素になります(その手法は後述)。したがって2949.12us x 3 = 8.84736msで1ライン計算しますが、同図右にあるように「休み期間」が101ms程度あるので計110.592msで1ライン、1画面3ラインなので110.592ms x 3 = 331.776msで1画面の計算が終わります。(*1)

(*1)ライン周期は前層と同じになる。したがって同図右下にあるように3ライン計算して2ライン休み期間になる

●extras-5層目の出力がextras-6層目の入力になる

 extras-5層目のシミュレーション結果relu.outの名前を変えてex6.inとし、それがextras-6層目の入力になります。図9-40のようにRAM_X1_0〜3(入力バッファ、
4ラインぶん、カーネルが3x3なので)にex6.inの内容が書き込まれます。

 conv_ex6は入力バッファからの画像を処理してRAM_X2_0〜1(出力バッファ、
2ラインぶん、次層はカーネルが1x1なので)に書き込みます。1ライン3画素なのでアドレスは4、出力256chなのでデータ幅は8bit x 256 = 2048bitになります(extras層は1画素8ビット)。


図9-40 extras-6層目のブロック図


次のページへ



目次へ戻る