問題タブ [questasim]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2821 参照

tcl - tcl を使用して、Modelsim で特定の信号が特定の値を持つタイミングを見つける

デバッグを高速化しようとしています。大きなトレースでは、信号の特定の値を検索しています。LinuxでQuestaSim 10.0bを使用しています。

次のコマンドを使用して、Modelsim/QuestaSimで実行できることをすでに発見しました

残念ながら、これは値が 'XX' の場合、シグナル 'stream' にも一致しますが、0x20 のみに一致させたいと考えています。16 進値のみに一致し、未定義の値には一致しないことを確認するにはどうすればよいですか?

0 投票する
1 に答える
753 参照

system-verilog - QuestaSIM のカバレッジでサンプリングされたビンのソースを取得する方法

私は QuestaSIM を使用しており、回帰からマージされたカバレッジ レポートを持っています。

マージされたカバレッジ レポートから、サンプリングされたビンをそのシミュレーション (テスト名とシード値) まで追跡するにはどうすればよいですか?

0 投票する
2 に答える
7807 参照

system-verilog - Coverage Systemverilog の動的カバーポイント

このコードでは、尊重される num_ns 構造に関連付けられた範囲で slba をカバーする必要があります。

ただし、このコードでは、範囲は num_ns[0] のみに従って分割されます。

では、同じカバーポイントを再利用して、サンプリング時間の変数値に応じてダイナミック レンジを生成するにはどうすればよいでしょうか?

0 投票する
1 に答える
1656 参照

struct - Systemverilog: 構造体をモジュールの入力\出力として渡すとシミュレーション エラーが発生する

ある構造を入力として渡し、別の構造で出力を取得しようとしています。ただし、シミュレーション中にいくつかの問題が発生しています。次のサンプル コードは questasim で正常にコンパイルされますが、シミュレーションで次のエラーが発生します。

接続タイプ 'core_tb_sv_unit.struct ' は、ポート (struct_in) の 'core_sv_unit.struct ' と互換性がありません: 構造体/共用体のタイプが一致する必要があります。

MyStruct.sv

core.sv

core_tb.sv

私は何が欠けていますか?.

ここではインターフェイスが推奨されるワークフローであることは知っていますが、モデルへの入力は DPI を使用して C ルーチンに渡されます。DPI インターフェイスは構造体をサポートしていますが、インターフェイスをサポートしているとは思いません。だからこそ、シンプルな構造にこだわりたい。

0 投票する
1 に答える
2620 参照

vhdl - Questasim での .xci ファイルのシミュレーション

私はLinuxを使用してquestasim 2012.2bいます. VHDL で次のように記述しました。

上記を questasim でシミュレートしようとするたびに、コンパイル時に次のようなエラーがスローされます。

失敗した行で上記のコードを参照します。

dsp_c.vhdいろいろ調べてみると、ファイルのシミュレーション ラッパーのように見える: というファイルが見つかりました.xci

次に、ライブラリを見つけようとしましたが、xbip_dsp48_macro_v3_0内部に 2 つのファイルがあるという名前のフォルダーを見つけました。xbip_dsp48_macro_v3_0.vhd xbip_dsp48_macro_v3_0_vh_rfs.vhd

だから私もプロジェクトにそれらを含めます、それは私にエラーを与えます:

xbip_dsp48_macro_v3_0.vhd(46)): in protected region

何がうまくいかないのか、何を含める必要があるのか​​ 考えていますか? 私のクエスタシムは古すぎるのでしょうか?

より詳しい情報

Tcl経由でこの方法でコンパイルされたファイルを取得しようとしました:

対応するコンパイル済みブロックを含むすべての IP のフォルダーを生成します。今、私は最初に.depに追加することができました:

make project を実行すると、次のようになります。

だから私はライブラリを含めてみました:

それは保護されていると言います:

詳細情報

フォルダー dsp_c にあるライブラリを生成するために vivado を取得しました。

私の Tcl スクリプトは次のようになります。

結果

これに変更:

それからそれを実行しました...

0 投票する
1 に答える
1194 参照

system-verilog - ロールオーバー後の Questa での予期しない、存在しない連想配列の警告

通常、連想配列複写では、ロールオーバーの問題はツールによって処理されます。しかし QuestaSIM では、連想配列のキーが 64 ビット変数の場合、オーバーフロー後にデータが正しく格納されないなどの問題に直面しています。

index が であると仮定すると65'h1_0000_0000_0000_0002、理想的に64'h2は、キーのサイズのために、このデータを index で保存する必要があります (連想配列全体と出力の exists メソッドも出力したので、それでもそうします)が、それでも存在しないという警告が表示されます連想配列 (出力に示されているとおり)。

コードは次のとおりです:(3つの異なるロジックでbounded_addressメソッドを試しましたが、すべての場合で同じ結果が得られます)

0 投票する
3 に答える
1057 参照

system-verilog - systemverilog で組み込みのサンプル メソッドをオーバーライドする

私の質問は、(組み込みのサンプル メソッドをオーバーライドした後) 複数のスレッドでカバーポイントを同時にサンプリングすると、何らかの副作用が生じるかどうかです。

詳細については、次のコードを検討してください。

私の理解では、カバーポイント 'a' のカバーグループを更新するために 2 つのスレッドが競合し、両方のスレッドに対してメソッド 'sample' が実行されます (別々のデータ スタックを使用)。両方のスレッドが同時にカバーグループ/カバーポイントを更新しようとすると、これにより何らかの副作用が生じると思いますか? (もしそうなら、明らかな解決策はもちろんセマフォを使用することです)。

乾杯、スタスト