2014-09-14 6 views
1

Я работаю с vr_ad пакетом для e. Мой вопрос: В чем разница между 2 следующими макросами для изменения регистров (предположим foo регистр состоит из 2-х полей: field1 и field2):Specman UVM: В чем разница между write_reg {.field == 2;}; и write_reg_fields?

1)

write_reg foo {.field1 == 1;}; 

2)

write_reg_fields foo {.field1 = 1}; 

Я очень ценю любую помощь

+1

Я хочу вам помочь в любом случае ... – LordTitiKaka

ответ

4

Существует очень важное различие между этими формами.

В первом случае значение регистра будет сгенерировано с использованием всех определенных ограничений + ограничение, которое вы написали в этом действии (field1 == 1). Новое генерируемое значение будет записано в DUT.

Во втором коде вы указываете, что хотите изменить только одно поле регистра - поле1. Что произойдет, так это то, что vr_ad получит текущее значение регистра из модели e (теневая модель), изменит поле1 и будет записывать новое значение в регистр в тестируемом устройстве. Ни одно из полей другого регистра не будет изменено. Также - нет проверки, что значение, которое вы назначаете для поля1, соответствует ограничениям, определенным в этом регистре.

 Смежные вопросы

  • Нет связанных вопросов^_^