Python-фреймворк для создания собственных FPGA-ядер и SoC: шины, периферия, интеграция CPU и поддержка симуляции.
chipsalliance/chisel
Встроенный в Scala язык описания аппаратуры для создания параметризуемых генераторов цифровых схем, выпускающих Verilog.
- Звёзды
- 4,829
- Форки
- 666
- Открытые issues
- 522
- Последний коммит
- вчера
Что это?
Chisel (Constructing Hardware in a Scala Embedded Language) — язык описания аппаратуры для проектирования цифровых устройств на уровне регистровых передач. Вместо того чтобы писать Verilog вручную, разработчики пишут код на Scala, который строит схемы, и используют для генерации аппаратуры обычные конструкции языка — функции, классы и циклы. Результат — синтезируемый Verilog или SystemVerilog, пригодный для разработки ASIC и FPGA.
В основе Chisel лежит генератор схем: параметризуемый класс Scala, например FIR-фильтр, заданный списком коэффициентов, можно создавать и повторно использовать в разных проектах. Стандартная библиотека Chisel (chisel3.util) содержит готовые компоненты, такие как FIFO-очереди, арбитры и интерфейсы ready-valid. Chisel использует промежуточное представление FIRRTL и компилятор CIRCT firtool.
Проект распространяется по лицензии Apache 2.0 и развивается под эгидой CHIPS Alliance. В репозитории есть подпроекты с основной библиотекой, плагином компилятора и библиотекой симуляции svsim, рассчитанной на Verilator и VCS. В документации также приведены ссылки на руководства, учебник и шаблон проекта.
Ключевые возможности
- 01Описывает аппаратуру на Scala, позволяя повторно использовать классы, функции и циклы для создания параметризуемых схем.
- 02Генерирует синтезируемый Verilog или SystemVerilog с помощью ChiselStage и firtool.
- 03Предоставляет стандартную библиотеку с FIFO-очередями, арбитрами и интерфейсами Decoupled ready-valid.
- 04Включает svsim для запуска симуляций в Verilator и VCS.
- 05Собирается с помощью Mill и публикует артефакты для использования в проектах sbt.
Сценарии использования
- Разработка повторно используемых параметризуемых IP-блоков для ASIC или FPGA.
- Создание процессоров или ускорителей с помощью генераторного подхода к написанию кода.
- Изучение цифровой схемотехники с современным языком программирования и онлайн-руководствами.
- Генерация Verilog из кода на Scala для последующих этапов синтеза и симуляции.
Быстрый старт
- 1
Начните с репозитория Chisel Template, в котором уже настроен проект
- 2
Или настройте собственный проект, добавив зависимость Chisel и плагин компилятора в build.sbt
- 3
Попробуйте онлайн-учебник Chisel Bootcamp в браузере — настройка не требуется
Что важно знать
- Для работы нужна цепочка инструментов Scala и sbt на JVM, что усложняет настройку.
- Для генерации Verilog необходим компилятор firtool, поэтому некоторые онлайн-среды, например Scastie, не могут генерировать Verilog.
Темы
Частые вопросы
- Что такое chisel?
- Встроенный в Scala язык описания аппаратуры для создания параметризуемых генераторов цифровых схем, выпускающих Verilog. Chisel (Constructing Hardware in a Scala Embedded Language) — язык описания аппаратуры для проектирования цифровых устройств на уровне регистровых передач. Вместо того чтобы писать Verilog вручную, разработчики пишут код на Scala, который строит схемы, и используют для генерации аппаратуры обычные конструкции языка — функции, классы и циклы. Результат — синтезируемый Verilog или SystemVerilog, пригодный для разработки ASIC и FPGA.
- chisel можно использовать бесплатно? Какая у него лицензия?
- chisel распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- chisel всё ещё поддерживается?
- Активно поддерживается. Последний коммит в chisel — 6 нояб. 2026 г..
- Для чего можно использовать chisel?
- Разработка повторно используемых параметризуемых IP-блоков для ASIC или FPGA. Создание процессоров или ускорителей с помощью генераторного подхода к написанию кода. Изучение цифровой схемотехники с современным языком программирования и онлайн-руководствами. Генерация Verilog из кода на Scala для последующих этапов синтеза и симуляции.
- Как установить chisel?
- Начните с репозитория Chisel Template, в котором уже настроен проект Или настройте собственный проект, добавив зависимость Chisel и плагин компилятора в build.sbt Попробуйте онлайн-учебник Chisel Bootcamp в браузере — настройка не требуется
- Где скачать chisel?
- Исходный код и инструкции по установке — на GitHub: https://github.com/chipsalliance/chisel
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Высокопроизводительное ядро RISC-V с открытым исходным кодом, написанное на Scala с использованием Chisel и разработанное проектом XiangShan.
Модульный расширяемый фреймворк на Go для создания серверов потокового вещания с поддержкой RTMP, RTSP, HLS, WebRTC и других протоколов.
Бесплатный open-source UI kit на Bootstrap 5 для админ-панелей: готовые страницы, компоненты, тёмная тема и поддержка RTL.
Шаблон интерфейса админ-панели на компонентах Shadcn UI и Vite с поддержкой светлой и тёмной тем, RTL и глобальным поиском.