今天在添加環(huán)境的結(jié)束檢查時候,突然發(fā)現(xiàn)ral_model的mirror()無論如何也不進(jìn)行數(shù)據(jù)比對:
ral_model.xxx.predict(xxxx);
ral_model.mirror(status, UVM_CHECK);
我自己非常的確定語法肯定時沒有問題的,但是無論往寄存器里predict什么奇怪的值進(jìn)去,mirror時候都不會報錯。這就非常令人費(fèi)解了,于是只能去源碼里找。
mirror的最底層邏輯在uvm_reg.svh:
if (check == UVM_CHECK)
exp = get_mirrored_value();
...
if (check == UVM_CHECK) void'(do_check(exp, v, map));
鑒于UVM_CHECK我已經(jīng)傳入了,get_mirrore_value()我也執(zhí)行過確實(shí)predict進(jìn)去了奇怪的值,那么問題只能出現(xiàn)在do_check這里(這個想了好久)。在do_check里我找到了一個核心的操作:
if (!(m_fields[i].get_compare() == UVM_NO_CHECK ||
acc == "WO")) begin
...
field本身不是UVM_NO_CHECK屬性的話才會進(jìn)行比對,那么問題是不是可能出現(xiàn)在field屬性身上呢?轉(zhuǎn)到uvm_reg_field.svh文件,找get_compare()方法:
function uvm_check_e uvm_reg_field::get_compare();
return m_check;
endfunction
進(jìn)一步的看下m_check屬性是怎么定義的:
function void uvm_reg_field::configure(uvm_reg parent,
int unsigned size,
int unsigned lsb_pos,
string access,
bit volatile,
uvm_reg_data_t reset,
bit has_reset,
bit is_rand,
bit individually_accessible);
...
m_check = volatile ? UVM_NO_CHECK : UVM_CHECK;
...
問題大概明確了,應(yīng)該是field在進(jìn)行configure是volatile賦值為1,查了一下確實(shí)如此:
this.xxxx.configure(this, 20, 0, "RW", 1, 20'h0000, 1, 1, 1);
那么問題就大概清晰了,溯源來看ral_model是通過ralf生成的,ralf是通過xml生成的,那么只能是xml中寫錯了:
< spirit:volatile >true< /spirit:volatile >
我這才理解了xml中這個“易失性”。之前就一直不明白,為啥一個仿真模型要關(guān)心volatile呢,原來如果易失性=true的話,環(huán)境認(rèn)為你這個寄存器存不住值也就不會進(jìn)行compare操作。于是將其修改為(或者直接刪除,我就不應(yīng)該多這一筆):
< spirit:volatile >false< /spirit:volatile >
重新生成ral_model后mirror(status, UVM_CHECK)生效報錯。
-
寄存器
+關(guān)注
關(guān)注
31文章
5428瀏覽量
123801 -
UVM
+關(guān)注
關(guān)注
0文章
182瀏覽量
19482
發(fā)布評論請先 登錄
AD9783無論如何更改SET及HLD的值,SEEK值一直為1是為什么?
dede的水印圖片文字顏色,無論如何設(shè)置都是黑色?
根據(jù)條件進(jìn)行數(shù)據(jù)的問題
做了個寫入數(shù)據(jù)庫程序,運(yùn)行數(shù)據(jù)寫不進(jìn)去,求大神幫忙看下,謝謝。
proteus仿真 8086 8255,控制字無法寫入
ADF4002無論如何無法鎖定
使用Backhaul LDPC IP內(nèi)核無論如何設(shè)置輸入信號都不會變高是為什么?
DMA進(jìn)行數(shù)據(jù)傳輸和CPU進(jìn)行數(shù)據(jù)傳輸?shù)囊蓡?/a>
visionfive2用sd卡刷debian,無論如何都無法啟動怎么解決?
使用bmpaddle轉(zhuǎn)換模型時應(yīng)該如何參數(shù)填寫方式
如何更好地進(jìn)行數(shù)據(jù)采集

評論