13 #include "mlir/IR/Builders.h"
14 #include "mlir/IR/OpImplementation.h"
15 #include "mlir/IR/PatternMatch.h"
16 #include "mlir/IR/SymbolTable.h"
17 #include "mlir/Interfaces/FunctionImplementation.h"
18 #include "mlir/Interfaces/SideEffectInterfaces.h"
20 using namespace circt;
21 using namespace verif;
28 OpFoldResult HasBeenResetOp::fold(FoldAdaptor adaptor) {
32 if (adaptor.getReset())
37 if (!adaptor.getAsync() && adaptor.getClock())
47 LogicalResult LogicEquivalenceCheckingOp::verifyRegions() {
48 if (getFirstCircuit().getArgumentTypes() !=
49 getSecondCircuit().getArgumentTypes())
50 return emitOpError() <<
"block argument types of both regions must match";
51 if (getFirstCircuit().front().getTerminator()->getOperandTypes() !=
52 getSecondCircuit().front().getTerminator()->getOperandTypes())
54 <<
"types of the yielded values of both regions must match";
63 #define GET_OP_CLASSES
64 #include "circt/Dialect/Verif/Verif.cpp.inc"
Direction get(bool isOutput)
Returns an output direction if isOutput is true, otherwise returns an input direction.
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.