Автоматическая генерация кода конфигурации ПЛИС на базе модели БКУ — КиберПедия 

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Автоматическая генерация кода конфигурации ПЛИС на базе модели БКУ

2020-04-01 143
Автоматическая генерация кода конфигурации ПЛИС на базе модели БКУ 0.00 из 5.00 0 оценок
Заказать работу

 

Следующим шагом является автоматическая генерация HDL -кода с помощью специальных утилит. Данный шаг является основой всей работы.

Для автоматической генерации HDL кода используется встроенная утилита HDL coder toolbox системы автоматизированного проектирования и разработки Matlab, которая позволяет довольно простыми методами получить необходимый код на заданном языке программирования. HDL Coder генерирует синтезируемый Verilog и/или VHDL код из функций Matlab, моделей Simulink и диаграмм Stateflow. Полученный HDL -код может быть использован для программирования ПЛИС или прототипирования.

В состав HDL Coder входит инструмент под названием HDL Workflow Advisor ( помощник по работе с HDL), который автоматизирует программирование ПЛИС компаний Xilinx и Altera. Можно контролировать HDL -архитектуру и реализацию, выделять критические пути и генерировать отчеты об использовании аппаратных ресурсов. Обеспечивается трассируемость между моделью Simulink и сгенерированным VHDL и Verilog кодом, что позволяет верифицировать его для приложений, требующих высокого уровня надежности.

Ключевые особенности:

не зависящий от конечного устройства, синтезируемый VHDL и Verilog код;

генерация кода поддерживается для системных объектов и функций Matlab, а также

блоков Simulink;

автоматы Мили и Мура и реализация управляющей логики с использованием Stateflow;

рабочий помощник для программирования плат с ПЛИС компаний Xilinx и Altera;

совместное использование ресурсов и восстановление синхронизации для достижения

компромисса между скоростью и площадью;

интеграция старого кода.

Генерация HDL -кода для ПЛИС происходит в несколько шагов:

создание проекта, комбинируя код Matlab, блоки Simulink и диаграммы Stateflow;

оптимизация модели для достижения требуемых показателей площади схемы и скорости;

генерация HDL -кода с помощью встроенного помощника по работе с HDL для Matlab

и Simulink;

проверка сгенерированного кода с использованием HDL Verifier.

Достигнуть компромисса между занимаемой на кристалле площадью и скоростью работы можно, оптимизировав HDL -код за счет распределенной конвейеризации, потоковой обработки и совместного использования ресурсов. В Matlab имеется возможность воспользоваться улучшенной оптимизацией циклов, заключающаяся в потоковой обработке циклов и развертывании циклов для проектов Matlab, содержащих циклы for или матричные операции. Постоянные массивы и матричные переменные в коде Matlab можно расположить в блоки RAM. В Simulink можно реализовать многоканальные конструкции и техники сериализации, часто встречающиеся в приложениях обработки сигналов и связи.

После синтеза проекта можно просмотреть отчет по времени и выделить в модели Simulink узкие места с ограничениями по времени. Эта интеграция со средствами синтеза позволяет быстро производить рабочие операции и значительно сокращает время проектирования на ПЛИС.

Чтобы быстро проверить полученный HDL -код, вместе с ним генерируются и тестовые вектора, которые можно настроить с помощью разнообразных опций, добавляющих дополнительные входные сигналы для кода. Также можно создать скрипт для автоматизации процесса компиляции и симуляции кода в HDL -симуляторах. HDL Verifier позволяет сгенерировать два типа моделей ко-симуляции:

выполнение ко-симуляции HDL -кода в Simulink и HDL -симуляторе, таком как Cadence

Incisive или Mentor Graphics ModelSim и Questa;

FPGA-in-the-loop (FIL) - для проверки проекта в Simulink и плате с ПЛИС.

Общая итоговая модель, созданная при помощи пакета Stateflow среды автоматизированного проектирования и разработки Matlab представлена на рисунках 3.6 - 3.9.

Данная модель содержит 3 вложенных состояния - Radio, Telemetry, Energy, что соответствует конечным автоматам, отвечающим за обработку радиокоманд (рисунок 2.2), сбор и обработку телеметрической информации (рисунок 2.3), управление системой энергоснабжения (рисунок 2.4). Логика работы данных Stateflow -диаграмм уже описывалась. Стоит упомянуть лишь о том, что общая структура работы выполнена в виде параллельной декомпозиции, что является неотъемлемой частью современной системы.

Автоматическая генерация кода предлагает использовать в качестве конечного продукта два языка - VHDL и Verilog. По заявлению фирмы Xilinx оптимальным языком для выпущенных данной компанией устройств является VHDL, несмотря на это принято решение о генерации кода обоих языков с целью последующего сравнения по непосредственным текстовым размерам.

На этапе изучения утилиты HDL Coder было выявлено, что некоторые стили создания диаграмм Stateflow HDL coder не поддерживает, в частности таблицы истинности и древа if-else с безусловными переходами выше пятого порядка [15]. В соответствии с этим модель была доработана.

Перед началом генерации кода разработчика говорят о необходимости настроить параметры созданной модели для оптимальной работы с HDL кодером. Вручную делать это не представляется целесообразным, поскольку для этого достаточно ввести в командной строке Matlab команду: >> hdlsetup "Имя модели".

Наиболее удобным и простым в реализации способом для генерации HDL кода является использование утилиты HDL Workflow Advisor, позволяющей пошагово произвести генерацию кода (рисунок 3.10).

Первым шагом является установка целевого назначения использования утилиты, а также непосредственно самой аппаратуры, для которой будет генерироваться код (рисунок 3.11). В данной работе используется просто генерация HDL кода для ПЛИС Xilinx Spartan 6 сборки csg 324. Дополнительно в этом же диалоговом окне устанавливается конечная директория для сохранения файлов, а также инструмент для синтезирования сгенерированного кода. В случае установки, к примеру программы Xilinx ISE в качестве ПО для отработки кода, появляется дополнительный пункт 4 FPGA Synthesis and Analysis. На данном этапе это не представляет интереса, поскольку в дальнейшем проведена непосредственная генерация кода конфигурации в Xilinx ISE.

Следующий шаг - подготовка имитационной модели Simulink для генерации HDL кода. На данном этапе автоматизировано проводятся следующие виды проверок: общая (проверка установок и параметров модели), проверка на наличие циклически замкнутых алгебраических выражений, проверка на отсутствие неподдерживаемых для генерации блоков в составе модели и проверка на временные интервалы симулирования (рисунок 3.12).

Третий шаг - установка пользовательских настроек для генерируемого кода (рисунок 3.13). В числе данных настроек: выбор генерируемого кода (VHDL/Verilog); выбор тематики отчетов, создаваемых по результатам генерации; установка наименований для портов тактирующих импульсов, сброса и разрешающего; выбор вида сигнала сброса (синхронный/асинхронный); выбор установок по оптимизации кода; выбор стиля кодирования и комментариев. Стоит сказать, что также на данном этапе возможен выбор непосредственно генерируемых файлов, в числе которых могут быть: HDL код, Testbench код и модель для косимуляции с выбираемым там же симулятором (например Mentor Graphics ModelSim).

Таким образом были сгенерированы три файла: satellite. vhd, Model_HDL. vhd и Model_HDL_pkg. vhd, что соответствует коду для SF -диаграммы и коду высшего уровня иерархии. В случае успешно прохождения всех этапов на экран выводится отчет о процедуре генерации HDL кода (рисунок 3.14).

В данном отчете можно увидеть всю необходимую информацию как о выходных данных, так и об программном обеспечении, используемом для генерации. Представляет интерес тип отчета, в котором указаны элементы, создаваемые на ПЛИС в результате загрузки данного кода в микросхему. С целью проведение эксперимента была проведена автоматическая генерация HDL кода на языках VHDL и Verilog. Сравнительные данные о типе используемых элементов на ПЛИС и их количестве представлены в таблице 3.2.

 


Таблица 3.2 - Сравнительная таблица использования ресурсов ПЛИС для VHDL и Verilog кодов

  VHDL Verilog
Перемножители 10 12
Сумматоры 32 41
Регистры 110 109
Элементы памяти 0 0
Мультиплексоры 140 134
Общая длина кодового текста 2475 2500

 

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

Таким образом, можно говорить об удачном прохождении этапа автоматической генерации HDL код на основе имитационной модели Simulink/Stateflow. Следующим шагом станет верификация созданного программного обеспечения, генерация файла конфигурации ПЛИС и его проверка на лабораторном макете.


Поделиться с друзьями:

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.012 с.