|
CIRCT 23.0.0git
|
Lowering information for a single signal flattened from an interface port. More...
#include <ImportVerilogInternals.h>

Public Attributes | |
| StringAttr | name |
| hw::ModulePort::Direction | direction |
| mlir::Type | type |
| Location | loc |
| BlockArgument | arg |
| const slang::ast::InterfacePortSymbol * | origin |
| the origin interface port symbol this was flattened from. | |
| const slang::ast::Symbol * | bodySym |
| the interface body member (VariableSymbol , NetSymbol) | |
| const slang::ast::InstanceSymbol * | ifaceInstance = nullptr |
| The connected interface instance backing this port (if any). | |
| const slang::ast::Symbol * | modportPortSym = nullptr |
| For modport-typed iface ports, the ModportPortSymbol this was flattened from. | |
| std::optional< unsigned > | outputIdx |
Slot index in the module signature; see PortLowering::outputIdx. | |
| std::optional< unsigned > | inputIdx |
Lowering information for a single signal flattened from an interface port.
Definition at line 57 of file ImportVerilogInternals.h.
| BlockArgument circt::ImportVerilog::FlattenedIfacePort::arg |
Definition at line 62 of file ImportVerilogInternals.h.
| const slang::ast::Symbol* circt::ImportVerilog::FlattenedIfacePort::bodySym |
the interface body member (VariableSymbol , NetSymbol)
Definition at line 66 of file ImportVerilogInternals.h.
| hw::ModulePort::Direction circt::ImportVerilog::FlattenedIfacePort::direction |
Definition at line 59 of file ImportVerilogInternals.h.
| const slang::ast::InstanceSymbol* circt::ImportVerilog::FlattenedIfacePort::ifaceInstance = nullptr |
The connected interface instance backing this port (if any).
This enables materializing virtual interface handles from interface ports.
Definition at line 69 of file ImportVerilogInternals.h.
| std::optional<unsigned> circt::ImportVerilog::FlattenedIfacePort::inputIdx |
Definition at line 78 of file ImportVerilogInternals.h.
| Location circt::ImportVerilog::FlattenedIfacePort::loc |
Definition at line 61 of file ImportVerilogInternals.h.
| const slang::ast::Symbol* circt::ImportVerilog::FlattenedIfacePort::modportPortSym = nullptr |
For modport-typed iface ports, the ModportPortSymbol this was flattened from.
Slang resolves in-body accesses like bus.member to a HierarchicalValueExpression whose symbol is the ModportPortSymbol, not the underlying interface body variable, so we register both keys in valueSymbols to make the lookup find this port's BlockArgument.
Definition at line 75 of file ImportVerilogInternals.h.
| StringAttr circt::ImportVerilog::FlattenedIfacePort::name |
Definition at line 58 of file ImportVerilogInternals.h.
Referenced by esiaccel.types.TypeAlias::__str__().
| const slang::ast::InterfacePortSymbol* circt::ImportVerilog::FlattenedIfacePort::origin |
the origin interface port symbol this was flattened from.
Definition at line 64 of file ImportVerilogInternals.h.
| std::optional<unsigned> circt::ImportVerilog::FlattenedIfacePort::outputIdx |
Slot index in the module signature; see PortLowering::outputIdx.
Definition at line 77 of file ImportVerilogInternals.h.
| mlir::Type circt::ImportVerilog::FlattenedIfacePort::type |
Definition at line 60 of file ImportVerilogInternals.h.
Referenced by esiaccel.types.WritePort::__serialize_msg(), hw.HWModuleOp::add_entry_block(), esiaccel.types.Port::connect(), hw.HWModuleOp::input_indices(), fsm.MachineOp::instantiate(), hw.HWModuleOp::outputs(), and esiaccel.types.ReadPort::read().