Используя оператор verify с тестовым блоком последовательности, чтобы протестировать контроллер проектора

Этот пример демонстрирует, как протестировать систему управления проектора с помощью симуляции модели, и как сгенерировать компонент DPI для некоторых высокоуровневых требований диспетчера, которые заданы в блоке Test Sequence. Это позволит верификации требования, используемой для симуляции модели быть снова использованной в симуляторе HDL с минимальным усилием.

Модель была взята от диспетчера Проектора в качестве примера Тестинга Используя, проверяют и Тесты В реальном времени, поставленные с Simulink Test™. И упрощенный, чтобы показать только Сценарий 4 Требования.

Чтобы узнать больше проверяют операторы, видят, Оценивают Симуляцию Используя Логические Операторы

Требования и предпосылки

Продукты потребовали для этого примера:

  • MATLAB®

  • Simulink®

  • Stateflow®

  • Simulink Test™

  • Simulink Coder™

  • Наставник Graphics® ModelSim®/QuestaSim®

  • Один из поддерживаемых компиляторов C: Microsoft® Visual C ++ или GNU GCC

Обзор

Тест проверяет контроллер по своим требованиям с помощью тестовых последовательностей, которые осуществляют модели контроллеров верхнего уровня. Диспетчер использует вход кнопки и вход датчика температуры и выходные сигналы, управляющие вентилятором, скоростью вентилятора и лампой проектора.

Цель состоит в том, чтобы сгенерировать компонент DPI, который получает высокоуровневое требование количество 4 контроллера. Для получения дополнительной информации о требованиях отсылают к документу слова sltestProjectorCtrlReqs.docx в примере, отнесенном выше.

Требование 4 пытается включить и выключить проектор, когда температура проектора (Tproj) высока. Сценарий имеет следующие шаги в блоке Test Sequence:

  1. Установите температуру проектора на 50 степеней Цельсия.

  2. Попытайтесь включить.

  3. Система не должна включать.

  4. Установите температуру на 50 степеней Цельсия.

  5. Попытайтесь выключить.

  6. Система должна выключить.

Изображение ниже показов испытательный стенд для указанного выше требования и как verify используется, чтобы проверять, что проектор включает или выключает в зависимости от сценария.

Настройте пример

Определите имена модели и пути для примера:

filePath = fullfile(matlabroot,'toolbox','hdlverifier','hdlverifier_examples');
testFile = 'svdpi_sltestProjectorCtrlTests.mldatx';
testHarness = 'Req_scenario_4';
model = 'svdpi_sltestProjectorController';

Запустите следующий код, чтобы настроить проект.

cd(tempdir);
[~, ~, ~] = rmdir('svdpi_tsverify', 's');
mkdir('svdpi_tsverify');
cd('svdpi_tsverify');

Откройте модель:

open_system(fullfile(filePath,model))

Настройте модель для генерации кода

Образцовый и испытательный стенд предварительно сконфигурирован с одним из системных конечных файлов DPI (systemverilog_dpi_grt.tlc). Откройте тестовую обвязку Req_scenario_4 путем выполнения:

sltest.harness.open(model,testHarness)

Сгенерируйте компонент SystemVerilog DPI

  1. В испытательном стенде Req_scenario_4 щелкните правой кнопкой мыши по блоку подсистемы Req_4, который содержит тестовый блок последовательности и выбор. Код C/C++-> Сборка Эта Подсистема.

  2. Нажмите Build в диалоговом окне, которое появляется.

  3. Сборка генерирует код С для подсистемы Req_4, и обертку SystemVerilog DPI и файл с именем пакета "Req_4_build/Req_4_dpi.sv" и "Req_4_build/Req_4_dpi_pkg.sv".

Обратите внимание на то, что некоторые предупреждения верификации будут инициированы, это будет объяснено позже.

Кроме того, можно сгенерировать компонент путем выполнения:

rtwbuild('Req_scenario_4/Req_4');

Запустите сгенерированный испытательный стенд в симуляторе HDL

Для этого примера будет использоваться средство моделирования ModelsSim/QuestaSim. Чтобы надеть более подробные инструкции, как запустить испытательный стенд, относятся к Началу работы с генерацией компонента SystemVerilog DPI

После выполнения испытательного стенда замечают ошибку, которая выдается компонентом DPI.

Эта ошибка сопоставима с результатами симуляции в Simulink (ниже). Открытие менеджера по Тесту показывает, что диспетчеру не удается выключиться, когда on_off кнопка нажимается, когда температура выше предела. Открытому менеджеру по тесту можно выполниться:

sltest.testmanager.load(testFile);
sltest.testmanager.view;

Решение отказа потребовало бы, чтобы изменить подсистему проверки OnOff в основной модели. С другой стороны, требование, verify_sc4_on удовлетворен, начиная ни с каких ошибок, было сгенерировано для этого, проверяют оператор.

Прослеживание ошибки SystemVerilog к Simulink

Если вы хотите проследить проверять оператор, который сгенерировал ошибку назад к Simulink, необходимо найти Идентификатор Simulink (SID) из сообщения об ошибке как показано ниже:

Если вы находите SID для ID шага в тестовом блоке последовательности, можно использовать Simulink программируемый API, чтобы подсветить соответствующий блок. Выполнение:

Simulink.ID.hilite('Req_scenario_4:32:60');

Это подсветит соответствующий блок как показано ниже.

Фильтр определенное проверяет оценку

Чтобы отфильтровать проверять оценку в симуляторе HDL, предоставьте SID оценки, которую вы хотите отфильтровать в качестве plusargs аргумента к симулятору HDL.

Например, можно отфильтровать ошибку, которую verify_sc4_off дает путем предоставления аргумента "+Req_scenario_4:32:60" к симулятору HDL.

Для этого примера в ModelSim/QuestaSim команда симуляции была бы:

vsim -classdebug -c -voptargs=+acc -sv_lib ../Req_4 work.Req_4_dpi_tb +Req_scenario_4:32:60

Если вы находитесь на платформе Windows, суффикс _win64 необходим:

vsim -classdebug -c -voptargs=+acc -sv_lib ../Req_4_win64 work.Req_4_dpi_tb +Req_scenario_4:32:60

Не отфильтруйте все проверяют оценки в симуляторе HDL

Чтобы проверять, была ли проверять оценка протестирована, включите многословный режим путем определения "VERBOSE_VERIFY" в качестве plusargs аргумента к симулятору HDL.

Для этого примера в ModelSim/QuestaSim команда симуляции была бы:

vsim -classdebug -c -voptargs=+acc -sv_lib ../Req_4 work.Req_4_dpi_tb +VERBOSE_VERIFY

Журнал симуляции и формы волны показывают многословный вывод и как это сопоставляет с менеджером по Тесту Simulink Test™ график.

Заключение

Генерация компонента DPI и блок Test Sequence от Simulink Test™ могут использоваться, чтобы переместить логику верификации от Simulink до симулятора HDL с минимальным усилием.