Specman e: Как отключить покрытие экземпляров / единиц?
В моей среде проверки под sys
есть пример timer_sve
, Под timer_sve
У меня есть 2 других экземпляра: timer
а также ocp_master
:
extend sys {
timer_sve : timer_sve_u is instance;
};
unit timer_sve_u {
timer : timer_u is instance;
ocp_master : ocp_u is instance;
};
Мне нужно собрать покрытие только для timer
, Я пробовал этот код (и многие другие его варианты), чтобы отключить покрытие ocp_master
:
extend sys {
timer_sve : timer_sve_u is instance;
setup() is also { // The code to disable ocp_master's coverage
global.covers.set_cover_block("ocp_u", FALSE);
};
};
Код скомпилирован и успешно запущен, но он продолжает собирать данные для ocp_master
... Как я могу отключить сбор ocp_master
охват? Очень ценю вашу помощь.
1 ответ
Метод set_cover_block(...)
не принимает единицу в качестве входных данных, но модуль (то есть файл), в котором были определены элементы покрытия. Попробуйте изменить его, чтобы взять файл, в котором вы расширяете ocp_u
с определениями покрытия.
Что я также делаю, чтобы отключить определенные элементы покрытия / группы / и т. Д. установлен when
возможность FALSE
:
extend some_struct {
cover some_cover using also
when = FALSE;
};
Некоторые предположения с моей стороны:
Отключение покрытия с помощью set_cover_block(...)
вероятно, не будет использовать исключенный код для покрытия (т. е. полностью игнорирует определения покрытия) и ускорит выполнение моделирования, чем отключив его с помощью when
вариант.