Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Топ:
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Интересное:
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Дисциплины:
2020-04-01 | 144 |
5.00
из
|
Заказать работу |
|
|
Следующим шагом является автоматическая генерация 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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!