CIRCT 24.0.0git
Loading...
Searching...
No Matches
circt::ImportVerilog::FlattenedIfacePort Struct Reference

Lowering information for a single signal flattened from an interface port. More...

#include <ImportVerilogInternals.h>

Collaboration diagram for circt::ImportVerilog::FlattenedIfacePort:

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

Detailed Description

Lowering information for a single signal flattened from an interface port.

Definition at line 60 of file ImportVerilogInternals.h.

Member Data Documentation

◆ arg

BlockArgument circt::ImportVerilog::FlattenedIfacePort::arg

Definition at line 65 of file ImportVerilogInternals.h.

◆ bodySym

const slang::ast::Symbol* circt::ImportVerilog::FlattenedIfacePort::bodySym

the interface body member (VariableSymbol , NetSymbol)

Definition at line 69 of file ImportVerilogInternals.h.

◆ direction

hw::ModulePort::Direction circt::ImportVerilog::FlattenedIfacePort::direction

Definition at line 62 of file ImportVerilogInternals.h.

◆ ifaceInstance

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 72 of file ImportVerilogInternals.h.

◆ inputIdx

std::optional<unsigned> circt::ImportVerilog::FlattenedIfacePort::inputIdx

Definition at line 81 of file ImportVerilogInternals.h.

◆ loc

Location circt::ImportVerilog::FlattenedIfacePort::loc

Definition at line 64 of file ImportVerilogInternals.h.

◆ modportPortSym

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 78 of file ImportVerilogInternals.h.

◆ name

StringAttr circt::ImportVerilog::FlattenedIfacePort::name

Definition at line 61 of file ImportVerilogInternals.h.

Referenced by esiaccel.types.TypeAlias::__str__().

◆ origin

const slang::ast::InterfacePortSymbol* circt::ImportVerilog::FlattenedIfacePort::origin

the origin interface port symbol this was flattened from.

Definition at line 67 of file ImportVerilogInternals.h.

◆ outputIdx

std::optional<unsigned> circt::ImportVerilog::FlattenedIfacePort::outputIdx

Slot index in the module signature; see PortLowering::outputIdx.

Definition at line 80 of file ImportVerilogInternals.h.

◆ type


The documentation for this struct was generated from the following file: