6. Customization
These guides will walk you through customization of your system-on-chip:
Constructing heterogenous systems-on-chip using the existing Chipyard generators and configuration system.
Constructing SoCs with a NoC (network-on-chip) based interconnect using Constellation
How to include your custom Chisel sources in the Chipyard build system
Adding custom core
Adding custom RoCC accelerators to an existing Chipyard core (BOOM or Rocket)
Adding custom MMIO widgets to the Chipyard memory system by Tilelink or AXI4, with custom Top-level IOs
Adding custom Dsptools based blocks as MMIO widgets.
Standard practices for using Keys, Traits, and Configs to parameterize your design
Customizing the memory hierarchy
Connect widgets which act as TileLink masters
Adding custom blackboxed Verilog to a Chipyard design
We also provide information on:
The boot process for Chipyard SoCs
Examples of FIRRTL transforms used in Chipyard, and where they are specified
We recommend reading all these pages in order. Hit next to get started!
Customization:
- 6.1. Heterogeneous SoCs
- 6.2. SoCs with NoC-based Interconnects
- 6.3. Integrating Custom Chisel Projects into the Generator Build System
- 6.4. Adding a custom core
- 6.5. RoCC vs MMIO
- 6.6. Adding a RoCC Accelerator
- 6.7. MMIO Peripherals
- 6.8. Dsptools Blocks
- 6.9. Keys, Traits, and Configs
- 6.10. Adding a DMA Device
- 6.11. Incorporating Verilog Blocks
- 6.12. Memory Hierarchy
- 6.13. Chipyard Boot Process
- 6.14. Adding a Firrtl Transform
- 6.15. IOBinders and HarnessBinders