2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

異なる uvm_analysis_imp への write() を区別する方法

Posted at

複数のクラスからトランザクションを受け取るときの問題

uvm_analysis_port.connect() により接続された uvm_analysis_port_imp へ write() が発行されると,uvm_analysis_imp インスタンスを持つクラスの write() が呼び出される仕組みになっている.

ということは,複数の uvm_analysis_imp を一つのクラスで持っていたとしたらどうなるのだろうか.

試してみたところ,どの uvm_analysis_imp に対して通信しても,同じ write() が呼び出された.どちらに向けてから発行された write() なのかを区別できないのだ.

#解決策
google で 「 UVM multiple analysis ports 」などと検索すると解決策が見つかった.

このサイトによれば,imp 側を持つクラスの宣言の前に `uvm_analysis_imp_decl(_2) などと記述すると,新しいクラス uvm_analysis_imp_2 が使えるようになるので,これをメンバに持たせればよい.uvm_analysis_port 側では特に意識せずに write() すれば,uvm_analysis_imp_2 を持つクラスの write_2 が呼び出されるようになる.

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?