Bluespec
Bluespec is a hardware description language (HDL). UCAM-CL-TR-984 describes the Bluespec HDL as designed by Bluespec Inc. and used in the thesis's processor-design work. The same source contrasts Bluespec with widely used HDLs such as VHDL and (System)Verilog, characterising Bluespec as a higher-level HDL.
Language model and design style
According to UCAM-CL-TR-984, the Bluespec HDL is built atop Haskell. The source states that it distinguishes evaluation-time computation from descriptions of hardware logic wrapped in the module monad. It also describes Bluespec as providing strong type-safety and guarded atomic actions, or rules, which are behaviours that must run together or not at all depending on programmer-specified and implicit conditions. The report says this supports higher-level reasoning about designs while allowing the compiler to generate detailed control signals.
Processor-design use
UCAM-CL-TR-984 identifies Bluespec as the HDL used for the thesis's processor-design work. It notes that relevant baseline processors were available in the source language, including the Piccolo and Flute microcontrollers from Bluespec Inc. and the superscalar RiscyOO from MIT.
The same report lists several open-source contributions associated with the work:
- Piccolo: a fork of the Bluespec microcontroller, extended with CHERI modifications; the author reports adding DII and CHERI support.
- Flute: a fork of Bluespec's larger microcontroller, extended with CHERI modifications; the author similarly reports adding DII and CHERI support.
- Toooba: a fork of Bluespec's out-of-order processor, extended with CHERI modifications; the report states the baseline processor is itself a fork of MIT's RiscyOO processor.
- BlueStuff: Bluespec libraries providing interconnect utilities, including AXI; the report says these libraries supplied interconnect components required for memory subsystems of the CHERI implementations.
Research context
Public research context also places Bluespec in compiler and specification work. A 2019 arXiv research note reports an open-source compiler for the Bluespec hardware description language. A 2009 arXiv paper on using natural extensions of Separation Logic as a specification language for concurrent-system design states that one of its examples, a 2x2 Switch, was implemented in Bluespec.