CIRCT 22.0.0git
Loading...
Searching...
No Matches
Classes | Typedefs | Enumerations | Functions | Variables
circt::synth Namespace Reference

Classes

struct  AIGLoweringPipelineOptions
 Options for the aig lowering pipeline. More...
 
struct  AIGOptimizationPipelineOptions
 Options for the aig optimization 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  MatchedPattern
 Represents a cut that has been successfully matched to a rewriting pattern. More...
 

Typedefs

using DelayType = int64_t
 

Enumerations

enum  OptimizationStrategy { OptimizationStrategyArea , OptimizationStrategyTiming }
 Optimization strategy. More...
 

Functions

LogicalResult topologicallySortLogicNetwork (mlir::Operation *op)
 
FailureOr< BinaryTruthTablegetTruthTable (ValueRange values, Block *block)
 
void buildAIGLoweringPipeline (mlir::OpPassManager &pm, const AIGLoweringPipelineOptions &options)
 Populate the synthesis pipelines.
 
void buildAIGOptimizationPipeline (mlir::OpPassManager &pm, const AIGOptimizationPipelineOptions &options)
 
void registerSynthesisPipeline ()
 Register the synthesis pipelines.
 

Variables

static constexpr unsigned maxTruthTableInputs = 16
 Maximum number of inputs supported for truth table generation.
 

Typedef Documentation

◆ DelayType

using circt::synth::DelayType = typedef int64_t

Definition at line 36 of file CutRewriter.h.

Enumeration Type Documentation

◆ OptimizationStrategy

Optimization strategy.

Enumerator
OptimizationStrategyArea 

Optimize for minimal area.

OptimizationStrategyTiming 

Optimize for minimal critical path delay.

Definition at line 24 of file SynthPasses.h.

Function Documentation

◆ buildAIGLoweringPipeline()

void circt::synth::buildAIGLoweringPipeline ( mlir::OpPassManager &  pm,
const AIGLoweringPipelineOptions options 
)

Populate the synthesis pipelines.

Referenced by registerSynthesisPipeline().

◆ buildAIGOptimizationPipeline()

void circt::synth::buildAIGOptimizationPipeline ( mlir::OpPassManager &  pm,
const AIGOptimizationPipelineOptions options 
)

◆ getTruthTable()

FailureOr< BinaryTruthTable > circt::synth::getTruthTable ( ValueRange  values,
Block *  block 
)

Definition at line 208 of file CutRewriter.cpp.

References computeTruthTable().

Referenced by getNPNClassFromModule().

◆ registerSynthesisPipeline()

void circt::synth::registerSynthesisPipeline ( void  )

Register the synthesis pipelines.

Definition at line 99 of file SynthesisPipeline.cpp.

References buildAIGLoweringPipeline(), and buildAIGOptimizationPipeline().

Referenced by registerSynthesisPipeline().

◆ topologicallySortLogicNetwork()

LogicalResult circt::synth::topologicallySortLogicNetwork ( mlir::Operation *  op)

Variable Documentation

◆ maxTruthTableInputs

constexpr unsigned circt::synth::maxTruthTableInputs = 16
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().