6-08 シミュレーションがPythonやEXCELと合っているか確認

 このアーカイブを解凍してModelSimで開きます(その使い方はここ参照)。コンパイル(compile all)の後、

 do run.do

 このコマンドで論理シミュレーションがスタートし、200usで自動的にストップします。


●リードアドレス発生回路

 do wave.do

 上記コマンドを実行すると波形が現れます。図6-60は7.7us付近を拡大したものです。

 X_RD_ADDRは32, 33, 34, 62, 63, 64, 92, 93, 94となっており、この図と同じ順番で出てきているのが分かります。これが画像ROMのリードアドレスになります。


  図6-60 リードアドレス発生のようす(7.7us付近)


●積和演算、、バイアス加算、Reluの回路

 図6-61は170.56us付近を拡大したものです。乗算結果mulout_dlyが累積されたものがaddoutとなっていることが分かります。

 mulout_dlyが9個累積したときのaddoutの値が取り出され、MATMULOUTとなっています。これが積和の結果になります。

 それを8ビット右シフトしたものがMATMULOUT_sftになります。

 それにBIASを加算したものがAOUTです。

 AOUTが正のときはそのまま出力、負のときは0を出力してReluとなります。


  図6-61 積和演算、バイアス加算、Reluのようす(170.56us付近)


●ライトアドレス発生回路

 図6-62は7.6us付近、演算結果を画像RAMに書き込む部分です。この図のようにパディングを施した状態で書き込むため、画像の端で書き込みアドレスが飛びます。X_WR_ADDRが56, 57, 58と続いた後、61に飛んでいるのが分かります。


  図6-62 ライトアドレス発生のようす
7.6us付近)


次のページへ


目次へ戻る