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

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

Для мастера FIL

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

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

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

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

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

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

Для HDL Workflow Advisor

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

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

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

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

Мастер FIL и HDL Coder™ HDL Workflow Advisor выполняют следующие действия:

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

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

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

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

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

Примечание

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

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

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

Когда вы закончите с этими разделами, далее перейдите к мастеру генерации системных объектов с помощью FIL или к мастеру симуляции FIL с помощью HDL Workflow Advisor для 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 не поддерживается)

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

  • Для 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. Если активация синхроимпульса не называется одним из этих имен, укажите, какой сигнал является разрешением синхроимпульса в мастере FIL.

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

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

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

  • Verilog включают файлы

  • Макрос

  • Сбежавшие имена

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

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

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

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

Выход формата кадра

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

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

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

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

  • Целое число

  • Логичный

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

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

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

Мастер FIL и HDL-кодер HDL Workflow Advisor выполнять следующие действия:

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

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

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

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

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

Примечание

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

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

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

Когда вы закончите с этими разделами, далее перейдите к Блоку Генерация с Мастером FIL или FIL Симуляция с HDL Workflow Advisor для 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 не поддерживается)

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

  • Для 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. Если активация синхроимпульса не называется одним из этих имен, укажите, какой сигнал является разрешением синхроимпульса в мастере FIL.

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

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

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

  • Verilog включают файлы

  • Макрос

  • Сбежавшие имена

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

Факторы модели Simulink для блоков FIL

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

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

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

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

Симуляция HDL Verifier FIL в настоящее время не поддерживает следующее:

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

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

  • Непрерывный шаг расчета

  • Ненулевое смещение шага расчета

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

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

FIL-специфические правила для блоков

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

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

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

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

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

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

  • Разделите комплексные сигналы на действительные и мнимые сигналы. Симуляция FIL не поддерживает комплексные сигналы.

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

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

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