CIRCT 24.0.0git
Loading...
Searching...
No Matches
CompileControlVisitor Class Reference
Collaboration diagram for CompileControlVisitor:

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

Detailed Description

Definition at line 41 of file CompileControl.cpp.

Constructor & Destructor Documentation

◆ CompileControlVisitor()

CompileControlVisitor::CompileControlVisitor ( AnalysisManager am)
inline

Definition at line 43 of file CompileControl.cpp.

References am.

Member Function Documentation

◆ dispatch()

void CompileControlVisitor::dispatch ( Operation * op,
ComponentOp component )
inline

Definition at line 44 of file CompileControl.cpp.

References visit().

◆ visit() [1/2]

void CompileControlVisitor::visit ( EnableOp ,
ComponentOp &  )
inlineprivate

Definition at line 56 of file CompileControl.cpp.

◆ 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::comb::createOrFoldNot(), circt::calyx::createRegister(), and getNecessaryBitWidth().

Referenced by dispatch().

Member Data Documentation

◆ am

AnalysisManager CompileControlVisitor::am
private

Definition at line 60 of file CompileControl.cpp.

Referenced by CompileControlVisitor(), and visit().


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