2016-06-20 11 views
0

スコアボードのデータを読み取りシーケンスに送信する必要があります。それを行う最善の方法は何ですか?スコアボードからデータをシーケンスに送信する方法

私はメモリ読み出しシーケンスを持っています。これは書き込みシーケンスの終了後に開始する必要があります。 書き込みシーケンスはランダムなメモリ書き込みアドレスを生成するので、私はこれらのアドレスを保持する必要があります。そして、書き込みシーケンスの終了後、読み出しシーケンスに送る。 私はscorebaordにそのアドレスを保持しています。後で読み取りデータと比較するためにスコアボードにそのアドレスが必要です。 今私はscorebaordからのデータをシーケンスの読み込みに送る方法を知らない。 私はput-getポートを使用しますが、それらを接続するためにuvm_tlm_fifoを使用する必要があるという考えはありません。 他のアイデアはありますか?

答えて

0

それが(書き込みシーケンスは、アドレスのリスト/キューを作成するIE)書き込みシーケンスからデータを収集し、仮想/メインシーケンスを聞かせすることはできません場合は、この配列に読み出しシーケンス

main_sequence { 

write_sequence.start(...); 
write_sequence.get_address_list(arr); 
read_sequence.set_address_list(arr); 
read_sequence.start(...); 

} 
を渡します

私たちは、以下のアプローチを試みることができる -

1)リストは、シーケンサーに記憶することができます。シーケンサーはエージェントの一部であるため、テスト全体の実行に使用できます。また、それらが別のスレッドから実行されていてもシーケンスに提供されます。 したがって、2つの配列はシーケンサーを介して話すことができます。

write_sequence { 
    my_sequencer ; 
    $cast(my_sequencer,m_sequencer); 
    my_sequencer.set_address_list(arr); 

} 

read_sequence { 
    my_sequencer ; 
    $cast(my_sequencer,m_sequencer); 
    my_sequencer.get_address_list(arr); 

} 

2)あなたはスコアボードのアプローチが好きなら、あなたは取得し、アドレスリストの設定を処理するためのクラスを作成することができます。クラスはトップenvでインスタンス化され、スコアボードに接続されます。スコアボードは、クラスを使用してアドレスリストを設定できます。 読み取りシーケンスでは、uvm_config_dbを使用してこのクラスのハンドルを取得し、それを使用してアドレスリストを取得できます。 [クラスはトップenvのuvm_config_dbにも入れられます]。 この方法では、スコアボードが読み取りを開始する前にアドレスを受信して​​処理することを確認する必要があります。

0

スコアボードとシーケンサーは両方のコンポーネントです。 TLMインタフェースを介してこれらのコンポーネント間で通信することが最善です。スコアボードに解析ポートから情報をブロードキャストさせ、そのポートをシーケンサのTLM impまたはfifoに接続させます。

シーケンスには、p_sequencerという独自のシーケンサーへのポインタが必要です。その後、スコアボードからの情報のFIFO受信を待つことができます。

TLMポートおよびFIFOは多くのオーバーヘッドのように見えるかもしれないが、彼らは再利用性と移植性の理由のための最良の選択です。データを複数の異なるシーケンスに出力するスコアボードが複数あるとします。接続を変更するだけで、他のものを変更する必要なく、このようなシナリオが可能になります。

+0

お返事ありがとうございました 私はuvm_blocking_put/get_portとuvm_tlm_fifoを使用しました 私はシーケンサーにget portを入れました。環境内では、put-getポートをtlm_fifo経由で接続します。私は環境でtlm_fifoを作成しました。 が非常に奇妙な問題に直面し、データが失われました 私はスコアボードからデータを送信しています。シーケンスから取得すると、別のデータが表示されます。 また、putポートは異常な動作をしますが、tlm_fifoのサイズは1です。しかし、putポートは3つのトランザクションをtlm_fifoに一度に送信し、1つずつ送信し始めます。 – haykp

関連する問題