■出力画像の書き込み


●読み出し→演算→書き込み

 図8-54は3層目をVHDL化した際のブロック図です。「画像ROM」にはあらかじめパディングを施された16×16の画素データが入っています。

 そして画像ROMのリードアドレスを図8-53にならって生成すれば、im2col関数と同じ順番で画素が出てきます。そうして得られた画素データと重み係数との積和演算(乗算はビットシフトで)を行います。

 その後はバイアス加算→Reluと施し、最後に演算結果を「画像RAM」に書き込んで畳み込み3層目は終了です。


  図8-54 ROMから読んで演算してRAMに書いて終わり


●パディングを施した状態でRAMに書いておくと次の層で楽

 X_WR_DATAからは14×14の画素値が出てきますが、これらを
パディングを施した状態で画像RAMに書き込んでおくと後々の層で便利になります。

 図8-55の白の部分は14×14の画像、灰色の枠はそれにパディングを施して
18×18の画像にしたものです。出力パディングの幅はであることに注意しましょう。

 白の画像には0〜195まで番号が付けられています。この番号をn番地と呼ぶことにします。
 また灰色の画像には0〜323まで番号が付けられており、この番号をm番地と呼ぶことにします。



  図8-55 出力のパディングの幅は2なので18x18になる


 mとnの関係は同図のように、m = 18V + 38 + H となります。ここでVとは縦方向14進カウンタ(VCO14)の値、Hは横方向14進カウンタ(HCO14)の値です。
 したがって図8-56のような回路で画像RAMの書き込みアドレスを生成できます。


  図8-56 書き込みアドレス生成回路


最初のページへ


目次へ戻る