Repolode
chipsalliance

chipsalliance/chisel

An open-source hardware description language embedded in Scala for writing parameterizable digital circuit generators that emit Verilog.

Stars
4,829
Forks
665
Open issues
522
Last commit
19 hours ago

What is it?

Chisel (Constructing Hardware in a Scala Embedded Language) is a hardware description language for designing digital electronics at the register-transfer level. Instead of writing Verilog by hand, designers write Scala code that builds circuits, so ordinary programming constructs like functions, classes, and loops can be used to generate hardware. The output is synthesizable Verilog or SystemVerilog, usable for both ASIC and FPGA designs.

The main idea is the circuit generator: a parameterized Scala class, such as a FIR filter defined by a list of coefficients, can be instantiated and reused across designs. The Chisel standard library (chisel3.util) provides reusable components such as FIFO queues, arbiters, and ready-valid interfaces. Chisel is powered by the FIRRTL intermediate representation and the CIRCT firtool compiler.

The project is Apache 2.0 licensed and developed under the CHIPS Alliance. The repository includes sub-projects for the core library, the compiler plugin, and an svsim simulation library that targets Verilator and VCS. Tutorials, a textbook, and a project template are linked from the docs.

Key features

  • 01Describes hardware in Scala, reusing classes, functions and loops for parameterized circuits.
  • 02Emits synthesizable Verilog or SystemVerilog through ChiselStage and firtool.
  • 03Provides a standard library with FIFO queues, arbiters and Decoupled ready-valid interfaces.
  • 04Includes svsim for running simulations on Verilator and VCS.
  • 05Builds with Mill and publishes artifacts for use with sbt projects.

Use cases

  • Writing reusable, parameterized IP blocks for ASIC or FPGA designs.
  • Building processor or accelerator designs that need generator-style code.
  • Learning digital design with a modern programming language and online tutorials.
  • Generating Verilog from Scala code for downstream synthesis and simulation flows.

Quick start

  1. 1

    Start from the Chisel Template repository, which provides a pre-configured project

  2. 2

    Or set up your own project by adding the Chisel dependency and compiler plugin to build.sbt

  3. 3

    Try the online Chisel Bootcamp tutorial in the browser, with no setup needed

Things to know

  • Requires a Scala and sbt toolchain on the JVM, which adds setup overhead.
  • Verilog generation depends on the firtool compiler, so some online playgrounds such as Scastie cannot emit Verilog.

Topics

#hardware-description-language#rtl#scala#verilog#fpga#asic#chip-design#hdl#chip-generator#chisel

FAQ

What is chisel?
An open-source hardware description language embedded in Scala for writing parameterizable digital circuit generators that emit Verilog. Chisel (Constructing Hardware in a Scala Embedded Language) is a hardware description language for designing digital electronics at the register-transfer level. Instead of writing Verilog by hand, designers write Scala code that builds circuits, so ordinary programming constructs like functions, classes, and loops can be used to generate hardware. The output is synthesizable Verilog or SystemVerilog, usable for both ASIC and FPGA designs.
Is chisel free to use? What license does it have?
chisel is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is chisel still maintained?
Actively maintained. The last commit to chisel was on Nov 6, 2026.
What can I use chisel for?
Writing reusable, parameterized IP blocks for ASIC or FPGA designs. Building processor or accelerator designs that need generator-style code. Learning digital design with a modern programming language and online tutorials. Generating Verilog from Scala code for downstream synthesis and simulation flows.
How do I install chisel?
Start from the Chisel Template repository, which provides a pre-configured project Or set up your own project by adding the Chisel dependency and compiler plugin to build.sbt Try the online Chisel Bootcamp tutorial in the browser, with no setup needed
Where can I get chisel?
The source code and installation instructions are on GitHub: https://github.com/chipsalliance/chisel

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects

Open-source high-performance RISC-V processor core written in Scala with Chisel, developed by the XiangShan project.

Other#risc-v#processor#chisel
7.4K+11 this week977ScalaMulanPSL-2.0Well maintainedUpdated 21 hours ago

A 64-bit RISC-V CPU core written in SystemVerilog that boots Linux on an Arty A7 FPGA board, with the RTL, verification and documents all written by Claude Code.

Other#risc-v#cpu#fpga
168+8 this week32SystemVerilogApache-2.0Updated 18 days ago