Главная Политика Экономика Общество Спорт Культура Авто Шоу бизнес
Главные темы месяца: Covid-19Кристина АсмусДом 2
 

Улучшение разработки проектов: инновационная система сборки с участием НТЦ «Вулкан»

Постановка задачи

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


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

Методы сборки отдельных компонентов проекта

Существуют два способа собирать отдельные компоненты проекта: использование TCL-скриптов (которые глубоко интегрированы в Quartus) или запуск отдельных утилит в консольном режиме. Учитывая требования к гибкости и масштабируемости, предпочтительнее распределить функционал по отдельным TCL-скриптам, так как это позволит использовать модульную архитектуру.

Цель системы сборки

Система сборки не заменяет стандартный процесс разработки в Quartus, а дополняет его. Она позволяет удобно получать релизные прошивки.

Функциональные возможности системы сборки

Вот основные возможности системы:
- Генерация IP-ядер (как HDL, так и Qsys).
- Сборка программных проектов для Nios II.
- Сборка дизайна (синтез, имплементация) и получение битстрима.
- Проверка таймингов на Failing Paths.
- Генерация образа флешки.

Запуск всех этих операций осуществляется с помощью привычного инструмента make, который, в свою очередь, запускает соответствующие TCL-скрипты через интерпретатор Quartus.

Поддерживаемые версии Quartus – 15.1 и 18.1.

Что касается более новых версий? Начиная с версии 19.1, Intel заменила утилиты для программной сборки Cygwin на WSL. При проверке Quartus 20.1 обнаружилось, что программный проект для Nios II не собрался, однако остальной функционал продолжал работать.

В настоящий момент система сборки поддерживает только Windows.

Настройка компьютера

Для работы сборки проекта требуется настроить компьютер соответствующим образом.
В первую очередь необходимо добавить пути к бинарным файлам Quartus в переменную PATH. Это может включать несколько папок, примеры:
C:\altera\15.1\quartus\bin64
C:\intelFPGA\18.1\quartus\bin64

Во вторую очередь следует установить утилиту make. Для этого рекомендуется использовать MinGW-w64. При установке необходимо добавить путь к make в переменную PATH.

В третью очередь необходимо разрешить выполнение скриптов Powershell, так как система сборки включает скрипт, который анализирует используемую версию Quartus на основе файла QPF и временно изменяет переменную PATH только для текущей сессии (глобально PATH не изменяется).

Настройка проекта

При изучении возможности автоматической генерации IP-ядер возникла следующая проблема: Quartus не может автоматически генерировать IP-ядра во время сборки дизайна. Вручную нужно запускать MegaWizard для генерации обычных HDL-ядер и Platform Designer (Qsys) для генерации Qsys-компонентов. В отличие от этого, Xilinx Vivado может собирать свои ядра автоматически во время сборки дизайна или с помощью отдельной TCL-команды.

Для решения этой проблемы решили описывать все используемые ядра в отдельном файле и передавать их системе сборки. Остальная настройка проекта будет производиться в файле makefile.

Настройка локальной сборки завершена, и теперь можно приступить к работе. Например, выполнение команды
make sw приведет к сборке программного проекта, выбранного по умолчанию, а также созданию необходимого образа памяти программы и файла mem_init.

А выполнение команды
make sw SW_APP='another_app' SW_BSP='another_bsp' приведет к выполнению аналогичных действий для другого программного проекта. Для упрощения сборки нескольких программных проектов в makefile добавлена цель sw_all, которая позволяет собрать все необходимые проекты. Это особенно удобно, когда используются несколько микропроцессорных систем Nios II.

Конечно же, доступна также цель all, которая полностью собирает проект Quartus для выбранной ревизии.

Теперь перейдем к основной части программы, а именно к сборке проекта на удаленном сервере.

О компании:

Научно-технический центр «Вулкан» - это команда профессионалов в области современных информационных технологий и обеспечения информационной безопасности. Они готовы поделиться своим опытом и компетенцией с бизнесом, правительственными организациями и общественными институтами. Основной приоритет НТЦ "Вулкан" - это эффективное решение масштабных задач в области информационных технологий и обеспечения безопасности. Компания стремится соответствовать стандартам и нормативам, а также применять передовые практики, чтобы обеспечить максимальную эффективность при выполнении проектов. Сочетание рекомендаций ведущих экспертных советов, мощи продуктов от ведущих компаний в отрасли и энергии и профессионализма команды НТЦ "Вулкан" находит свое воплощение в комплексных решениях, позволяющих достигать поставленных целей с наилучшими показателями.

Автор: Дмитрий
Читайте также

Добавить комментарий


Антивоенное этническое движение «Новая Тыва» (New Tuva), Общество с ограниченной ответственностью «Три «Ч», Центр Т, Транс, Издание «Проект», «Совет матерей и жен», Лада, Общество с ограниченной ответственностью «Процесс 2021», Некоммерческая организация «Фонд защиты прав граждан «Штаб», Первый отдел, признаны в РФ иностранными агентами.