Skip to content
apaj edited this page Dec 17, 2021 · 1 revision

Previous ToC Next


Documenting code

The most important thing is there RocketTile is split into two pieces... One piece is basically a placeholder - "class RocketTile" all it does is collect all the pieces that go inside the tile... the bookkeeping part.

And then there's "class RocketTileModule" which is an actual instance that has concrete bundles that connect to other things. This two piece thing is the "Lazy Module" pattern.. It's done so that the actual bundles that are the interface to the circuit can be calculated at runtime. The interface to RocketTile is not known when the code is written. The Diplomacy stuff is what calculates the interface and generates the bundles, which are inserted into RocketTileModule.

Then.. there's a third piece.. :-)

The RocketTile is actually wrapped inside yet another kind of RocketTile!

The outer layer is where the TileLink connections are made. So, there are two flavors of outer wrapper -- Synchronous and Asynchronous. The exact type used is chosen at runtime, according to the parameters. So that is what this document is trying to depict.


Previous ToC Top of page Next

Clone this wiki locally