-
Notifications
You must be signed in to change notification settings - Fork 17
Adding an MMIO Peripheral
apaj edited this page Dec 24, 2021
·
9 revisions
To make sense from this tutorial, familiarity with the following is required:
- basic understanding of the Chisel language - we advise you take the Learning Journey, that will bring you up to speed very quickly
- working installation of chipyard. While this should work with newer versions of
chipyard
, possibly with adaptations in the outer (in relation to the widget) configurations, we recommend you stick with the version ofchipyard
we’ve branched off a while back – it may be found at Intensivate’s public repository under the name p-chipyard - we provide detailed instructions on how to get it going here. - while waiting for
p-chipyard
to set up (it will take a while), read the Introduction to Cake Pattern
Once p-chipyard
is confirmed to be running successfully by all three tests (explained in the prerequisite number 2), come back to this tutorial. We start by proposing a project task and then we take small steps towards providing a solution, one per each section listed below.
- Project Task
- Parameters and Keys
-
IO ports - a
Bundle
and atrait
- Chisel Module (the actual circuit)
- Memory Mapping
- Enabling TileLink
- Cake Pattern
- Mix in the MMIO Peripheral
- Verification <== TBD (show de-assembled code and discuss)
- Final Remarks <== TBD (show what's wrapped into what, the onion diagram and ask that input port is added and an incrementor circuit is made)