rocket-chip icon indicating copy to clipboard operation
rocket-chip copied to clipboard

What is the purpose of mixO and mixI

Open DecodeTheEncoded opened this issue 5 years ago • 1 comments

I felt like this is confusing. Taking the mixO as an example, we have a sequence of DO corresponding to the oPorts, but for each DO of the oPorts, we invoke the mixO for that DO. The mixO method is defined inside OutwardNodeImp, and the comments just indicates: Defines how outward parameters can be "mixed" or negotiated together. https://github.com/chipsalliance/rocket-chip/blob/46c88b71056581a6bf2a0c4febd5ec3d768c6c59/src/main/scala/diplomacy/Nodes.scala#L1166 I felt this is hard to grasp, can anyone clarify this for me? what is the specific usage of the mixO and mixI. What dees they do? @hcook @sequencer @richardxia

DecodeTheEncoded avatar Feb 06 '21 04:02 DecodeTheEncoded

I think the best way to understand that would be to look at the concrete Nodes which define mixO, and mixI. All the examples in this repo just add to the "node path" part of the parameters to help track the path that masters <-> slaves go through for each connection, in theory you could add other metadata or do anything you want in the diplomacy subclasses.

mwachs5 avatar Feb 06 '21 04:02 mwachs5