私は、メモリ検証用のレイヤードテストベンチを構築しようとしています。私はドライバとモニタ側でread_data(メモリのデータ)を表示しています。問題は、モニタがサイクルの開始時にのみトリガされることです。しかし、read_write = 0になるたびにモニターを起動させたい。なぜモニターはすべてのシナリオを考慮していないのですか? 環境クラスでは、ドライバ、モニタ、ジェネレータのrunメソッドを呼び出しています。 リンク:http://www.edaplayground.com/x/389qモニタ同期
Q
モニタ同期
-1
A
答えて
1
コードにいくつかの問題があります。まず、モニタークラスにループforever
が必要です。 run()メソッドで今書かれている方法は、2クロックサイクル待ってからread_write == 0
を待ってから終了します。
もう1つの問題は、階層参照でmodport名monitor
を使用していることです。 modportはスコープではなく、仮想インタフェース変数を宣言するときに使用されるアクセスリストです。
最後に、clocking
ブロックで作業する場合は、同期化のためにクロック・ブロック・イベントのみを使用する必要があります。未加工信号シグナルはありません。
class monitor;
virtual intf.monitor vintf;
function new(virtual intf.monitor vintf);
this.vintf=vintf;
endfunction
task run();
forever
@(vintf.mo) // No ; here. You would get stuck in an infinite loop
begin
$display("--------MONITOR STARTS--------");
@(vintf.mo iff (vintf.mo.read_write==0))
begin
$display("--------MONITOR READDATA--------");
$display(vintf.mo.read_data);
$display(vintf.mo.address);
end
end
endtask
endclass
関連する問題
- 1. Javaモニタの同期メソッド
- 2. 条件変数(モニタ)を使用してスレッドを同期する
- 3. 重要な領域とモニタの重要性と同期メカニズム
- 4. セマフォまたはモニタと同期する方が良いですか?
- 5. MainWindowと同じモニタでウィンドウを開く
- 6. MSMQモニタ
- 7. モニタMSMQ
- 8. 非同期/同期ループNode.js
- 9. 非同期ソケットと同期
- 10. 非同期イベントの同期
- 11. Node.jsの非同期/同期
- 12. リクエストレスポンモデル/同期/非同期/イベントドリブン
- 13. Laravelジョブクエリ非同期/同期?
- 14. Railsで周期的なタスクをモニタする
- 15. パフォーマンスカウンタの初期化CPUのモニタ制御レジスタ
- 16. 高解像度のDPIモニタでは、同じフォントが同じに見えない
- 17. 紺色のモニタ(洞察)の管理者の同意フローap
- 18. アウトバウンドウェブサービスコールのモニタ
- 19. レーキテストのモニタ
- 20. リモートデスクトップ接続モニタ
- 21. 5kモニタのEdid
- 22. インストールOP5モニタ/ Nagios:
- 23. モニタ制御プロパティ
- 24. 帯域幅モニタ
- 25. Commitlog同期期間
- 26. MeteorJS非同期コード同期Meteor.methods関数
- 27. 同期非同期入力の処理
- 28. 非同期関数の同期例外
- 29. 非同期メソッドを同期する
- 30. 同期対非同期データベースへのアクセス