●2層目の結果をRAMに溜め込む部分

 1層目の重み行列は50×100なので乗算結果は100個です。それらは7つのグループに分けられて並列に計算されます(図3-25のシグモイド結果Z0, Z1, ... Z99)。それらはマルチプレクサで多重化されます(Z_WR_DATA、下から2段目)。

 2層目の結果(Z0, Z1, ... Z99)はいったんRAMに書き込まれます。図3-25のようにRAMの書き込みアドレスZ_WR_ADDRと、書き込みイネーブルZ_WR_Nを生成します。


 書き込みアドレスは同図Z_WR_ADDRのように0, 16, 32, ... 96となります。次のシーケンスでは1, 17, 33, ... 97、このシーケンスを16回繰り返して終了です。


  図3-25 2層目の結果をRAMに書いて3層目が読む


 図3-25のタイムチャートを基にVHDL化するとリスト3-22のようになります。addr4ramはCO50から4を引いたもので、その下位3ビットがZ_WR_ADDRの上位3ビットになります。
 またadd4ramが0〜6の期間をBUSY信号でマスクしてZ_WR_Nになります。

  リスト3-22 RAM_Z2に入力する信号


次のページへ


目次へ戻る