|
CIRCT 24.0.0git
|

Public Member Functions | |
| CompileControlVisitor (AnalysisManager am) | |
| void | dispatch (Operation *op, ComponentOp component) |
Private Member Functions | |
| void | visit (SeqOp seqOp, ComponentOp &component) |
| Generates a latency-insensitive FSM to realize a sequential operation. | |
| void | visit (EnableOp, ComponentOp &) |
Private Attributes | |
| AnalysisManager | am |
Definition at line 41 of file CompileControl.cpp.
|
inline |
Definition at line 43 of file CompileControl.cpp.
References am.
|
inline |
Definition at line 44 of file CompileControl.cpp.
References visit().
|
inlineprivate |
Definition at line 56 of file CompileControl.cpp.
|
private |
Generates a latency-insensitive FSM to realize a sequential operation.
This is done by initializing GroupGoOp values for the enabled groups in the SeqOp, and then creating a new Seq GroupOp with the given FSM. Each step in the FSM is guarded by the done operation of the group currently being executed. After the group is complete, the FSM is incremented. This SeqOp is then replaced in the control with an Enable statement referring to the new Seq GroupOp.
Definition at line 70 of file CompileControl.cpp.
References am, assert(), circt::calyx::createConstant(), circt::comb::createOrFoldNot(), circt::calyx::createRegister(), and getNecessaryBitWidth().
Referenced by dispatch().
|
private |
Definition at line 60 of file CompileControl.cpp.
Referenced by CompileControlVisitor(), and visit().