Bluespec

Last updated

Bluespec, Inc. is an American semiconductor tool design company co-founded by Massachusetts Institute of Technology (MIT) professor Arvind in June 2003 and based in Framingham, Massachusetts. Arvind had formerly founded Sandburst in 2000, which specialized in producing chips for 10 Gigabit Ethernet (10GE) routers, for this task. [1] [2] Bluespec has two product lines which are primarily for application-specific integrated circuit (ASIC) and field-programmable gate array (FPGA) hardware designers and architects. Bluespec supplies high-level synthesis (electronic system-level (ESL) logic synthesis) with register-transfer level (RTL). The first Bluespec workshop was held on August 13, 2007, at MIT. [3]

Contents

Bluespec SystemVerilog

Bluespec

Bluespec
Paradigm Functional
Family Verilog, Haskell
Developer Bluespec Inc.
Stable release
Version 2022.01 / January 2022 [4]
Scope HDL
Filename extensions .bsv
Website bluespec.com
Major implementations
Bluespec Compiler (BSC); Toy Bluespec Compiler
Dialects
SystemVerilog (BSV), Haskell (BH: Bluespec Classic)

Arvind had developed the Bluespec language named Bluespec SystemVerilog (BSV), a high-level functional programming hardware description programming language which was essentially Haskell extended to handle chip design and electronic design automation in general. [5] The main designer and implementor of Bluespec was Lennart Augustsson. Bluespec is partially evaluated (to convert the Haskell parts) and compiled to the term rewriting system (TRS). It comes with a SystemVerilog frontend. [6] BSV is compiled to the Verilog RTL design files.

Tools

BSV releases are shipped with the following hardware development kit: [7] :7

BSV compiler
The compiler takes BSV source code as input and generates a hardware description for either Verilog or Bluesim as output. It was opensourced by Bluespec inc. in 2020 under New BSD License terms.
Libraries
BSV is shipped with a set programming idioms and hardware structures
Verilog modules
Several primitive BSV elements, such as first in, first out (FIFOs) and processor registers, are expressed as Verilog primitives.
Bluesim
A cycle simulator for BSV designs.
Bluetcl
A collection of Tcl extensions, scripts, and packages to link into a Bluespec design.

Related Research Articles

In computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that map values to other values, rather than a sequence of imperative statements which update the running state of the program.

<span class="mw-page-title-main">VHDL</span> Hardware description language

VHDL is a hardware description language that can model the behavior and structure of digital systems at multiple levels of abstraction, ranging from the system level down to that of logic gates, for design entry, documentation, and verification purposes. The language was developed for the US military VHSIC program in the 1980s, and has been standardized by the Institute of Electrical and Electronics Engineers (IEEE) as IEEE Std 1076; the latest version of which is IEEE Std 1076-2019. To model analog and mixed-signal systems, an IEEE-standardized HDL based on VHDL called VHDL-AMS has been developed.

In computer engineering, a hardware description language (HDL) is a specialized computer language used to describe the structure and behavior of electronic circuits, most commonly to design ASICs and program FPGAs.

The Glasgow Haskell Compiler (GHC) is a native or machine code compiler for the functional programming language Haskell. It provides a cross-platform software environment for writing and testing Haskell code and supports many extensions, libraries, and optimisations that streamline the process of generating and executing code. GHC is the most commonly used Haskell compiler. It is free and open-source software released under a BSD license. The lead developers are Simon Peyton Jones and Simon Marlow.

In computer science, graph reduction implements an efficient version of non-strict evaluation, an evaluation strategy where the arguments to a function are not immediately evaluated. This form of non-strict evaluation is also known as lazy evaluation and used in functional programming languages. The technique was first developed by Chris Wadsworth in 1971.

Hope is a small functional programming language developed in the 1970s at the University of Edinburgh. It predates Miranda and Haskell and is contemporaneous with ML, also developed at the University. Hope was derived from NPL, a simple functional language developed by Rod Burstall and John Darlington in their work on program transformation. NPL and Hope are notable for being the first languages with call-by-pattern evaluation and algebraic data types.

SIGPLAN is the Association for Computing Machinery's Special Interest Group on programming languages.

C-- is a C-like programming language, designed to be generated mainly by compilers for high-level languages rather than written by human programmers. It was created by functional programming researchers Simon Peyton Jones and Norman Ramsey. Unlike many other intermediate languages, it is represented in plain ASCII text, not bytecode or another binary format.

Lennart Augustsson is a Swedish computer scientist. He was formerly a lecturer at the Computing Science Department at Chalmers University of Technology. His research field is functional programming and implementations of functional programming languages.

<span class="mw-page-title-main">SystemVerilog</span> Hardware description and hardware verification language

SystemVerilog, standardized as IEEE 1800, is a hardware description and hardware verification language used to model, design, simulate, test and implement electronic systems. SystemVerilog is based on Verilog and some extensions, and since 2008, Verilog is now part of the same IEEE standard. It is commonly used in the semiconductor and electronic design industry as an evolution of Verilog.

<span class="mw-page-title-main">Philip Wadler</span> American computer scientist

Philip Lee Wadler is a UK-based American computer scientist known for his contributions to programming language design and type theory. He is the chair of theoretical computer science at the Laboratory for Foundations of Computer Science at the School of Informatics, University of Edinburgh. He has contributed to the theory behind functional programming and the use of monads; and the designs of the purely functional language Haskell and the XQuery declarative query language. In 1984, he created the Orwell language. Wadler was involved in adding generic types to Java 5.0. He is also author of "Theorems for free!", a paper that gave rise to much research on functional language optimization.

In computer science, a type class is a type system construct that supports ad hoc polymorphism. This is achieved by adding constraints to type variables in parametrically polymorphic types. Such a constraint typically involves a type class T and a type variable a, and means that a can only be instantiated to a type whose members support the overloaded operations associated with T.

In the theory of programming languages in computer science, deforestation is a program transformation to eliminate intermediate lists or tree structures that are created and then immediately consumed by a program.

C to HDL tools convert C language or C-like computer code into a hardware description language (HDL) such as VHDL or Verilog. The converted code can then be synthesized and translated into a hardware device such as a field-programmable gate array. Compared to software, equivalent designs in hardware consume less power and execute faster with lower latency, more parallelism and higher throughput. However, system design and functional verification in a hardware description language can be tedious and time-consuming, so systems engineers often write critical modules in HDL and other modules in a high-level language and synthesize these into HDL through C to HDL or high-level synthesis tools.

Arvind is the Johnson Professor of Computer Science and Engineering in the Computer Science and Artificial Intelligence Laboratory (CSAIL) at the Massachusetts Institute of Technology (MIT). He is a Fellow of the Institute of Electrical and Electronics Engineers (IEEE) and the Association for Computing Machinery (ACM). He was also elected as a member into the National Academy of Engineering in 2008 for contributions to dataflow and multithread computing and the development of tools for the high-level synthesis of digital electronics hardware.

Irvine Dataflow (Id) is a general-purpose parallel programming language, started at the University of California at Irvine in 1975 by Arvind and K. P. Gostelow. Arvind continued work with Id at MIT into the 1990s.

Atom is a domain-specific language (DSL) in Haskell, for designing real-time embedded software.

Haskell is a general-purpose, statically-typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research, and industrial applications, Haskell has pioneered a number of programming language features such as type classes, which enable type-safe operator overloading, and monadic input/output (IO). It is named after logician Haskell Curry. Haskell's main implementation is the Glasgow Haskell Compiler (GHC).

<span class="mw-page-title-main">Paul Hudak</span> American computer scientist

Paul Raymond Hudak was an American musician and professor of computer science at Yale University who was best known for his involvement in the design of the programming language Haskell, and for several textbooks on Haskell and computer music. He was a chair of the department, and was also master of Saybrook College. He died on April 29, 2015, of leukemia.

References

  1. "Arvind elected as India National Academy of Sciences Foreign Fellow". MIT News . 2014-12-23.
  2. Maffei, Lucia (2023-02-09). "Form D Friday: Lexington blood tech startup raises $13.2M". American City Business Journals.
  3. "The First Bluespec Workshop". csg.csail.mit.edu. Retrieved 2019-05-04.
  4. Bluespec Compiler: README.md, B-Lang, 2022-11-04, retrieved 2022-11-15
  5. "[it] is basically Haskell with some extra syntactic constructs for the term rewriting system (TRS) that describes what the hardware does. The type system has been extended with types of numeric kind." pg 43 of Hudak, Jones, et al. 2007
  6. Hudak, Jones, et al. 2007
  7. Bluespec SystemVerilog User Guide, Bluespec inc., November 24, 2008