Тестирование компоненты TLM

Обзор испытательного стенда компонента TLM

Опцией генерации испытательного стенда управляет вкладка TLM Testbench диалогового окна Configuration Parameters. Эта опция создает автономный испытательный стенд SystemC для сгенерированного компонента. Испытательный стенд работает путем применения тестовых векторов против сгенерированного компонента TLM и проверки результатов каждой транзакции. Когда вы нажимаете кнопку Verify TLM Component на вкладке TLM Testbench, тестовые векторы автоматически получены от симуляции Simulink® вашей модели.

Можно сконфигурировать сгенерированный испытательный стенд, чтобы задать режим синхронизации и режимы инициирования для буферизации ввода и вывода. Последний выбор позволяет вам указывать, выполняет ли средства управления модулем инициатора, которые движущиеся входные и выходные данные устанавливают между регистрами и буферами или ли компонент перемещения автоматически. Опционально, испытательный стенд может также произвести многословные сообщения во времени выполнения, чтобы помочь вам видеть состояние симуляции SystemC.

Примечание

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

Компиляция компонента TLM

Вкладка TLM Compilation в диалоговом окне Configuration Parameters предоставляет информацию о местоположении библиотеки SystemC и TLM. Можно использовать переменные окружения, чтобы задать эти местоположения.

Информация, которую вы предоставляете, используется, чтобы создать make-файл. Можно использовать эти make-файлы, чтобы создать и испытательный стенд компонента. Можно также использовать этот make-файл, чтобы создать исполняемый файл и испытательного стенда компонента TLM за пределами среды MATLAB.

Автоматическая верификация сгенерированного компонента

Вкладка TLM Testbench параметров конфигурации обеспечивает кнопку Verify TLM Component что:

  • Автоматически генерирует входной стимул и ожидаемые выходные данные

  • Сборки и выполняют компонент и испытательный стенд вместе

  • Автоматически проверяет выходные параметры компонента

    Это выполняет проверку путем получения выходных параметров от симуляции SystemC, преобразования их в данные Simulink и сравнения их в Simulink к результатам симуляции Simulink.

Сообщите о генерации

Цель tlmgenerator предоставляет документ HTML, содержащий детали о сгенерированном компоненте. Документ содержит ссылки на сгенерированные файлы исходного кода. Сообщите, что генерация может быть сконфигурирована через панель Report Simulink Coder™ в параметрах конфигурации. Сообщите, что генерация не является строго функцией испытательного стенда, но процесс действительно включает использование файлов испытательного стенда.

Работа с настройками

После того, как вы выберете параметры конфигурации, можно сохранить их с моделью Simulink. Можно также восстановить сохраненные настройки, сделанные на предыдущем сеансе. Кроме того, можно сохранить и выбрать из нескольких настроек для данной модели. Смотрите раздел "Overview of Model Referencing" в документации Simulink. для получения информации о работе с настройками.

Факторы при создании испытательного стенда компонента TLM

Для оптимизации вашего сгенерированного кода TLM и достижения желаемого испытательного стенда, необходимо иметь в виду следующие факторы при разработке модели Simulink:

  • Ваша модель может использовать только один уровень.

  • Составные сигналы на вашей модели должны быть непрерывными в памяти. Можно сделать мультиплексор и соединить шиной выходные сигналы, непрерывные с блоком Signal Conversion.

  • Если ваша модель содержит комплексные сигналы, необходимо разделить их сначала. Разделите комплексные сигналы с блоком Simulink Complex to Real-Imag. Можно затем объединить сигналы снова с блоком Real-Imag to Complex с другой стороны проекта.

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

  • HDL Verifier™ может сгенерировать проект Simulink, который включает непрерывные сигналы времени. Когда симуляция Simulink и полученное векторное воспроизведение в SystemC, они не могут дать точно к тем же результатам. График различия показывает по существу ту же кривую с числовыми различиями, которые являются более явными при переходах сигнала, как показано в следующих окнах MATLAB Figure.

    Это различие происходит, потому что получение Сигнала Simulink обязательно делает сигналы дискретными, и таким образом те же точные данные не используются и в Simulink и в автономных симуляциях SystemC. Можно улучшить точность дискретной симуляции сигнала в SystemC путем выбора меньшего основного размера шага в Simulink перед нажатием Verify TLM Component.