CIRCT 23.0.0git
Loading...
Searching...
No Matches
Namespaces | Classes | Functions | Variables
circt::esi Namespace Reference

Namespaces

namespace  detail
 

Classes

class  AppIDIndex
 An index for resolving AppIDPaths to dynamic instances. More...
 
struct  BundledChannel
 
class  OperatesOnESITypes
 Trait marking an ESI op that operates on ESI types (e.g. More...
 
struct  Platform
 This should eventually become a set of functions to define the various platform-specific lowerings. More...
 
class  ServiceGeneratorDispatcher
 Class which "dispatches" a service implementation request to its specified generator. More...
 
struct  ServicePortInfo
 Describes a service port. More...
 

Functions

AppIDAttr getAppID (Operation *op)
 Get the AppID of a particular operation.
 
void registerESIPasses ()
 
LogicalResult checkInnerTypeMatch (Type expected, Type actual)
 
LogicalResult checkBundleTypeMatch (Operation *req, ChannelBundleType svcBundleType, ChannelBundleType reqBundleType, bool skipDirectionCheck)
 Check that the channels on two bundles match allowing for AnyType in the 'svc' bundle.
 
std::unique_ptr< OperationPass<> > createESIVerifyConnectionsPass ()
 
std::unique_ptr< OperationPass< ModuleOp > > createESIPhysicalLoweringPass ()
 
std::unique_ptr< OperationPass< ModuleOp > > createESIBundleLoweringPass ()
 
std::unique_ptr< OperationPass< ModuleOp > > createESIPortLoweringPass ()
 
std::unique_ptr< OperationPass< ModuleOp > > createESITypeLoweringPass ()
 
std::unique_ptr< OperationPass< ModuleOp > > createESItoHWPass ()
 
std::unique_ptr< OperationPass< ModuleOp > > createESIConnectServicesPass ()
 
std::unique_ptr< OperationPass< ModuleOp > > createESICleanMetadataPass ()
 
std::unique_ptr< OperationPass< ModuleOp > > createESIBuildManifestPass ()
 
std::unique_ptr< OperationPass< ModuleOp > > createESIAppIDHierPass ()
 
llvm::hash_code hash_value (const BundledChannel channel)
 
mlir::Type innerType (mlir::Type type)
 

Variables

constexpr uint64_t esiApiVersion = 0
 Manifest format version number.
 
constexpr StringRef extModBundleSignalsAttrName = "esi.bundle"
 Name of dialect attribute which governs whether or not to bundle (i.e.
 
constexpr StringRef extModPortFlattenStructsAttrName = "esi.portFlattenStructs"
 Name of dialect attribute which governs whether or not to flatten struct ports into a bunch of individual 'data' wires.
 
constexpr StringRef extModPortInSuffix = "esi.portInSuffix"
 Suffix all lowered input ports with this suffix. Defaults to nothing.
 
constexpr StringRef extModPortOutSuffix = "esi.portOutSuffix"
 Suffix all lowered output ports with this suffix. Defaults to nothing.
 
constexpr StringRef extModPortValidSuffix = "esi.portValidSuffix"
 Suffix lowered valid ports with this suffix.
 
constexpr StringRef extModPortReadySuffix = "esi.portReadySuffix"
 Suffix lowered ready ports with this suffix.
 
constexpr StringRef extModPortRdenSuffix = "esi.portRdenSuffix"
 Suffix lowered read enable ports with this suffix.
 
constexpr StringRef extModPortEmptySuffix = "esi.portEmptySuffix"
 Suffix lowered empty ports with this suffix.
 

Function Documentation

◆ checkBundleTypeMatch()

LogicalResult circt::esi::checkBundleTypeMatch ( Operation *  req,
ChannelBundleType  svcBundleType,
ChannelBundleType  reqBundleType,
bool  skipDirectionCheck 
)

Check that the channels on two bundles match allowing for AnyType in the 'svc' bundle.

Definition at line 524 of file ESIOps.cpp.

References checkInnerTypeMatch().

◆ checkInnerTypeMatch()

LogicalResult circt::esi::checkInnerTypeMatch ( Type  expected,
Type  actual 
)

◆ createESIAppIDHierPass()

std::unique_ptr< OperationPass< ModuleOp > > circt::esi::createESIAppIDHierPass ( )

Definition at line 87 of file ESIAppIDHier.cpp.

◆ createESIBuildManifestPass()

std::unique_ptr< OperationPass< ModuleOp > > circt::esi::createESIBuildManifestPass ( )

Definition at line 457 of file ESIBuildManifest.cpp.

◆ createESIBundleLoweringPass()

std::unique_ptr< OperationPass< ModuleOp > > circt::esi::createESIBundleLoweringPass ( )

Definition at line 235 of file ESILowerBundles.cpp.

◆ createESICleanMetadataPass()

std::unique_ptr< OperationPass< ModuleOp > > circt::esi::createESICleanMetadataPass ( )

Definition at line 45 of file ESICleanMetadata.cpp.

◆ createESIConnectServicesPass()

std::unique_ptr< OperationPass< ModuleOp > > circt::esi::createESIConnectServicesPass ( )

Definition at line 761 of file ESIServices.cpp.

◆ createESIPhysicalLoweringPass()

std::unique_ptr< OperationPass< ModuleOp > > circt::esi::createESIPhysicalLoweringPass ( )

Definition at line 377 of file ESILowerPhysical.cpp.

◆ createESIPortLoweringPass()

std::unique_ptr< OperationPass< ModuleOp > > circt::esi::createESIPortLoweringPass ( )

Definition at line 685 of file ESILowerPorts.cpp.

◆ createESItoHWPass()

std::unique_ptr< OperationPass< ModuleOp > > circt::esi::createESItoHWPass ( )

Definition at line 929 of file ESILowerToHW.cpp.

◆ createESITypeLoweringPass()

std::unique_ptr< OperationPass< ModuleOp > > circt::esi::createESITypeLoweringPass ( )

Definition at line 203 of file ESILowerTypes.cpp.

◆ createESIVerifyConnectionsPass()

std::unique_ptr< OperationPass<> > circt::esi::createESIVerifyConnectionsPass ( )

Definition at line 53 of file ESIVerifyConnections.cpp.

◆ getAppID()

AppIDAttr circt::esi::getAppID ( Operation *  op)

Get the AppID of a particular operation.

Returns null if the operation does not have one.

Definition at line 17 of file AppID.cpp.

◆ hash_value()

llvm::hash_code circt::esi::hash_value ( const BundledChannel  channel)
inline

◆ innerType()

mlir::Type circt::esi::innerType ( mlir::Type  type)

Definition at line 422 of file ESITypes.cpp.

◆ registerESIPasses()

void circt::esi::registerESIPasses ( void  )

Definition at line 265 of file ESIPasses.cpp.

References registerPasses().

Referenced by circt::registerAllPasses(), and registerESIPasses().

Variable Documentation

◆ esiApiVersion

constexpr uint64_t circt::esi::esiApiVersion = 0
constexpr

Manifest format version number.

Increment this whenever the manifest format changes. Version 0 is subject to massive, breaking changes.

Definition at line 33 of file ESIDialect.h.

◆ extModBundleSignalsAttrName

constexpr StringRef circt::esi::extModBundleSignalsAttrName = "esi.bundle"
constexpr

Name of dialect attribute which governs whether or not to bundle (i.e.

use SystemVerilog interfaces) channel signal wires on external modules.

Definition at line 39 of file ESIDialect.h.

◆ extModPortEmptySuffix

constexpr StringRef circt::esi::extModPortEmptySuffix = "esi.portEmptySuffix"
constexpr

Suffix lowered empty ports with this suffix.

Defaults to "_empty". Applies only to FIFO channels.

Definition at line 60 of file ESIDialect.h.

◆ extModPortFlattenStructsAttrName

constexpr StringRef circt::esi::extModPortFlattenStructsAttrName = "esi.portFlattenStructs"
constexpr

Name of dialect attribute which governs whether or not to flatten struct ports into a bunch of individual 'data' wires.

Definition at line 43 of file ESIDialect.h.

◆ extModPortInSuffix

constexpr StringRef circt::esi::extModPortInSuffix = "esi.portInSuffix"
constexpr

Suffix all lowered input ports with this suffix. Defaults to nothing.

Definition at line 46 of file ESIDialect.h.

◆ extModPortOutSuffix

constexpr StringRef circt::esi::extModPortOutSuffix = "esi.portOutSuffix"
constexpr

Suffix all lowered output ports with this suffix. Defaults to nothing.

Definition at line 48 of file ESIDialect.h.

◆ extModPortRdenSuffix

constexpr StringRef circt::esi::extModPortRdenSuffix = "esi.portRdenSuffix"
constexpr

Suffix lowered read enable ports with this suffix.

Defaults to "_rden". Applies only to FIFO channels.

Definition at line 57 of file ESIDialect.h.

◆ extModPortReadySuffix

constexpr StringRef circt::esi::extModPortReadySuffix = "esi.portReadySuffix"
constexpr

Suffix lowered ready ports with this suffix.

Defaults to "_ready". Applies only to ValidReady channels.

Definition at line 54 of file ESIDialect.h.

◆ extModPortValidSuffix

constexpr StringRef circt::esi::extModPortValidSuffix = "esi.portValidSuffix"
constexpr

Suffix lowered valid ports with this suffix.

Defaults to "_valid". Applies only to ValidReady channels.

Definition at line 51 of file ESIDialect.h.