■論理シミュレーション

 このアーカイブを解凍してModelSimで開きます(その使い方はここ参照)。コンパイル(compile all)の後、
 do run.do
 このコマンドでシミュレーションがスタートし、34usで自動的にストップします。



●並列動作のようすを波形で確認

 do wave.do
 上記コマンドを実行すると図3-28のように波形が現れます。MatRomData_00〜06はROMを選択するマルチプレクサの出力です。このように
7個のROMが同時に読み出され、並列に演算されます。


  図3-28 重みROMデータが7個同時に読み出される


●2層目の演算結果の確認

 図3-29のZ_WR_DATA_00〜06を見てみましょう。14us付近で現れる値がdotpro_sigmoid_w2_00〜06内で行われた演算結果になります。
 同図とこのEXCELのz2の行を見比べると、演算結果が
ピタリ一致していることが分かります。


  図3-29 14us付近から2層目の結果

●2層目の結果をRAMに書いて3層目に渡す

 図3-30はZ_WR_DATA_00〜06をマルチプレクサで多重化してRAM_Z2に書き込む最初の部分です。アドレスZ_WR_ADDRは0, 16, 32, ... 96と書き込んでいきます。


  図3-30 2層目の結果をRAMに書き込む。アドレスは0, 16, 32, ... 96

 図3-31はRAM_Z2への書き込みが終わる部分です。アドレスZ_WR_ADDRは15, 31, 47, ... 111と書き込んでいきます。なお、2層目の結果は100個なのでアドレス100以上は無効になります。


  図3-31 2層目の結果をRAMに書き込む。アドレスは15, 31, 47, ... 111


次のページへ


目次へ戻る