5

modelsim または ghdl によって実行されたシミュレーションから内部信号をダンプしようとしています。以下を使用してすべてが正常に機能します。

modelsim の場合、vhdl ソースを追加し、すべてをコンパイルします。

vsim -novopt work.uut_testbench
vcd file ../uut.vcd;
vcd limit 50000000;
vcd add -r /uut_testbench/uut_core/*;
run 6000
quit -sim

GHDLの場合

ghdl -i --ieee=synopsys --warn-no-vital-generic --workdir=work --work=work ./uut*.vhd 
ghdl -m --ieee=synopsys --warn-no-vital-generic --workdir=work --work=work uut_testbench
./uut_testbench --stop-time=6000ns --vcd=../uut.vcd

シミュレーション信号を確認できますが、すべてではありません。として定義されたシグナル

Type InternalState is (Idle,Valid,Stalled);
Signal sState,sPrevState :InternalState;

vcd から除外されます。この動作は、modelsim と ghdl で共通です。

ghdl で生成された vcd に次の行が表示されます。

$comment sstate is not handled $end

Modelsim はこれらの信号を静かに省略します

回避策はありますか? 別?

4

3 に答える 3

2

Tony Bybellのgtkwaveを試してみてください。ここでは、値の列挙置換を割り当てることができます(gtkwaveのマニュアルの「クイックスタート」、「エイリアスファイル」および「外部逆アセンブラのアタッチ」)。Gtkwaveは、ghdlのネイティブ波形フォーマット(ghw)とも互換性があります。SourceForgeのGtkwaveを参照してください。マニュアルへのリンクがあり、W32およびMacアプリのバイナリをダウンロードするためのリンクがあります。また、ほぼすべてのLinuxディストリビューションから入手できるはずです。

于 2012-03-12T04:17:06.897 に答える
2

@ user1155120 が述べたように、GHDL のネイティブ形式 ( .ghw)カスタム型をサポートしており、GTKWave で読み取ることもできます。

この波形タイプは、 経由でエクスポートできます--wave<=FILENAME>

それにもかかわらず、私は将来的に波形でもカスタムタイプをサポートするためにイシューを提出しました!.vcd

于 2018-09-09T10:04:48.160 に答える
0

シミュレーターは、値変更ダンプ ファイルで可能なスカラー変数またはベクター変数を使用して InternalState 型を表す方法を認識していません。たとえば、 std_ulogic ベクトルを使用して状態を表す場合、それらは VCD ファイルに表示されます。優れた波形ビューアを使用すると、状態エンコーディングを状態名に置き換えることができます。user1155120 によってすでに指摘されているように、Gtkwave はこれをサポートしています。IEEE Std 1800-2012 では、セクション 21.7 VCD ファイルとその制限について説明しています。

于 2016-04-13T12:36:19.837 に答える