Skip to main content

Introduction

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.

tip

Use Scala CLI to experiment with Chisel in seconds!

For quick reference "How-To" guides see the Cookbooks.

If you like a textbook to learn Chisel and also a bit of digital design in general, you may be interested in reading Digital Design with Chisel. It is available in English, Chinese, Japanese, and Vietnamese.

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

The API Documentation gives the detailed reference for the Chisel source code.

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.