CIRCT 24.0.0git
Loading...
Searching...
No Matches
circt::esi::detail::ESIHWBuilder Class Reference

Assist the lowering steps for conversions which need to create auxiliary IR. More...

#include <PassDetails.h>

Inheritance diagram for circt::esi::detail::ESIHWBuilder:
Collaboration diagram for circt::esi::detail::ESIHWBuilder:

Public Member Functions

 ESIHWBuilder (Operation *top)
ArrayAttr getStageParameterList (Attribute widthValue, Attribute dataDelayValue)
 Get the parameter list for the stage module.
hw::HWModuleExternOp declareStage (Operation *symTable, PipelineStageOp)
 Write an 'ExternModuleOp' to use a hand-coded SystemVerilog module.
hw::HWModuleExternOp declareCosimEndpointToHostModule (Operation *symTable)
 Write an 'ExternModuleOp' to use a hand-coded SystemVerilog module.
hw::HWModuleExternOp declareCosimEndpointFromHostModule (Operation *symTable)

Public Attributes

const StringAttr a
const StringAttr aValid
const StringAttr aReady
const StringAttr x
const StringAttr xValid
const StringAttr xReady
const StringAttr dataOutValid
const StringAttr dataOutReady
const StringAttr dataOut
const StringAttr dataInValid
const StringAttr dataInReady
const StringAttr dataIn
const StringAttr clk
const StringAttr rst
const StringAttr width
const StringAttr dataDelay

Private Member Functions

Type getClockType ()

Private Attributes

std::optional< hw::HWModuleExternOp > declaredCosimEndpointToHostModule
std::optional< hw::HWModuleExternOp > declaredCosimEndpointFromHostModule
llvm::DenseMap< Type, hw::HWModuleExternOp > declaredStage

Detailed Description

Assist the lowering steps for conversions which need to create auxiliary IR.

Definition at line 56 of file PassDetails.h.

Constructor & Destructor Documentation

◆ ESIHWBuilder()

ESIHWBuilder::ESIHWBuilder ( Operation * top)

Member Function Documentation

◆ declareCosimEndpointFromHostModule()

HWModuleExternOp ESIHWBuilder::declareCosimEndpointFromHostModule ( Operation * symTable)

◆ declareCosimEndpointToHostModule()

HWModuleExternOp ESIHWBuilder::declareCosimEndpointToHostModule ( Operation * symTable)

Write an 'ExternModuleOp' to use a hand-coded SystemVerilog module.

Said module contains a bi-directional Cosimulation DPI interface with valid/ready semantics.

Definition at line 147 of file ESIPasses.cpp.

References clk, constructUniqueSymbol(), dataIn, dataInReady, dataInValid, declaredCosimEndpointToHostModule, getClockType(), circt::hw::ModulePort::Input, circt::hw::ModulePort::Output, and rst.

◆ declareStage()

HWModuleExternOp ESIHWBuilder::declareStage ( Operation * symTable,
PipelineStageOp stage )

Write an 'ExternModuleOp' to use a hand-coded SystemVerilog module.

Said module implements pipeline stage, adding 1 cycle latency. This particular implementation is double-buffered and fully pipelines the reverse-flow ready signal.

Definition at line 108 of file ESIPasses.cpp.

References a, aReady, aValid, clk, constructUniqueSymbol(), declaredStage, getClockType(), getStageParameterList(), circt::hw::ModulePort::Input, circt::hw::ModulePort::Output, rst, x, xReady, and xValid.

◆ getClockType()

Type ESIHWBuilder::getClockType ( )
private

◆ getStageParameterList()

ArrayAttr ESIHWBuilder::getStageParameterList ( Attribute widthValue,
Attribute dataDelayValue )

Get the parameter list for the stage module.

Return a parameter list for the stage module with the specified values.

Values may be null for the declaration.

Definition at line 94 of file ESIPasses.cpp.

References width.

Referenced by declareStage().

Member Data Documentation

◆ a

const StringAttr circt::esi::detail::ESIHWBuilder::a

Definition at line 70 of file PassDetails.h.

Referenced by declareStage(), and ESIHWBuilder().

◆ aReady

const StringAttr circt::esi::detail::ESIHWBuilder::aReady

Definition at line 70 of file PassDetails.h.

Referenced by declareStage(), and ESIHWBuilder().

◆ aValid

const StringAttr circt::esi::detail::ESIHWBuilder::aValid

Definition at line 70 of file PassDetails.h.

Referenced by declareStage(), and ESIHWBuilder().

◆ clk

const StringAttr circt::esi::detail::ESIHWBuilder::clk

◆ dataDelay

const StringAttr circt::esi::detail::ESIHWBuilder::dataDelay

Definition at line 74 of file PassDetails.h.

Referenced by ESIHWBuilder().

◆ dataIn

const StringAttr circt::esi::detail::ESIHWBuilder::dataIn

Definition at line 72 of file PassDetails.h.

Referenced by declareCosimEndpointToHostModule(), and ESIHWBuilder().

◆ dataInReady

const StringAttr circt::esi::detail::ESIHWBuilder::dataInReady

Definition at line 72 of file PassDetails.h.

Referenced by declareCosimEndpointToHostModule(), and ESIHWBuilder().

◆ dataInValid

const StringAttr circt::esi::detail::ESIHWBuilder::dataInValid

Definition at line 71 of file PassDetails.h.

Referenced by declareCosimEndpointToHostModule(), and ESIHWBuilder().

◆ dataOut

const StringAttr circt::esi::detail::ESIHWBuilder::dataOut

Definition at line 71 of file PassDetails.h.

Referenced by declareCosimEndpointFromHostModule(), and ESIHWBuilder().

◆ dataOutReady

const StringAttr circt::esi::detail::ESIHWBuilder::dataOutReady

Definition at line 71 of file PassDetails.h.

Referenced by declareCosimEndpointFromHostModule(), and ESIHWBuilder().

◆ dataOutValid

const StringAttr circt::esi::detail::ESIHWBuilder::dataOutValid

Definition at line 71 of file PassDetails.h.

Referenced by declareCosimEndpointFromHostModule(), and ESIHWBuilder().

◆ declaredCosimEndpointFromHostModule

std::optional<hw::HWModuleExternOp> circt::esi::detail::ESIHWBuilder::declaredCosimEndpointFromHostModule
private

Definition at line 80 of file PassDetails.h.

Referenced by declareCosimEndpointFromHostModule().

◆ declaredCosimEndpointToHostModule

std::optional<hw::HWModuleExternOp> circt::esi::detail::ESIHWBuilder::declaredCosimEndpointToHostModule
private

Definition at line 79 of file PassDetails.h.

Referenced by declareCosimEndpointToHostModule().

◆ declaredStage

llvm::DenseMap<Type, hw::HWModuleExternOp> circt::esi::detail::ESIHWBuilder::declaredStage
private

Definition at line 81 of file PassDetails.h.

Referenced by declareStage().

◆ rst

const StringAttr circt::esi::detail::ESIHWBuilder::rst

◆ width

const StringAttr circt::esi::detail::ESIHWBuilder::width

◆ x

const StringAttr circt::esi::detail::ESIHWBuilder::x

Definition at line 70 of file PassDetails.h.

Referenced by declareStage(), and ESIHWBuilder().

◆ xReady

const StringAttr circt::esi::detail::ESIHWBuilder::xReady

Definition at line 70 of file PassDetails.h.

Referenced by declareStage(), and ESIHWBuilder().

◆ xValid

const StringAttr circt::esi::detail::ESIHWBuilder::xValid

Definition at line 70 of file PassDetails.h.

Referenced by declareStage(), and ESIHWBuilder().


The documentation for this class was generated from the following files: