問題タブ [uvm]
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.
system-verilog - 仮想クラスを UVM ファクトリに登録する
仮想クラスをファクトリに登録する方法はありますか? object_utils マクロを使用すると、不正な仮想クラスに対して new(...) を呼び出す type_id::create(...) メソッドが定義されます。
当然のことながら、ファクトリに登録された仮想クラスには、型のオーバーライドが必須です。誰かがこれに対するエレガントな解決策を持っていれば、それは素晴らしいことです.
uvm - ランダム化せずに uvm_do_on を実行するには?
3 つのトランザクションを並行して実行する仮想シーケンサーがあり、それぞれが対応するシーケンサーで実行されます。だから私はこのようなものを持っています:
しかし今、実行中のテストに応じて、特定のトランザクションを仮想シーケンサーに送り込みたいと考えています。そのために、モニターがインターフェースでトランザクションを確認するたびに更新される分析インポートを持つクラスと、駆動される次のトランザクションを返す関数を用意しました。だから今、私は次のようなことをしたい:
UVM のドキュメントを調べてみると、'uvm_send マクロがあることがわかりましたが、シーケンスを実行するシーケンサーを選択することはできません (つまり、'uvm_send_on などは見たことがありません)。私に何ができる?
ありがとう!
system-verilog - 「X」または不明な値を生成するシーケンス項目
シーケンサーで seq アイテムを開始して、ランダムな制約を持つ seq アイテムを生成しましたが、生成されたアイテムには多くの "X" 値があります。この背後にある理由は何でしょうか?
コードは次のとおりです。
system-verilog - UVM 分析ポート サブスクライバーの順序を制御する方法は?
3 つのスコアボードに接続された分析ポートがあります。分析ポートで書き込みが行われると、サブスクライバー (スコアボード) が特定の順序で呼び出されます。しかし、私はそれらが別の順序で呼び出されることを望みます。
明示的な順序付けの実際の使用例は次のとおりです。1 つのスコアボードはロギングのみを行うため、最初に呼び出す必要があります。もう一方のスコアボードは非常に基本的な下位レベルのチェックを行うため、2 番目に呼び出す必要があります。3 番目のスコアボードは非常に複雑な高レベルのチェックを行うため、最後に呼び出す必要があります。
SV スニペット:
現在の出力:
サブスクライバーが呼び出される順序を制御するにはどうすればよいですか? 私はそれらがこの順序であることを望みます:
- スコアボード_3
- スコアボード_2
- スコアボード_1
EDA Playground のサンプル コード: http://www.edaplayground.com/x/2zQ
verilog - systemverilog メールボックスへの書き込みに失敗しました
UVM SV テスト ベンチでメールボックスを使用していますが、メールボックスに書き込もうとしているときに問題に直面しています。私のコードは次のようになります。
何がうまくいかなかったのかよくわかりません...データは writetrans(*) 関数までずっと到着しており、最終的にはメールボックスにスペースがあるにもかかわらず書き込みに失敗しています。