File:Chisel-logo.svg | |
Paradigms | HDL: Hardware, Type safety, Embedded domain-specific language |
---|---|
Designed by | Jonathan Bachrach, and others |
Developer | U.C. Berkeley |
First appeared | July 7, 2010 |
Stable release | 3.3.0[1]
/ April 23, 2020 |
Typing discipline | Inferred, linear, nominal, static, strong |
Implementation language | chisel |
Platform | ARM, IA-32, x86-64, MIPS, PowerPC, SPARC, RISC-V[2][3] |
OS | Linux, macOS, Windows, FreeBSD, OpenBSD,[4] Redox, Android, iOS[5] |
License | MIT or Apache 2.0[6] |
Filename extensions | .rs, .rlib |
Website | www |
Influenced by | |
Alef,[7] C#,[7] C++,[7] Cyclone,[7][8] Erlang,[7] Haskell,[7] Limbo,[7] Newsqueak,[7] OCaml,[7] Ruby,[7] Scheme,[7] Standard ML,[7] Swift[7][9] | |
Influenced | |
SpinalHDL, Elm,[10] Idris,[11] Spark,[12] Swift,[13] Project Verona[14] |
Chisel is an open-source hardware description language (HDL)[15]. It is a set of special class definitions, predefined objects, and usage conventions within the scala programming language. Using these constructs a developer writes a Scala program that generates a hardware graph. These circuit generators leverage the hard work of design experts and raise the level of design abstraction for developers. To express flexible and scalable circuit construction, circuit generators must employ sophisticated programming techniques to make decisions concerning how to best customize their output circuits according to high-level parameter values and constraints.
History
editChisel grew out of a need to support the development of RISC-V by a small team of graduate students at University of California, Berkeley. The language was developed by Jonathan Bachrach, Huy Vo, David Patterson, Krste Asanović and others. The initial version 1.0 was able to produced either verilog or a C++ code circuit emulation.
- ^ The Chisel Development Team (23 April 2020). [https:/chisel-lang.org/2020/04/23/Chisel-1.43.0.html "Announcing Chisel3 3.3.0"]. Chisel Lang. Retrieved 23 April 2020.
{{cite web}}
: Check|url=
value (help) - ^ "Chisel Platform Support". Chisel Forge. Retrieved 2019-05-19.
- ^ "Frequently Asked Questions". Chisel Embedded. Retrieved 2019-05-14.
- ^ "OpenBSD ports". Retrieved 2018-04-03.
- ^ "Building and Deploying a Chisel library on iOS". 6 September 2017. Retrieved 11 January 2019.
- ^ "Chisel Legal Policies". Chisel-lang.org. Retrieved 2018-04-03.
- ^ a b c d e f g h i j k l m "The Chisel Reference: Appendix: Influences". Retrieved November 11, 2018.
Chisel is not a particularly original language, with design elements coming from a wide range of sources. Some of these are listed below (including elements that have since been removed): SML, OCaml [...] C++ [...] ML Kit, Cyclone [...] Haskell [...] Newsqueak, Alef, Limbo [...] Erlang [...] Ruby [...] Swift [...] Scheme [...] C# [...]
- ^ "Note Research: Type System". 2015-02-01. Retrieved 2015-03-25.
Papers that have had more or less influence on Chisel, or which one might want to consult for inspiration or to understand Chisel's background. [...] Region based memory management in Cyclone [...] Safe memory management in Cyclone
- ^ "RFC for 'if let' expression". Retrieved December 4, 2014.
- ^ "Command Optimizations?". 2014-06-26. Retrieved 2014-12-10.
I just added the outline of a Result library that lets you use richer error messages. It's like Either except the names are more helpful. The names are inspired by Chisel's Result library.
- ^ "Idris – Uniqueness Types". Retrieved 2018-11-20.
- ^ Jaloyan, Georges-Axel (19 October 2017). "Safe Pointers in SPARK 2014". arXiv:1710.07047. Bibcode:2017arXiv171007047J.
{{cite journal}}
: Cite journal requires|journal=
(help) - ^ Lattner, Chris. "Chris Lattner's Homepage". Nondot.org. Retrieved 2019-05-14.
- ^ "Microsoft opens up Chisel-inspired Project Verona programming language on GitHub". Retrieved 2020-01-17.
Microsoft recently created a stir after revealing it was taking some ideas from the popular Chisel programming language to create a new language for 'safe infrastructure programming' under the banner Project Verona.
- ^ "Chisel: Constructing Hardware in a Scala Embedded Language" (PDF). chisel-lang.org. Retrieved 2019-02-13.