0
我認爲peek
函數uvm_reg
返回0模擬時間的值。由於我需要這個功能,我實現了我所有的HDL後門訪問路徑。這是我使用的代碼在我的記分牌uvm_reg peek函數需要很長時間才能返回
while (state == DISABLE) begin
uvm_reg_data_t val = 'hDEADBEEF;
uvm_status_e status;
`uvm_info(get_name(), "Start peek", UVM_LOW)
my_reg_block.my_reg.peek(status, val);
`uvm_info(get_name(), "End peek", UVM_LOW)
assert (val == 'h0)
@posedge(my_vif.clk); //Advance clock
end
我的目的是:在每一個時鐘週期,在零仿真時間,斷言my_reg
是0時state==DISABLE
。
在仿真運行中,我注意到這很好,直到my_reg
正在改變的時間。在這一點上,開始偷看 - >結束偷看大約需要10個時鐘週期。在這個時候,我的狀態不再是DISABLE,而且當然val!='h0。爲什麼peek需要很長時間才能返回?
我使用Questasim 10.4a
你是對的,這是一個任務,所以可能會花費模擬時間。我不確定在哪裏閱讀,總是需要0個模擬時間。這是真的還是我誤解了? – noobuntu
沒有。在功能的情況下,只能說它將在0模擬時間內執行。在任務的情況下,儘管100次中有99次,它可能會在0個模擬時間內執行,但我們仍然無法確定任務。如果帖子有幫助,請將其標記爲答案。 –