This repository provides lab material for the Digital Electronics course (02139) at DTU. Although this lab is customized for the DTU course, it can also serve as introduction lab for digital design with Chisel.
The lab is based on: Digital Design with Chisel, first edition, by Martin Schoeberl.
To use this material you can: (1) download the repo as a .zip file, (2) clone the repo to have all material offline (using it also for your solutions), (3) fork the repo (and clone locally), to be able to contribute back with changes, or (4) simply just browse it online on GitHub.
Best is to have all the tools installed on your laptop. See: Setup.md
We collect frequently asked questions in the FAQ.md.
Contributions: We are happily accepting contributions in the form of pull requests. Even the fix of a small typo is appreciated.
The following list gives an overview of all lab sessions and assignments. For lab sessions where no link is given, we will provide the material in DTU Inside. For the Vending Machine related labs (week 5, 6, 8, 9, 10, and 12) please read the Vending Machine Specification.
- Lab 1: Hello World in Chisel
- Lab 2: Combinational Circuits in Chisel
- Lab 3: Components and Small Sequential Circuits
- Lab 4: Seven Segment Decoder
- Lab 5: Paper and pencil on timing
- Lab 6: Test Drive the Seven-Segment Display
- Lab 7: Paper and pencil on FSM
- Lab 8: Multiplexed Seven-Segment Display
- Lab 9: Multiplexed Seven-Segment Display (Continuation)
- Lab 10, 12: The Vending Machine
- Lab 11: A Simple Tester
- Basys3_Master.xdc constraint file for pin definition and clock
- IntelliJ for Scala
- Vivado WebPACK
- Setup.md installation instructions
- The Chisel Jupyter Notebooks An online introduction to the Scala language and Chisel.
- The Chisel Cookbook Large FAQ and introduction to Chisel
- Basys 3