Разработчик | Калифорнийский университет, Беркли |
---|---|
Язык реализации | Scala |
Веб-сайт | www.chisel-lang.org |
Конструирование оборудования на встроенном языке Scala (Chisel) - это язык описания оборудования с открытым исходным кодом (HDL). для описания цифровых схем на уровне передачи регистров. Chisel основан на Scala как встроенный DSL. Chisel наследует объектно-ориентированные и функциональные аспекты Scala для описания цифрового оборудования. Использование Scala как основы позволяет описывать генераторы схем.
Схемы, описанные в Chisel, могут быть преобразованы в описание в Verilog для синтеза и моделирования.
Простой пример, описывающий схему сумматора и демонстрирует организацию компонентов в Moduls с портами ввода и вывода:
class Add extends Module {val io = IO (new Bundle {val a = Input (UInt (8.W)) val b = Input (UInt (8.W)) val y = Output (UInt (8.W))}) io.y: = io.a + io.b}
32-битный регистр со значением сброса 0:
val reg = RegInit (0.U (32.W))
Мультиплексор является частью библиотеки Chisel:
val result = Mux (sel, a, b)
Хотя Chisel пока что не является основным языком описания оборудования, он был исследован несколькими компаниями и учреждениями. Наиболее распространенное использование Chisel - это реализация набора команд RISC-V, чипа Rocket с открытым исходным кодом. DARPA упоминает Chisel как технологию повышения эффективности проектирования электроники, при которой небольшие проектные группы выполняют более крупные проекты. Google использовал Chisel для разработки блока обработки тензора для края.