1
我在測試平臺中覆蓋約束時遇到了一些麻煩。 在我的順序我做了以下內容:覆蓋約束條件
`uvm_do_with(req, {trans_kind == WRITE ;
address == 40'hc0_0000_0000;
mask_mismatch_error == 1;
bus_error_type == SCB_BUS_ERR_NONE;
}) //this line sends the transaction
在我的序列項目:
constraint c_mask_mismatch_error_disable_map8 { (cfg_h.is_map8 == 1) -> (mask_mismatch_error == 0); }
日誌文件是給這樣的警告:
ncsim:* W,SVRNDF (源位置/行):隨機方法調用 失敗。失敗的隨機化調用的唯一ID是86
觀察仿真時間:79492842 PS + 14
ncsim:* W,RNDOCS:這些約束有助於一套 衝突的約束:})//這線發送交易 ( (mask_mismatch_error == 0);}(源位置/行)
ncsim:* W,RNDOCS:這些變量向組衝突的 約束:
狀態變量: cfg_h.is_ma P8(1)[源位置/線]
蘭特變量:mask_mismatch_error [源的位置/線]
我不理解爲什麼這種類型的倍率是不可能的。我能做什麼來覆蓋序列中的約束條件?
謝謝,我將實施您的解決方案 – Pete
另一種選擇是聲明作爲順序項目的一部分的約束,作爲'軟約束'。 – AndresM