■論理シミュレーション
このアーカイブを解凍してModelSimで開きます(その使い方はここ参照)。コンパイル(compile all)の後、
do run.do
このコマンドでシミュレーションがスタートし、77usで自動的にストップします。
●並列動作のようすを波形で確認
do wave.do
上記コマンドを実行すると図3-08のように波形が現れます。MatRomData_00〜49は各重みROMからの出力です。このように50個のROMが同時に読み出され、並列に演算されます。 |

図3-08 重みROMデータが50個同時に読み出される
●1層目の演算結果の確認
図3-09のZ_WR_DATA00〜49を見てみましょう。13us付近で現れる値がdotpro_sigmoid_00〜49内で行われた演算結果になります。
同図とこのEXCELのz1の行を見比べると、演算結果がピタリ一致していることが分かります。 |

図3-09 13us付近から1層目の結果
●1層目の結果をRAMに書いて2層目に渡す
図3-10はZ_WR_DATA00〜49をマルチプレクサで多重化し、RAM_Z1に書き込む部分です。dotpro_sigmoid_00〜49の内部では並列に演算が行われますが、その結果はこのように1サイクル毎ずらしながらRAMに書き込まれます。 |

図3-10 RAMには1個づつ書く
| 図3-11はRAM_Z1への書き込みが終わる部分です。1層目の演算結果z1は50個なので、ここで50サイクル時間がかかります。 |

図3-11 RAMに50個書くのに50サイクル
次のページへ
目次へ戻る
|