|
void | visit (SeqOp seqOp, ComponentOp &component) |
| Generates a latency-insensitive FSM to realize a sequential operation.
|
|
void | visit (EnableOp, ComponentOp &) |
|
Definition at line 41 of file CompileControl.cpp.
◆ CompileControlVisitor()
CompileControlVisitor::CompileControlVisitor |
( |
AnalysisManager |
am | ) |
|
|
inline |
◆ dispatch()
void CompileControlVisitor::dispatch |
( |
Operation * |
op, |
|
|
ComponentOp |
component |
|
) |
| |
|
inline |
◆ visit() [1/2]
void CompileControlVisitor::visit |
( |
EnableOp |
, |
|
|
ComponentOp & |
|
|
) |
| |
|
inlineprivate |
◆ visit() [2/2]
void CompileControlVisitor::visit |
( |
SeqOp |
seq, |
|
|
ComponentOp & |
component |
|
) |
| |
|
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::calyx::createRegister(), and getNecessaryBitWidth().
Referenced by dispatch().
◆ am
AnalysisManager CompileControlVisitor::am |
|
private |
The documentation for this class was generated from the following file:
- /home/runner/work/circt-www/circt-www/circt_src/lib/Dialect/Calyx/Transforms/CompileControl.cpp