An Introduction to Chisel

Chisel (Constructing Hardware In a Scala Embedded Language) is a hardware construction language embedded in the high-level programming language Scala. Chisel is a library of special class definitions, predefined objects, and usage conventions within Scala, so when you write Chisel you are actually writing a Scala program that constructs a hardware graph. As you gain experience and want to make your code simpler or more reusable, you will find it important to leverage the underlying power of the Scala language. We recommend you consult one of the excellent Scala books to become more expert in Scala programming.

For a tutorial covering both Chisel and Scala, see the online Chisel Bootcamp.

For quick reference “How-To” guides see the Cookbooks.

For a deeper introduction to key concepts in Chisel see the Explanations.

The API Documentation gives the detailed reference for the Chisel source code. Note that previous versions can be found via the sidebar menu at [].

The Resources provides links to other useful resources for learning and working with Chisel.

The Appendix covers some more advanced topics.

The Developers section provides information for those working on the Chisel library itself.

Throughout these pages, we format commentary on our design choices as in this paragraph. You should be able to skip the commentary sections and still fully understand how to use Chisel, but we hope you’ll find them interesting.