Skip to content

MatX-inc/bsc

This branch is 46 commits ahead of, 12 commits behind B-Lang-org/bsc:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3f257ff · Dec 19, 2024
Dec 19, 2024
Feb 28, 2020
Sep 3, 2024
Jul 14, 2023
Aug 20, 2024
Dec 19, 2024
Dec 19, 2024
Aug 11, 2024
Oct 27, 2020
Feb 7, 2020
Jun 18, 2022
Feb 11, 2020
Feb 29, 2020
Aug 18, 2021
Dec 17, 2024
Apr 20, 2020
Oct 29, 2021
Dec 30, 2023
Feb 5, 2020
Dec 17, 2024
Oct 29, 2021
May 28, 2024

Repository files navigation

Bluespec Compiler

Version License Build Status

CommunityDownloadDocumentationBuildTestDevelop


Compiler, simulator, and tools for the Bluespec Hardware Description Language. Bluespec is a single language for digital electronic hardware designs that comes in two syntactic flavors, which are interchangeable:

  • Bluespec SystemVerilog (BSV)
  • Bluespec Haskell (BH, or "Bluespec Classic")

Bluespec is a high-level hardware description language. It has a variety of advanced features including a powerful type system that can prevent errors prior to synthesis time, and its most distinguishing feature, Guarded Atomic Actions, allow you to define hardware components in a modular manner based on their invariants, and let the compiler pick a scheduler.

The toolchain was under development by Bluespec Inc for almost 20 years, and has been proven repeatedly in production designs like Flute, Piccolo, and Shakti.

The Bluespec compiler bsc emits standard Verilog for maximum compatibility with any synthesis toolchain and comes with an included simulator ("bluesim"), standard library, and TCL scripting support ("bluetcl").

The repository is still evolving. We welcome your feedback, issue reports, and pull requests.

A separate repository, bsc-contrib, exists for sharing libraries and utilities that don't (or don't yet) belong in the core tools.

A graphical environment for using BSC is available in a separate bdw repository. BDW (the BSC Development Workstation) provides a number of tools, including the ability to view simulation waveforms as source-level values.


Community

To receive announcements about BSC and related projects, subscribe to b-lang-announce@groups.io.

For questions and discussion about BSC source, subscribe to the developers' mailing list bsc-dev@groups.io.

For any questions or discussion about Bluespec HDLs, using BSC, or related projects, subscribe to b-lang-discuss@groups.io.

IRC users might try joining the #bluespec channel on Libera.Chat.

There's also a bluespec tag on StackOverflow.

And we've enabled the Discussions tab in this GitHub repo. This is a new feature to support discussion within the project itself. Feel free to give it a try and see if it can be useful to our community.


Download

For the following systems, the Bluespec toolchain is available as a package that can be installed with the standard package manager:

You can also use the Repology search engine to check for Bluespec packages for your system.

If a package exists for your system, we recommend installing that. Otherwise, a tar-archive may be available for download from our Releases page. Install instructions can be found inside the tar-file.

If a pre-built tar-file does not exist for your system, you will need to compile BSC from source.


Documentation

More details on using BSC, Bluesim, and Bluetcl can be found in the BSC User Guide.

The standard libraries that come with BSC are documented in the BSC Libraries Reference Guide.

For the specification of the Bluespec language, see the BSV Language Reference Guide and the BH (Bluespec Haskell/Classic) Language Reference Guide.

The sources for these documents are found in the doc directory of this repo. Pre-built PDF files can also be downloaded from the Releases page.

Training and tutorials can be found in the BSVLang repository.

New users may also find this Intro Guide and Quick Reference useful.


License

The Bluespec toolchain is provided by Bluespec Inc and available under the BSD-3-Clause license. The source code also includes several other components under various license agreements (all of it open/copyleft software). See COPYING for copyright and license details.

About

Bluespec Compiler (BSC)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Haskell 59.2%
  • Bluespec 16.1%
  • Emacs Lisp 12.8%
  • C++ 5.0%
  • Verilog 3.4%
  • Shell 1.0%
  • Other 2.5%