|
CIRCT 24.0.0git
|
A reference to a clock/enable value that can also name values which do not exist yet (a planned port, a planned wire). More...

Public Types | |
| enum class | Kind { None , Direct , InstResult , ModuleArg , PlannedWire , GateEnable } |
Public Member Functions | |
| MatRef ()=default | |
| Kind | getKind () const |
| Value | getValue () const |
| unsigned | getIndex () const |
| Operation * | getOp () const |
| ClockGateIntrinsicOp | gate () const |
| void | print (llvm::raw_ostream &os) const |
Static Public Member Functions | |
| static MatRef | direct (Value v) |
| static MatRef | instResult (FInstanceLike inst, unsigned index) |
| static MatRef | moduleArg (FModuleOp mod, unsigned index) |
| static MatRef | plannedWire (unsigned index) |
| static MatRef | gateEnable (ClockGateIntrinsicOp gate) |
| static MatRef | of (Value v) |
| Instance results become symbolic refs, every other value is stable. | |
Static Private Member Functions | |
| static MatRef | opRef (Kind kind, Operation *op, unsigned index) |
Private Attributes | |
| Kind | kind = Kind::None |
| Value | value |
Direct only. | |
| Operation * | op = nullptr |
| Instance / module / gate, by kind. | |
| unsigned | index = 0 |
| Result, argument or wire index. | |
A reference to a clock/enable value that can also name values which do not exist yet (a planned port, a planned wire).
Inserting a port re-creates every instance of a module, so instance results are the only values applyPlan() invalidates. Hence the rule this class enforces: name them symbolically as (instance, resultIndex), never raw.
Definition at line 73 of file GatedClockConversion.h.
|
strong |
| Enumerator | |
|---|---|
| None | Null reference, e.g. "no enable". |
| Direct | A |
| InstResult | Result index of an instance (existing or planned port). |
| ModuleArg | Block argument index of a module (existing or planned). |
| PlannedWire | Entry index of |
| GateEnable |
|
Definition at line 75 of file GatedClockConversion.h.
|
default |
Referenced by of().
|
inlinestatic |
|
inline |
Definition at line 121 of file GatedClockConversion.h.
References op.
Referenced by gateEnable(), and circt::firrtl::GatedClockConversion::resolve().
|
inlinestatic |
Definition at line 104 of file GatedClockConversion.h.
References gate(), GateEnable, and opRef().
Referenced by circt::firrtl::GatedClockConversion::planGate().
|
inline |
Definition at line 119 of file GatedClockConversion.h.
References index.
Referenced by circt::firrtl::GatedClockConversion::resolve().
|
inline |
Definition at line 117 of file GatedClockConversion.h.
References kind.
Referenced by circt::firrtl::GatedClockConversion::resolve().
|
inline |
Definition at line 120 of file GatedClockConversion.h.
References op.
Referenced by circt::firrtl::GatedClockConversion::resolve().
|
inline |
Definition at line 118 of file GatedClockConversion.h.
References value.
Referenced by circt::firrtl::GatedClockConversion::resolve().
|
inlinestatic |
Definition at line 95 of file GatedClockConversion.h.
References index, InstResult, and opRef().
Referenced by of(), and circt::firrtl::GatedClockConversion::planInstancePort().
|
inlinestatic |
Definition at line 98 of file GatedClockConversion.h.
References index, ModuleArg, and opRef().
Referenced by circt::firrtl::GatedClockConversion::planInstancePort().
|
inlinestatic |
Instance results become symbolic refs, every other value is stable.
Definition at line 109 of file GatedClockConversion.h.
References direct(), instResult(), and MatRef().
Referenced by circt::firrtl::GatedClockConversion::plan(), circt::firrtl::GatedClockConversion::planGate(), and circt::firrtl::GatedClockConversion::planInstancePort().
|
inlinestaticprivate |
Definition at line 126 of file GatedClockConversion.h.
References index, kind, and op.
Referenced by gateEnable(), instResult(), moduleArg(), and plannedWire().
|
inlinestatic |
Definition at line 101 of file GatedClockConversion.h.
References index, opRef(), and PlannedWire.
Referenced by circt::firrtl::GatedClockConversion::planAlias().
| void GatedClockConversion::MatRef::print | ( | llvm::raw_ostream & | os | ) | const |
Definition at line 96 of file GatedClockConversion.cpp.
References Direct, GateEnable, index, InstResult, kind, ModuleArg, None, op, PlannedWire, and value.
|
private |
Result, argument or wire index.
Definition at line 137 of file GatedClockConversion.h.
Referenced by getIndex(), instResult(), moduleArg(), opRef(), plannedWire(), and print().
|
private |
|
private |
|
private |
Direct only.
Definition at line 135 of file GatedClockConversion.h.
Referenced by direct(), getValue(), synth.Object::is_output_port(), print(), and Python.support.OpOperand::type().