CIRCT 22.0.0git
|
#include <DatapathOps.h>
Public Member Functions | |
CompressorTree (size_t width, const SmallVector< SmallVector< Value > > &addends, Location loc) | |
size_t | getWidth () const |
size_t | getMaxHeight () const |
size_t | getNextStageTargetHeight () const |
LogicalResult | withInputDelays (llvm::function_ref< FailureOr< int64_t >(Value)> getDelay) |
SmallVector< Value > | compressToHeight (OpBuilder &builder, size_t targetHeight) |
void | dump () const |
Private Member Functions | |
SmallVector< Value > | columnsToAddends (OpBuilder &builder, size_t targetHeight) |
SmallVector< Value > | compressUsingTiming (OpBuilder &builder, size_t targetHeight) |
std::pair< CompressorBit, CompressorBit > | fullAdderWithDelay (OpBuilder &builder, CompressorBit a, CompressorBit b, CompressorBit c) |
std::pair< CompressorBit, CompressorBit > | halfAdderWithDelay (OpBuilder &builder, CompressorBit a, CompressorBit b) |
Private Attributes | |
SmallVector< SmallVector< CompressorBit > > | columns |
const size_t | width |
size_t | numStages |
size_t | numFullAdders |
Location | loc |
Definition at line 31 of file DatapathOps.h.
CompressorTree::CompressorTree | ( | size_t | width, |
const SmallVector< SmallVector< Value > > & | addends, | ||
Location | loc | ||
) |
Definition at line 115 of file DatapathOps.cpp.
References assert(), columns, circt::comb::computeKnownBits(), circt::datapath::CompressorBit::val, and width.
|
private |
Definition at line 175 of file DatapathOps.cpp.
References columns, hw.ConstantOp::create(), getMaxHeight(), loc, and width.
Referenced by compressToHeight(), and compressUsingTiming().
SmallVector< Value > CompressorTree::compressToHeight | ( | OpBuilder & | builder, |
size_t | targetHeight | ||
) |
Definition at line 202 of file DatapathOps.cpp.
References columnsToAddends(), compressUsingTiming(), and getMaxHeight().
|
private |
Definition at line 218 of file DatapathOps.cpp.
References columns, columnsToAddends(), dump(), fullAdderWithDelay(), getMaxHeight(), getNextStageTargetHeight(), halfAdderWithDelay(), numStages, and width.
Referenced by compressToHeight().
void CompressorTree::dump | ( | ) | const |
Definition at line 298 of file DatapathOps.cpp.
References columns, getMaxHeight(), getNextStageTargetHeight(), numFullAdders, numStages, and width.
Referenced by compressUsingTiming().
|
private |
Definition at line 75 of file DatapathOps.cpp.
References circt::datapath::CompressorBit::delay, loc, numFullAdders, and circt::datapath::CompressorBit::val.
Referenced by compressUsingTiming().
size_t CompressorTree::getMaxHeight | ( | ) | const |
Definition at line 153 of file DatapathOps.cpp.
References columns.
Referenced by columnsToAddends(), compressToHeight(), compressUsingTiming(), dump(), and getNextStageTargetHeight().
size_t CompressorTree::getNextStageTargetHeight | ( | ) | const |
Definition at line 163 of file DatapathOps.cpp.
References getMaxHeight().
Referenced by compressUsingTiming(), and dump().
|
inline |
Definition at line 38 of file DatapathOps.h.
References columns.
|
private |
Definition at line 100 of file DatapathOps.cpp.
References circt::datapath::CompressorBit::delay, loc, and circt::datapath::CompressorBit::val.
Referenced by compressUsingTiming().
LogicalResult CompressorTree::withInputDelays | ( | llvm::function_ref< FailureOr< int64_t >(Value)> | getDelay | ) |
Definition at line 140 of file DatapathOps.cpp.
References columns.
|
private |
Definition at line 58 of file DatapathOps.h.
Referenced by columnsToAddends(), CompressorTree(), compressUsingTiming(), dump(), getMaxHeight(), getWidth(), and withInputDelays().
|
private |
Definition at line 70 of file DatapathOps.h.
Referenced by columnsToAddends(), fullAdderWithDelay(), and halfAdderWithDelay().
|
private |
Definition at line 67 of file DatapathOps.h.
Referenced by dump(), and fullAdderWithDelay().
|
private |
Definition at line 64 of file DatapathOps.h.
Referenced by compressUsingTiming(), and dump().
|
private |
Definition at line 61 of file DatapathOps.h.
Referenced by columnsToAddends(), CompressorTree(), compressUsingTiming(), and dump().