سؤال

لدي خريطة تسجيل كبيرة على غرار RAL وأود عشوائي بعض السجلات.إذا كنت أرغب في تقييد السجلات بشكل منفصل، فهذا بسيط:

giveacodicetagpre.

ومع ذلك، إذا كنت تريد علاقة بين القيمتين المكتوبة، أعتقد أنه لا بد لي من إضافة قيود إلى نموذج التسجيل بأكمله:

giveacodicetagpre.

المشكلة هنا هي أن السجلات ال 254 الأخرى في النموذج ستعشدي أيضا.يمكنني فقط تحديث السجلات التي أريدها عشوائيا، ولكن بعد ذلك، لن تطابق المرآة مع الأجهزة.إذا كان لدي الوصول إلى الوكيل، فيمكنني تحديث المرآة، لكنني لا أريد بالتأكيد قراءة 254 يسجل من خلال الباب الأمامي.

هل هناك طريقة للعشوائية فقط هذين السجلين حتى الآن لا يزال لديك حامل القيد يحافظ على علاقة بينهما؟

هل كانت مفيدة؟

المحلول

يمكنك القيام

giveacodicetagpre.

ثم يسجل فقط A و B ستعشدي.

نصائح أخرى

هذا لا يمكن أن يعمل لأن السجلات لا تحتوي على متغير "قيمة"، وحقول فقط لها متغير عضو "القيمة".

يجب أن يعمل هذا:

giveacodicetagpre.

Here my two cents, Here all registers and all fields are constrained to zero.

top_regm.get_registers(regs, UVM_HIER);      //NOW take ALL registers (regs) inside the block
regs.sort with (item.get_address());   //sort ascending by address         
for (int unsigned r=0; r<regs.size(); r++) begin                    
    assert(regs[r].randomize with {    
         regs[r].get() == 0;     //constraint with function is  heavy consumming               
    } );
    reg_value_q.push_back(regs[r].get()); //store all the constrained values in a queue
end
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top