|
CIRCT 22.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. | |
| Interface (IO &io) | |
| A no-argument constructor is necessary to work with LLVM's YAML library. | |
| sv::InterfaceOp | denormalize (IO &) |
| This cannot be denormalized back to an interface op. | |
Public Attributes | |
| StringRef | name |
| The name of the interface. | |
| std::vector< DescribedSignal > | fields |
| All ground or vectors that make up the interface. | |
| std::vector< DescribedInstance > | instances |
| Instantiations of other interfaces. | |
A YAML-serializable representation of an interface.
This consists of fields (vector or ground types) and nested interfaces.
Definition at line 302 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 Fields and Instances 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 338 of file GrandCentral.cpp.
|
inline |
A no-argument constructor is necessary to work with LLVM's YAML library.
Definition at line 385 of file GrandCentral.cpp.
|
inline |
This cannot be denormalized back to an interface op.
Definition at line 388 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 307 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 310 of file GrandCentral.cpp.
| StringRef llvm::yaml::MappingContextTraits< sv::InterfaceOp, Context >::Interface::name |
The name of the interface.
Definition at line 304 of file GrandCentral.cpp.