我对这段OVM代码搞不懂?
时间:10-02
整理:3721RD
点击:
我在学习OVM是,仿照它提供的xbus代码,发现有这么一段,很难搞懂!那位大侠帮帮我啊!
virtual protected function void perform_transfer_coverage();
-> cov_transaction;
for (int unsigned i = 0; i < trans_collected.size; i++) begin
addr = trans_collected.addr + i;
data = trans_collected.data[i];
wait_state = trans_collected.wait_state[i];
-> cov_transaction_beat;
end
endfunction : perform_transfer_coverage
主要是不知道为何要这样去给addr,data,wait_state赋值!
virtual protected function void perform_transfer_coverage();
-> cov_transaction;
for (int unsigned i = 0; i < trans_collected.size; i++) begin
addr = trans_collected.addr + i;
data = trans_collected.data[i];
wait_state = trans_collected.wait_state[i];
-> cov_transaction_beat;
end
endfunction : perform_transfer_coverage
主要是不知道为何要这样去给addr,data,wait_state赋值!
赋值后腰发给scoreboard的吧
你打算怎么复制呢?没把问题表述清楚
这个task用于sample coverage数据,它触发了两个event,cover_transaction和cover_transaction_beat,分别用于sample cover_trans和cover_trans_beat两个covergroup。
for loop只是将每一个data的读/写地址/数据送给 protected变量addr, data, wait_state等,以供covergroup cov_trans_beat 来采集而已。
楼上的正解