Skip to content

Cake Pattern Figs ToC

apaj edited this page Dec 17, 2021 · 2 revisions

Cake Pattern in Rocket-chip

Motivation

Rocket-chip and Chisel and TileLink were created together at UC Berkeley.

It is research code. As such, there was not much experience on the team, especially on consequences in large software projects (nor backend, nor team dynamics, nor logistics).

As a result, TileLink, which is a network-on-chip protocol is intimately intertwined with Rocket-chip and Diplomacy. They cannot be separated. In order to use any TileLink Chisel code, you must have the entire Rocket-chip code base.

When learning about TileLink, the examples often necessarily include complicating factors that have nothing to do with the basic concept. These complicating factors are tied in because TileLink examples cannot be run without the entire Rocket-chip infrastructure, and that infrastructure has advanced needs that caused extra stuff, which are then in turn part of the simple examples.

In the following pages we provide Cake Pattern examples and explanations based on practical experiences collected over the years working with the Rocket-chip codebase.

Table of contents:

  1. Lazy Modules
  2. Outer and Inner
  3. Traits
  4. RocketTile
  5. Documenting Code
  6. Mixin map
  7. Map of instantiations
Clone this wiki locally