Nodes which are created outside the execution trace from the toplevel component constructor (i.
Nodes which are created outside the execution trace from the toplevel component constructor (i.e. through the () => Module(new Top()) ChiselMain argument) will have a component field set to null. For example, genMuxes, forceMatchWidths and transforms (all called from Backend.elaborate) create such nodes.
This method walks all nodes from all component roots (outputs, debugs). and reassociates the component to the node both ways (i.e. in Module.nodes and Node.component).
We assume here that all nodes at the components boundaries (io) have a non-null and correct node/component association. We further assume that nodes generated in elaborate are inputs to a node whose component field is set.
Implementation Node: At first we did implement *collectNodesIntoComp* to handle a single component at a time but that did not catch the cases where Regs are passed as input to sub-module without being tied to an output of *this.component*.
Ensures a directory *dir* exists on the filesystem.
Ensures a directory *dir* exists on the filesystem.
Prints the call stack of Component as seen by the push/pop runtime.
Prints the call stack of Component as seen by the push/pop runtime.