CIRCT 22.0.0git
|
Classes | |
struct | AndInverterVariadicOpConversion |
struct | CombLoweringPipelineOptions |
Options for the aig lowering pipeline. More... | |
class | Cut |
Represents a cut in the combinational logic network. More... | |
class | CutEnumerator |
Cut enumeration engine for combinational logic networks. More... | |
struct | CutRewritePattern |
Base class for cut rewriting patterns used in combinational logic optimization. More... | |
class | CutRewritePatternSet |
Manages a collection of rewriting patterns for combinational logic optimization. More... | |
class | CutRewriter |
Main cut-based rewriting algorithm for combinational logic optimization. More... | |
struct | CutRewriterOptions |
Configuration options for the cut-based rewriting algorithm. More... | |
class | CutSet |
Manages a collection of cuts for a single logic node using priority cuts algorithm. More... | |
class | DataflowPath |
struct | DebugPoint |
class | IncrementalLongestPathAnalysis |
class | LongestPathAnalysis |
struct | LongestPathAnalysisOptions |
Configuration options for the longest path analysis. More... | |
class | LongestPathCollection |
class | MatchedPattern |
Represents a cut that has been successfully matched to a rewriting pattern. More... | |
struct | Object |
struct | OpenPath |
struct | SynthOptimizationPipelineOptions |
Options for the synth optimization pipeline. More... | |
Typedefs | |
using | DelayType = int64_t |
Enumerations | |
enum | TargetIR { AIG , MIG } |
enum | OptimizationStrategy { OptimizationStrategyArea , OptimizationStrategyTiming } |
Optimization strategy. More... | |
Functions | |
llvm::json::Value | toJSON (const circt::synth::DataflowPath &path) |
void | registerSynthAnalysisPrerequisitePasses () |
LogicalResult | topologicallySortGraphRegionBlocks (mlir::Operation *op, llvm::function_ref< bool(mlir::Value, mlir::Operation *)> isOperandReady) |
This function performs a topological sort on the operations within each block of graph regions in the given operation. | |
LogicalResult | topologicallySortLogicNetwork (mlir::Operation *op) |
FailureOr< BinaryTruthTable > | getTruthTable (ValueRange values, Block *block) |
void | buildCombLoweringPipeline (mlir::OpPassManager &pm, const CombLoweringPipelineOptions &options) |
Populate the synthesis pipelines. | |
void | buildSynthOptimizationPipeline (mlir::OpPassManager &pm, const SynthOptimizationPipelineOptions &options) |
void | registerSynthesisPipeline () |
Register the synthesis pipelines. | |
Variables | |
static constexpr unsigned | maxTruthTableInputs = 16 |
Maximum number of inputs supported for truth table generation. | |
using circt::synth::DelayType = typedef int64_t |
Definition at line 36 of file CutRewriter.h.
Optimization strategy.
Enumerator | |
---|---|
OptimizationStrategyArea | Optimize for minimal area. |
OptimizationStrategyTiming | Optimize for minimal critical path delay. |
Definition at line 24 of file SynthPasses.h.
Enumerator | |
---|---|
AIG | |
MIG |
Definition at line 28 of file SynthesisPipeline.h.
void circt::synth::buildCombLoweringPipeline | ( | mlir::OpPassManager & | pm, |
const CombLoweringPipelineOptions & | options | ||
) |
Populate the synthesis pipelines.
Referenced by registerSynthesisPipeline().
void circt::synth::buildSynthOptimizationPipeline | ( | mlir::OpPassManager & | pm, |
const SynthOptimizationPipelineOptions & | options | ||
) |
Referenced by registerSynthesisPipeline().
FailureOr< BinaryTruthTable > circt::synth::getTruthTable | ( | ValueRange | values, |
Block * | block | ||
) |
Definition at line 193 of file CutRewriter.cpp.
References computeTruthTable().
Referenced by getNPNClassFromModule().
|
inline |
Definition at line 358 of file LongestPathAnalysis.h.
void circt::synth::registerSynthesisPipeline | ( | void | ) |
Register the synthesis pipelines.
Definition at line 113 of file SynthesisPipeline.cpp.
References buildCombLoweringPipeline(), and buildSynthOptimizationPipeline().
Referenced by registerSynthesisPipeline().
llvm::json::Value circt::synth::toJSON | ( | const circt::synth::DataflowPath & | path | ) |
Definition at line 433 of file LongestPathAnalysis.cpp.
References circt::synth::DataflowPath::getEndPoint(), circt::synth::DataflowPath::getPath(), circt::synth::DataflowPath::getRoot(), and toJSON().
Referenced by toJSON(), toJSON(), toJSON(), toJSON(), and toJSON().
LogicalResult circt::synth::topologicallySortGraphRegionBlocks | ( | mlir::Operation * | op, |
llvm::function_ref< bool(mlir::Value, mlir::Operation *)> | isOperandReady | ||
) |
This function performs a topological sort on the operations within each block of graph regions in the given operation.
It uses MLIR's topological sort utility as a wrapper, ensuring that operations are ordered such that all operands are defined before their uses. The isOperandReady
callback allows customization of when an operand is considered ready for sorting.
Definition at line 307 of file SynthOps.cpp.
Referenced by topologicallySortLogicNetwork().
LogicalResult circt::synth::topologicallySortLogicNetwork | ( | mlir::Operation * | op | ) |
Definition at line 123 of file CutRewriter.cpp.
References isSupportedLogicOp(), and topologicallySortGraphRegionBlocks().
Referenced by circt::synth::CutEnumerator::enumerateCuts(), and circt::synth::CutRewriter::run().
|
staticconstexpr |
Maximum number of inputs supported for truth table generation.
This limit prevents excessive memory usage as truth table size grows exponentially with the number of inputs (2^n entries).
Definition at line 41 of file CutRewriter.h.
Referenced by computeTruthTable(), and getNPNClassFromModule().