CIRCT  20.0.0git
Namespaces | Classes | Functions | Variables
circt::esi Namespace Reference

Namespaces

 detail
 

Classes

class  AppIDIndex
 An index for resolving AppIDPaths to dynamic instances. More...
 
struct  ServicePortInfo
 Describes a service port. 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  BundledChannel
 

Functions

AppIDAttr getAppID (Operation *op)
 Get the AppID of a particular operation. More...
 
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. More...
 
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. More...
 
constexpr StringRef extModBundleSignalsAttrName = "esi.bundle"
 Name of dialect attribute which governs whether or not to bundle (i.e. More...
 
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. More...
 
constexpr StringRef extModPortInSuffix = "esi.portInSuffix"
 Suffix all lowered input ports with this suffix. Defaults to nothing. More...
 
constexpr StringRef extModPortOutSuffix = "esi.portOutSuffix"
 Suffix all lowered output ports with this suffix. Defaults to nothing. More...
 
constexpr StringRef extModPortValidSuffix = "esi.portValidSuffix"
 Suffix lowered valid ports with this suffix. More...
 
constexpr StringRef extModPortReadySuffix = "esi.portReadySuffix"
 Suffix lowered ready ports with this suffix. More...
 
constexpr StringRef extModPortRdenSuffix = "esi.portRdenSuffix"
 Suffix lowered read enable ports with this suffix. More...
 
constexpr StringRef extModPortEmptySuffix = "esi.portEmptySuffix"
 Suffix lowered empty ports with this suffix. More...
 

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 486 of file ESIOps.cpp.

References checkInnerTypeMatch().

◆ checkInnerTypeMatch()

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

Definition at line 393 of file ESIOps.cpp.

Referenced by checkBundleTypeMatch().

◆ 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 421 of file ESIBuildManifest.cpp.

◆ createESIBundleLoweringPass()

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

Definition at line 234 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 682 of file ESIServices.cpp.

◆ createESIPhysicalLoweringPass()

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

Definition at line 297 of file ESILowerPhysical.cpp.

◆ createESIPortLoweringPass()

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

Definition at line 588 of file ESILowerPorts.cpp.

◆ createESItoHWPass()

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

Definition at line 710 of file ESILowerToHW.cpp.

◆ createESITypeLoweringPass()

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

Definition at line 109 of file ESILowerTypes.cpp.

◆ createESIVerifyConnectionsPass()

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

Definition at line 57 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)

◆ registerESIPasses()

void circt::esi::registerESIPasses ( void  )

Definition at line 262 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.