Zighyr — это специализированная операционная система для встраиваемых решений, которая разворачивается внутри FPGA и базируется на легковесном RISC-V ядре SERV. При конфигурации создаётся IP-ядро с необходимым количеством процессорных ядер, внутри каждого из которых запускается экземпляр Zephyr RTOS, дополненный поддержкой языка Zig. Главная цель проекта — предложить разработчикам гибкую, безопасную и эффективную платформу, которая сочетает в себе простоту Zig, возможности Zephyr и проверенный временем загрузчик MCUboot.
Ключевые концепции
- Оптимизация под FPGA: При конфигурации Zighyr определяет доступное число ядер и автоматически генерирует IP-ядро, позволяя максимально эффективно использовать FPGA-ресурсы.
- Интеграция с Zig: Язык Zig известен своей безопасностью, высокой производительностью и простотой. Использование Zig в Zighyr упрощает процесс разработки драйверов, модулей и прикладных компонентов за счёт статического анализа, контроля времени компиляции и гибкой системы типов.
- Базирование на Zephyr: Zephyr RTOS — это надёжная и активно развивающаяся платформа реального времени. Она предоставляет широкий набор функций и драйверов, проверенных сообществом и промышленностью. Zighyr берёт всё лучшее от Zephyr и дополняет его поддержкой Zig.
- Надёжная загрузка с 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, она открывает путь к эффективной разработке приложений и снижению времени вывода продукта на рынок.