スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

UVM1.0p1に書き直したよ(その3)

今回は、「-define UVM_NO_DEPRECATED」をつけた際に
Errorとして表示されるメッセージの対処法です。

Error内容として、以下のマクロが表示されました。
- `uvm_sequence_utils()
- `uvm_sequencer_utils()
- `uvm_update_sequence_lib_and_item()

ファイルとして、uvm_sequence と uvm_sequencerです。
意外に行数かかるので、修正後の記述のみ載せます。

○uvm_sequence(wr_seq)
class wr_seq extends uvm_sequence #(wr_transfer);

function new(string name="wr_seq");
super.new(name);
endfunction

//`uvm_sequence_utils(wr_seq, wr_sequencer) //削除
`uvm_object_utils(wr_seq)

wr_transfer wr;

//--- bodyへの登録
virtual task body();

wr = wr_transfer::type_id::create("wr");

repeat(20) begin
// 省略

endtask

endclass : wr_seq

○uvm_sequencer(wr_sequencer)
class wr_sequencer extends uvm_sequencer #(wr_transfer);

string default_sequence = "uvm_random_sequence";

//`uvm_sequencer_utils(wr_sequencer) //削除
`uvm_component_utils(wr_sequencer)

function new(string name, uvm_component parent);
super.new(name, parent);
//`uvm_update_sequence_lib_and_item(wr_transfer) //削除
endfunction

endclass : wr_sequencer

更に、uvm_sequenceの中で「p_sequencer」を使っている場合には
`uvm_declare_p_sequencer」を記述する必要があります。
○uvm_sequence(rd_seq)
class rd_seq extends uvm_sequence #(rd_transfer);

function new(string name="rd_seq");
super.new(name);
endfunction

//`uvm_sequence_utils(rd_seq, rd_sequencer) //削除
`uvm_object_utils(rd_seq)
`uvm_declare_p_sequencer(rd_sequencer)

rd_transfer rd;

virtual task body();

rd = rd_transfer::type_id::create("rd");

repeat(20) begin
assert(rd.randomize());
`uvm_do_with(
req,
{ req.address == rd.address;
req.enable == rd.enable;
})
if(rd.enable == 0) begin
get_response(rsp); //--- rsp取得
p_sequencer.uvm_report_info(get_type_name(),
$psprintf("%s read : addrress = `x%0h, data = `x%0h",
get_sequence_path(), rsp.address, rsp.data),
UVM_HIGH);
end
end

`uvm_do_with(
req,
{ req.address == 0;
req.enable == 1; // 0:Active
})

endtask

endclass : rd_seq

これでコンパイル時のエラーは消えるはずです。
しかし、これでもまだ動作しないと思います。
それは「default_sequence」が変わったからになります。
関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

Author:Kocha
なんでもチャレンジ!(^o^)/
E-mail
github:Kocha
イベントカレンダー

カレンダー
05 | 2017/06 | 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。