Zighyr — это специализированная операционная система для встраиваемых решений, которая разворачивается внутри FPGA и базируется на легковесном RISC-V ядре SERV. При конфигурации создаётся IP-ядро с необходимым количеством процессорных ядер, внутри каждого из которых запускается экземпляр Zephyr RTOS, дополненный поддержкой языка Zig. Главная цель проекта — предложить разработчикам гибкую, безопасную и эффективную платформу, которая сочетает в себе простоту Zig, возможности Zephyr и проверенный временем загрузчик MCUboot.

Ключевые концепции

  1. Оптимизация под FPGA: При конфигурации Zighyr определяет доступное число ядер и автоматически генерирует IP-ядро, позволяя максимально эффективно использовать FPGA-ресурсы.
  2. Интеграция с Zig: Язык Zig известен своей безопасностью, высокой производительностью и простотой. Использование Zig в Zighyr упрощает процесс разработки драйверов, модулей и прикладных компонентов за счёт статического анализа, контроля времени компиляции и гибкой системы типов.
  3. Базирование на Zephyr: Zephyr RTOS — это надёжная и активно развивающаяся платформа реального времени. Она предоставляет широкий набор функций и драйверов, проверенных сообществом и промышленностью. Zighyr берёт всё лучшее от Zephyr и дополняет его поддержкой Zig.
  4. Надёжная загрузка с MCUboot: Zighyr использует MCUboot в качестве базы для собственного загрузчика, обеспечивая безопасное обновление прошивки и надёжный старт системы. Эта модель даёт уверенность в том, что даже при сбоях обновления конечная система не окажется в неработоспособном состоянии.

Особенности реализации

  • Сборка на базе Organic: Система использует инфраструктуру Organic для сборки и компиляции, что обеспечивает модульность, гибкость и удобство в настройке процесса. Organic позволяет автоматически определять необходимые зависимости и формировать итоговый пакет под целевую FPGA-конфигурацию, упрощая разработку и снижение риска конфликтов между модулями.- Высокопроизводительная коммуникация: Ядра могут обмениваться сообщениями через разделяемую память, что обеспечивает минимальные задержки и высокую пропускную способность.
  • Тесная интеграция с ядром SERV: Поскольку Zighyr разворачивается внутри FPGA, основой её аппаратной части является лёгкое RISC-V ядро SERV. Такой подход обеспечивает возможность параллельных вычислений и гибкую настройку под конкретный проект.
  • Совместимость с zig-zephyr: Репозиторий zig-zephyr поддерживает ряд примеров и шаблонов, упрощающих старт работы с платформой и дальнейшую настройку.

Преимущества

  • Гибкость: Поддержка многопроцессорной конфигурации в FPGA и разнообразных аппаратных профилей.
  • Безопасность: Использование MCUboot даёт надёжный механизм обновлений, а Zig обеспечивает строгую проверку типов и снижение числа типичных ошибок.
  • Удобство разработки: Простая сборка через автогенерируемый build.zig, а также широкие возможности Zephyr по работе с периферией.
  • Масштабируемость: Система способна расти вместе с задачами и ресурсами FPGA — от небольших проектов до комплексных многопроцессорных конфигураций.

Zighyr представляет собой современный подход к созданию безопасных и высокопроизводительных решений внутри FPGA. Используя преимущества Zephyr, безопасность MCUboot и потенциал языка Zig, она открывает путь к эффективной разработке приложений и снижению времени вывода продукта на рынок.