[Feature] Add Interface, ConformsTo for Separate Compilation (#3199)
Migrate work from seldridge/chisel-separable on separate compilation
into upstream Chisel. This defines an Interface and a Conformance. An
Interface is a Singleton Object that maps to a FIRRTL external module
with pre-defined IO. A Conformance is a type-class whose
implementations define how a Chisel module aligns itself to the
Interface. Used together, these enable separate compilation of a client
that uses an Interface from a component that implements the Interface.
Signed-off-by:
Schuyler Eldridge <schuyler.eldridge@sifive.com>
parent
2c6028b0