8-01 vgg-1層目のVHDL化(続き)

●出力64チャネルを別々のファイルに

 図1‐17のようにModule21を開いて実行します。数分かかるかもしれませんが、
EXCELシート上に「lay1sim_xx.txtに書き出しました」とウインドウが現れます。vbaoutputフォルダにファイルが64個生成されます。今まで64チャネルが一緒くたになっていたのを、1チャネル1ファイルに分けたものです。


図8‐17 Module21を実行すると64個のファイルができる


●64個のTXTファイルをCSVファイルにする

 図8‐18のようにModule22を開いて実行すると、EXCELシート上に「lay1sim_xx.csvに書き出しました」とウインドウが現れます。vbaoutputフォルダにCSVファイル(300行×300列)が64個生成されます。これらをPythonの結果と比較します。


 図8‐18 Module22でCSV化


●バッチファイルでまとめて比較する

 このアーカイブはPythonの結果です。解凍すると64個のCSVファイル(lay1out_00〜63.csv)が現れるのでEXCELのフォルダに置きます(vbaoutputの
上のフォルダ!)。これらをシミュレーション結果(lay1sim_00〜63.csv、これらはvbaoutputフォルダにある)と比較します。

 64個のファイルを1個1個比較するのは大変なのでバッチファイルで処理します。
 Windowsの「コマンドプロンプト」を開き、このバッチファイルをEXCELフォルダにおいて実行します。すると図8‐19のように64個のファイル同士が比較されるので、不一致がないことを確認します。


図8‐19 コマンドプロンプトでtest1.batを実行


●整数で乗算・加算させているので必ず一致する

 シミュレーション結果がPythonとピタリ一致したということは、少なくとも
vgg-1層目が正しくHDL化されたことを意味します。
 もし一致しないときはシミュレーションで途中経過を丁寧に見ていきますが、その際の比較対象はPythonよりもEXCEL(ここでいったんEXCEL化したことを思い出そう)が良いと思います。

 1層目のシミュレーション結果(relu.out)は
2層目の入力として使います。2層目も同様にシミュレーションしてPythonとの一致を見ます。


次のページへ



目次へ戻る