Yup, this makes a lot of sense. I can see what you are referring to throughout the Chisel.
As for the startup procedure, I was leaning towards an interrupt based system since my base chip controls the actions of the rest, so
a cascading interrupt scheme seemed to be a decent solution, but I'll see once I implement it.
As a final note, when it comes to exposing memories between chiplets, does the manager node normally reflect what is on the other side
of the serial link?
For example, the RocketCoreChipletConfig (
https://github.com/ucb-bar/chipyard/blob/main/generators/chipyard/src/main/scala/config/ChipletConfigs.scala#L50-L86)
has 2 serial ports. The second one is defined as a manager which makes me think the RocketCoreChipletConfig should have a slave connected to a memory. Instead, it seems to indicate the second serial port will connect to the LLCChipletConfig which is the memory.
Its as if a manager node in a SerialTLParams definition is indicative on what is on the other side of the link?
Thanks!
Tim H