GTKWaveでの操作が重く、作業性が非常に悪い。

そこで、波形ダンプの代わりにアキュムレーションRAMに書き戻すデータをテキストファイルに書き出し、それをCモデルの結果と比較することにした。

出力されたテキストファイルのデータをCモデルの出力形式と同じになるように加工し、pic_gen.cshとavidemuxで動画化してみたところ、不具合の波形が再現された。
このシミュレーションでは浮動小数演算器の部分はVPIタスク化して、CPUによる演算で代用している。それでも異常が出るということは、少なくとも浮動小数演算器の単体動作は問題無いと言えそうだ。次にデータをCモデルの出力とを比較してみたところ109番(ファイル番号は0基点なのでファイル名は108になっている。)以降で不一致が見つかった。

この108のデータについて、シミュレーション出力とCモデルの期待値の差分をグラフ化してみた。

このデータは前半1024点がL側、後半1024点がR側となっている。グラフから後半で不一致が発生している。109以降では以下のように両chで不一致となっていた。

ということで、108周辺に絞って波形ダンプして各部の状態を確認することにした。
0 件のコメント:
コメントを投稿