CIRCT 23.0.0git
Loading...
Searching...
No Matches
Public Attributes | List of all members
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:
Collaboration graph
[legend]

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.
 

Detailed Description

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

Definition at line 52 of file ImportVerilogInternals.h.

Member Data Documentation

◆ arg

BlockArgument circt::ImportVerilog::FlattenedIfacePort::arg

Definition at line 57 of file ImportVerilogInternals.h.

◆ bodySym

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

the interface body member (VariableSymbol , NetSymbol)

Definition at line 61 of file ImportVerilogInternals.h.

◆ direction

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

Definition at line 54 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 64 of file ImportVerilogInternals.h.

◆ loc

Location circt::ImportVerilog::FlattenedIfacePort::loc

Definition at line 56 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 70 of file ImportVerilogInternals.h.

◆ name

StringAttr circt::ImportVerilog::FlattenedIfacePort::name

Definition at line 53 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 59 of file ImportVerilogInternals.h.

◆ type

mlir::Type circt::ImportVerilog::FlattenedIfacePort::type

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