CIRCT
20.0.0git
|
A YAML-serializable representation of an interface. More...
Public Member Functions | |
Interface (IO &io, sv::InterfaceOp &op) | |
Construct an Interface from an sv::InterfaceOp . More... | |
Interface (IO &io) | |
A no-argument constructor is necessary to work with LLVM's YAML library. More... | |
sv::InterfaceOp | denormalize (IO &) |
This cannot be denormalized back to an interface op. More... | |
Public Attributes | |
StringRef | name |
The name of the interface. More... | |
std::vector< DescribedSignal > | fields |
All ground or vectors that make up the interface. More... | |
std::vector< DescribedInstance > | instances |
Instantiations of other interfaces. More... | |
A YAML-serializable representation of an interface.
This consists of fields (vector or ground types) and nested interfaces.
Definition at line 300 of file GrandCentral.cpp.
|
inline |
Construct an Interface
from an sv::InterfaceOp
.
This is tuned to "parse" the structure of an interface that the Grand Central pass generates. The structure of Field
s and Instance
s is documented below.
A field will look like the following. The verbatim description is optional:
sv.verbatim "// <description>" { firrtl.grandcentral.yaml.type = "description", symbols = []} sv.interface.signal @<name> : <type>
An interface instanctiation will look like the following. The verbatim description is optional.
sv.verbatim "// <description>" { firrtl.grandcentral.type = "description", symbols = []} sv.verbatim "<name> <symbol>();" { firrtl.grandcentral.yaml.name = "<name>", firrtl.grandcentral.yaml.dimensions = [<first dimension>, ...], firrtl.grandcentral.yaml.symbol = @<symbol>, firrtl.grandcentral.yaml.type = "instance", symbols = []}
Definition at line 336 of file GrandCentral.cpp.
|
inline |
A no-argument constructor is necessary to work with LLVM's YAML library.
Definition at line 383 of file GrandCentral.cpp.
|
inline |
This cannot be denormalized back to an interface op.
Definition at line 386 of file GrandCentral.cpp.
std::vector<DescribedSignal> llvm::yaml::MappingContextTraits< sv::InterfaceOp, Context >::Interface::fields |
All ground or vectors that make up the interface.
Definition at line 305 of file GrandCentral.cpp.
Referenced by esiaccel.types.StructType::bit_width(), esiaccel.types.StructType::deserialize(), esiaccel.types.StructType::is_valid(), and esiaccel.types.StructType::serialize().
std::vector<DescribedInstance> llvm::yaml::MappingContextTraits< sv::InterfaceOp, Context >::Interface::instances |
Instantiations of other interfaces.
Definition at line 308 of file GrandCentral.cpp.
StringRef llvm::yaml::MappingContextTraits< sv::InterfaceOp, Context >::Interface::name |
The name of the interface.
Definition at line 302 of file GrandCentral.cpp.