Add Public trait to create public FIRRTL modules (#3813)
Add a new trait, `Public`, which can be used to emit FIRRTL modules which have the public keyword. This is a weak form of "public modules" that we want to support for FIRRTL 4.0.0. This does not allow for multiple, disjoint instance graphs to be contained in a circuit, nor does it remove the "main module" from the circuit. However, it provides a mechanism for plucking modules out of a circuit later and working with them. This is self-typed on `RawModule` to prevent mix-in to an external module. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@sifive.com> Co-authored-by:
Jack Koenig <koenig@sifive.com>
parent
cba31581