Chisel (язык программирования)

Язык описания оборудования с открытым исходным кодом (HDL)
Создание аппаратного обеспечения на встроенном языке Scala (Chisel)
ПарадигмыМультипарадигмальный : параллельный , функциональный , императивный , объектно-ориентированный
СемьяСкала
РазработчикКалифорнийский университет в Беркли
Впервые появилсяИюнь 2012 ; 12 лет назад ( 2012-06 )
Стабильный релиз
3.6.0 / 14 апреля 2023 г. ; 21 месяц назад ( 2023-04-14 )
Дисциплина набора текстаПредполагаемый , статический , сильный , структурный
ОбъемЛексический (статический)
Язык реализацииСкала
ПлатформаВиртуальная машина Java (JVM)
JavaScript (Scala.js)
LLVM (Scala Native) (экспериментальная)
Веб-сайтwww.chisel-lang.org

Chisel ( аббревиатура от Constructing Hardware in a Scala Embedded Language [1] ) — язык описания оборудования с открытым исходным кодом (HDL), используемый для описания цифровой электроники и схем на уровне регистровых передач . [2] [3]

Chisel основан на Scala как на предметно-ориентированном языке (DSL). Chisel наследует объектно-ориентированные и функциональные аспекты программирования Scala для описания цифрового оборудования. Использование Scala в качестве основы позволяет описывать генераторы схем. Высококачественная, свободно доступная документация существует на нескольких языках. [4]

Схемы, описанные на языке Chisel, можно преобразовать в описание на языке Verilog для синтеза и моделирования .

Примеры кода

Простой пример, описывающий схему сумматора и показывающий организацию компонентов в модуле с входными и выходными портами:

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 с открытым исходным кодом. [5] Chisel упоминается Агентством перспективных исследовательских проектов Министерства обороны США ( DARPA ) как технология для повышения эффективности электронного проектирования, где небольшие проектные группы выполняют более крупные проекты. [6] Google использовала Chisel для разработки Tensor Processing Unit для периферийных вычислений . [7] Некоторые разработчики предпочитают Chisel, поскольку он требует в 5 раз меньше кода и разрабатывается намного быстрее, чем Verilog. [8]

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

Смотрите также

Ссылки

  1. ^ Бахрах, Дж.; Во, Х.; Ричардс, Б.; Ли, Ю.; Уотерман, А.; Авизиенис, Р.; Вавжинек, Дж.; Асанович, К. (июнь 2012 г.). «Chisel: конструирование оборудования на встроенном языке Scala». Труды 49-й ежегодной конференции по автоматизации проектирования (DAC 2012) . Сан-Франциско, Калифорния, США: Ассоциация вычислительной техники (ACM). стр.  1216–25 . doi :10.1145/2228360.2228584. ISBN 978-1-4503-1199-1.
  2. ^ "Chisel". people.eecs.berkeley.edu . Калифорния, США: Калифорнийский университет в Беркли . Архивировано из оригинала 2021-10-16 . Получено 2020-07-08 .
  3. ^ Бахрах, Джонатан (ред.). «Chisel: ускорение проектирования оборудования» (PDF) . RISC-V . Калифорния, США: RISC-V International.
  4. ^ Schoeberl, Martin (30 августа 2019 г.). Digital Design with Chisel (на английском, китайском, японском и вьетнамском языках) (2-е изд.). Kindle Direct Publishing. ISBN 978-1689336031.
  5. ^ Асанович, Крсте ; и др. «ракетный чип». Гитхаб . RISC-V Международный . Проверено 11 ноября 2016 г.
  6. ^ Мур, Сэмюэл К. (2018-07-16). "DARPA планирует крупную переделку американской электроники". IEEE Spectrum . Институт инженеров по электротехнике и электронике (IEEE) . Получено 2020-06-10 .
  7. ^ Дерек Локхарт, Стивен Твигг, Рави Нараянасвами, Джереми Кориелл, Удай Дасари, Ричард Хо, Дуг Хогберг, Джордж Хуанг, Ананд Кейн, Чинтан Каур, Тао Лю, Адриана Маджоре, Кевин Таунсенд, Эмре Тунсер (2018-11-16). Опыт создания Edge TPU с помощью Chisel . Получено 2020-06-10 .
  8. ^ "Процессор XiangShan с открытым исходным кодом 64-бит RISC-V станет конкурентом Arm Cortex-A76 - CNX Software". CNX Software - Новости встраиваемых систем . 2021-07-05 . Получено 2022-03-26 .
  9. ^ "Chisel/FIRRTL Hardware Compiler Framework" . Получено 2022-09-08 .
  • Официальный сайт
  • Chisel 3 на GitHub
  • Канал Chisel на YouTube
Взято с "https://en.wikipedia.org/w/index.php?title=Chisel_(язык_программирования)&oldid=1237704573"