exponenta event banner

Подготовка DUT к генерации интерфейса FIL

Файлы и информация, необходимые для создания FIL

Для мастера FIL

Подготовить следующие элементы или информацию:

  • Предоставьте код HDL (написанный вручную или сгенерированный программным обеспечением) для проекта, который вы планируете протестировать.

  • Выберите файлы HDL и укажите имя модуля верхнего уровня.

  • Проверьте настройки портов и убедитесь, что мастер FIL определил входные и выходные сигналы и размеры сигналов.

  • Если вы используете Simulink ®, предоставьте модель Simulink, готовую для получения сгенерированного блока FIL.

Следующие шаги

Для консультанта по рабочим процессам HDL

Можно создать код и запустить FIL из любой подходящей модели Simulink.

Следующие шаги

Применение требований к системным объектам FIL

Процесс FIL для системных объектов

Мастер FIL и помощник по рабочим процессам HDL Coder™ HDL выполняют следующие действия:

  • Преобразование кода HDL во входы и выходы системных объектов.

  • Пройдите через идентификацию: устройство FPGA, исходные файлы, порты ввода/вывода и информацию о портах.

  • Добавьте логику к тестируемому устройству (DUT) для связи с MATLAB ®.

    Как правило, эта логика невелика и оказывает минимальное влияние на посадку вашей конструкции на FPGA.

  • Создайте файл программирования и объект FIL System.

Примечание

Если конструкция не помещается в устройство или не соответствует целям синхронизации, программное обеспечение может не создать файл программирования. В этой ситуации может появиться предупреждение о том, что конструкция не соответствует целям синхронизации, но она по-прежнему генерирует файл программирования, или вы можете получить ошибку и не получить файл программирования. Измените конструкцию или используйте другую плату разработки.

После завершения создания интерфейса FIL можно использовать метод programFPGA для загрузки файла программирования на плату FPGA. Этот метод можно также использовать для настройки параметров времени выполнения и атрибутов сигнала.

Когда вы будете готовы начать, прочитайте следующие темы и убедитесь, что ваш DUT соблюдает правила и рекомендации, описанные в каждом разделе:

По завершении работы с этими разделами перейдите либо к созданию системных объектов с помощью мастера FIL, либо к моделированию FIL с помощью помощника по рабочим процессам HDL для MATLAB.

Рекомендации по коду HDL для системных объектов FIL

Соблюдайте эти правила при использовании устаревшего или автоматически созданного кода HDL для создания объекта FIL System.

КатегорияСоображения
Файлы HDLВсе имена HDL должны быть законными, как определено в стандарте VHDL ® 1993.
Проектирование верхнего уровня
  • Конструкция верхнего уровня должна быть VHDL или Verilog ®.

  • Файл HDL верхнего уровня должен содержать объект/модуль с тем же именем, что и имя файла.

  • Генерация блоков FIL поддерживает как комбинаторную, так и последовательную логику. Для комбинаторной логики CLK, CLK_ENABLE и RESET не требуются.

Входы и выходы
  • Порты ввода и вывода должны быть следующих типов:

    • std_logic (VHDL)

    • std_logic_vector (VHDL)

    • Рег, провод (Verilog)

  • Диапазон векторных портов должен быть:

    • По убыванию (например, 9 DOWNTO 0, 9:0)

    • Буквальный. Использование дженериков (VHDL) или параметров (Verilog) не поддерживается. (например, DOWNTO b или a: b не поддерживается)

      Синтаксис нисходящего распоряжения о перемещении материалов не поддерживается

  • Для Verilog имена портов должны быть строчными. Имя модуля также должно быть строчным.

  • Все порты ввода и вывода должны быть включены.

  • Должен быть хотя бы один выходной порт.

Часы
  • Последовательная конструкция HDL должна иметь только один тактовый сигнал в верхнем объекте. Требуются тактовый сигнал и сброс. Для комбинаторной конструкции ЛПВП пакет часов не требуется.

  • Назовите тактовый сигнал clock или clk. Если часы не названы clock или clk, укажите, какой сигнал является тактовым сигналом в мастере FIL.

  • Тактовый порт должен быть 1-разрядным. Для VHDL он должен иметь тип std_logic.

Сброс
  • Конструкция HDL должна иметь сброс, чтобы иметь возможность сбросить FPGA перед моделированием.

  • Для последовательного проектирования должен быть только один сброс. Требуются тактовый сигнал и сброс. Для комбинаторной конструкции ЛПВП пакет часов не требуется.

  • Назовите сигнал сброса reset или rst. Если сброс не назван reset или rst, укажите, какой сигнал является сигналом сброса в мастере FIL.

  • Порт сброса должен быть 1-разрядным. Для VHDL эти порты должны иметь тип std_logic.

Включение тактового генератора
  • Для последовательного проектирования, если выбран режим включения часов, должен быть только один.

  • Порт включения тактового синхросигнала должен быть 1-разрядным. Для VHDL эти порты должны иметь тип std_logic.

  • Если активирован тактовый сигнал, назовите его одним из следующих: clock_enable, clock_enb, clock_en, clk_enable, clk_enb, clk_en, ce. Если для параметра clock enable не указано одно из этих имен, укажите, какой сигнал является сигналом clock enable в мастере FIL.

Объект DUTВсе порты на уровне DUT должны указывать битовую ширину. Использование переменной в качестве битовой ширины не допускается.
Фронт часовСинхронизируйте входные и выходные порты DUT по положительному фронту. Отрицательное ребро не допускается.
Неподдерживаемые типы данных
  • Двунаправленные порты

  • Массивы, типы записей

Неподдерживаемые конструкции
  • Инструкция по конфигурированию VHDL

  • Файлы включения Verilog

  • Макрос

  • Ускользнувшие имена

  • Дублированные имена портов (Verilog)

Специфичные для FIL правила для системных объектов

Пределы набора входных и выходных данных FIL
  • Общий размер входных данных должен быть меньше 1467 байт. Размер входных данных представляет собой сумму входных битов, округленных до ближайшего байта.

  • Размер выходных данных должен быть меньше 1467 байт. Размер выходных данных представляет собой сумму выходных битов, округленных до ближайшего байта.

Размер выходного кадра

Размер выходного кадра = размер входного кадра × OverclockingFactor / OutputDownsample

Рекомендации по коду MATLAB для системных объектов FIL

Совместимость MATLAB

Моделирование HDL Verifier™ FIL поддерживает только следующие типы данных:

  • Целое число

  • Логичный

  • Фиксированная точка

Применение требований к блокам FIL

Процесс FIL для блоков

Мастер FIL и консультант по рабочим процессам HDL кодера HDL выполняют следующие действия:

  • Преобразование кода ЛПВП в блочные сигналы с применением синхронизации.

  • Пройдите через идентификацию: устройство FPGA, исходные файлы, порты ввода/вывода и информацию о портах.

  • Добавьте логику к тестируемому устройству (DUT) для связи с Simulink.

    Как правило, эта логика невелика и оказывает минимальное влияние на посадку вашей конструкции на FPGA.

  • Создайте файл программирования и блок моделирования FIL.

Примечание

Если конструкция не помещается в устройство или не соответствует целям синхронизации, программное обеспечение может не создать файл программирования. В этой ситуации может появиться предупреждение о том, что конструкция не соответствует целям синхронизации, но она по-прежнему генерирует файл программирования, или вы можете получить ошибку и не получить файл программирования. Измените конструкцию или используйте другую плату разработки.

После завершения генерации интерфейса FIL используйте маску блока FIL для загрузки файла программирования на плату FPGA. Можно также настроить параметры среды выполнения и атрибуты сигнала.

Когда вы будете готовы начать, прочитайте следующие темы и убедитесь, что ваш DUT соблюдает правила и рекомендации, описанные в каждом разделе:

По завершении работы с этими разделами перейдите к разделу Создание блоков с помощью мастера FIL или Моделирование FIL с помощью помощника по рабочим процессам HDL для Simulink.

Рекомендации по коду HDL для блоков FIL

Соблюдайте эти правила при использовании устаревшего или автоматически созданного кода HDL для создания блока FIL.

КатегорияСоображения
Файлы HDLВсе имена HDL должны быть законными, как определено в стандарте VHDL 1993.
Проектирование верхнего уровня
  • Конструкция верхнего уровня должна быть VHDL или Verilog.

  • Файл HDL верхнего уровня должен содержать объект/модуль с тем же именем, что и имя файла.

  • Генерация блоков FIL поддерживает как комбинаторную, так и последовательную логику. Для комбинаторной логики CLK, CLK_ENABLE и RESET не требуются.

Входы и выходы
  • Порты ввода и вывода должны быть следующих типов:

    • std_logic (VHDL)

    • std_logic_vector (VHDL)

    • Рег, провод (Verilog)

  • Диапазон векторных портов должен быть:

    • По убыванию (например, 9 DOWNTO 0, 9:0)

    • Буквальный. Использование дженериков (VHDL) или параметров (Verilog) не поддерживается. (например, DOWNTO b или a: b не поддерживается)

      Синтаксис нисходящего распоряжения о перемещении материалов не поддерживается

  • Для Verilog имена портов должны быть строчными. Имя модуля также должно быть строчным.

  • Все порты ввода и вывода должны быть включены.

  • Должен быть хотя бы один выходной порт.

Часы
  • Последовательная конструкция HDL должна иметь только один тактовый сигнал в верхнем объекте. Требуются тактовый сигнал и сброс. Для комбинаторной конструкции ЛПВП пакет часов не требуется.

  • Назовите тактовый сигнал clock или clk. Если часы не названы clock или clk, укажите, какой сигнал является тактовым сигналом в мастере FIL.

  • Тактовый порт должен быть 1-разрядным. Для VHDL он должен иметь тип std_logic.

Сброс
  • Конструкция HDL должна иметь сброс, чтобы иметь возможность сбросить FPGA перед моделированием.

  • Для последовательного проектирования должен быть только один сброс. Требуются тактовый сигнал и сброс. Для комбинаторной конструкции ЛПВП пакет часов не требуется.

  • Назовите сигнал сброса reset или rst. Если сброс не назван reset или rst, укажите, какой сигнал является сигналом сброса в мастере FIL.

  • Порт сброса должен быть 1-разрядным. Для VHDL эти порты должны иметь тип std_logic.

Включение тактового генератора
  • Для последовательного проектирования, если выбран режим включения часов, должен быть только один.

  • Порт включения тактового синхросигнала должен быть 1-разрядным. Для VHDL эти порты должны иметь тип std_logic.

  • Если активирован тактовый сигнал, назовите его одним из следующих: clock_enable, clock_enb, clock_en, clk_enable, clk_enb, clk_en, ce. Если для параметра clock enable не указано одно из этих имен, укажите, какой сигнал является сигналом clock enable в мастере FIL.

Объект DUTВсе порты на уровне DUT должны указывать битовую ширину. Использование переменной в качестве битовой ширины не допускается.
Фронт часовСинхронизируйте входные и выходные порты DUT по положительному фронту. Отрицательное ребро не допускается.
Неподдерживаемые типы данных
  • Двунаправленные порты

  • Массивы, типы записей

Неподдерживаемые конструкции
  • Инструкция по конфигурированию VHDL

  • Файлы включения Verilog

  • Макрос

  • Ускользнувшие имена

  • Дублированные имена портов (Verilog)

Анализ модели Simulink для блоков FIL

Следуйте этим правилам для интеграции блока FIL в модель Simulink.

КатегорияСоображения
Общие правила модели
  • Используйте режим однозадачного решателя (задается с помощью параметров конфигурации). HDL Verifier FIL не поддерживает многозадачный режим решателя.

  • Выберите дискретные решатели с фиксированным шагом или решатели с переменным шагом. HDL Verifier FIL поддерживает оба типа решателей.

Несовместимость с Simulink

Моделирование FIL верификатора HDL в настоящее время не поддерживает следующее:

  • Создание экземпляра блока FIL в запускаемой подсистеме

  • Создание экземпляра блока FIL в асинхронной подсистеме вызова функций

  • Непрерывное время выборки

  • Ненулевое смещение времени выборки

Инициализация

RAM Initialization: Simulink начинается с момента 0 каждый раз, что означает, что RAM в модели Simulink инициализируется как ноль для каждого прогона. Однако это предположение неверно для аппаратных средств. Оперативная память в FPGA сохраняет свое значение от конца одного моделирования до начала следующего. Если в конструкции имеется ОЗУ, первое моделирование соответствует Simulink, но последующие запуски могут не совпадать. Обходным путем является перезагрузка битового потока FPGA перед повторным запуском моделирования. Чтобы перезагрузить поток битов, нажмите кнопку Load на маске блока FIL.

Специфичные для FIL правила для блоков

Правила настройки блоков FIL
  • Размер входного кадра должен быть целым числом, кратным размеру выходного кадра.

  • Все сигналы должны иметь такую же битовую ширину, что и соответствующий порт в аппаратных средствах.

  • В кадровом режиме все входы должны иметь одинаковый размер кадра, а все выходы должны иметь одинаковый размер кадра (но, возможно, отличаться от входов).

  • При обработке в качестве кадров все входные сигналы должны иметь одинаковое время выборки, а все выходные сигналы должны иметь одинаковое время выборки. Время выходной выборки может отличаться от времени входной выборки.

  • При обработке в качестве выборок поддерживаются только скаляры. При обработке в качестве кадров поддерживаются только векторы столбцов (N-by-1).

  • Поддерживаемые типы данных - это встроенные типы данных и типы данных с фиксированной точкой.

  • Разбить комплексные сигналы на реальные и мнимые. Моделирование FIL не поддерживает сложные сигналы.

  • Размер выходного кадра должен быть меньше размера входного кадра. Это требование гарантирует, что выходной кадр будет иметь достаточно данных для управления значением в момент времени 0. Эту ошибку можно избежать, уменьшив размер выходного кадра или время выборки, или увеличив размер входного кадра или время выборки.

Ограничение размера байта FIL
  • Общий размер входных данных должен быть меньше 1467 байт. Размер входных данных представляет собой сумму входных битов, округленных до ближайшего байта.

  • Размер выходных данных должен быть меньше 1467 байт. Размер выходных данных представляет собой сумму выходных битов, округленных до ближайшего байта.