3

インターフェイスが 1 つしかなく、シーケンス項目の定義が複数あるとします。

class link_pkt extends uvm_sequence_item;
class phy_pkt  extends uvm_sequence_item;

テスト中、これらの項目はその 1 つのインターフェイスを介して動的に送信できます。

ドライバー/シーケンサーを実装する適切な方法は何ですか? ドライバーは1人で十分ですか?または複数のドライバが必要ですか?

シーケンス アイテムの定義が複数あるため、複数のドライバーとシーケンサーが必要になるようです。しかし、送信を制御/調停できないため、これは良くありません。

ここには、一種の静的な同様のケースがあります。その場でドライバーを切り替えることはできません。私が必要としているのは、これらの異なるシーケンス項目を 1 つのテスト/シーケンス内で動的に駆動できることです。

4

1 に答える 1

3

ここで注目したいのは、プロトコルの階層化です。各下位レイヤーにアイテムを送信する各プロトコルのシーケンサーが必要です。下部には、実際に DUT 信号を駆動するドライバーがあります。

各シーケンサーは、上位レイヤーのアイテムから独自のアイテムに変換する変換シーケンスを実行する必要があります。

+-----------+
| link SEQR |   <---- can start items here
+-----------+
      |
      |    link 2 phys
      v
+-----------+
| phys SEQR |   <---- can also start items here
+-----------+
      |
      |
      v
+-----------+
| phys DRV  |
+-----------+

両方のシーケンサーで項目を開始できるため、選択した抽象化レベルで作業できます。シーケンサー自体が優先順位付けを行い、物理インターフェイスで 1 つのアイテムのみが駆動されるようにします。

階層化を実装する方法の詳細については、次のリンクを参照してください。

http://verificationhorizo​​ns.verificationacademy.com/volume-7_issue-3/articles/stream/layering-in-uvm_vh-v7-i3.pdf

http://www.doulos.com/knowhow/sysverilog/uvm/easier_uvm_guidelines/layering/

私はすでにこのトピックについて話し合っています

于 2015-02-10T12:35:57.100 に答える