Skip to content

Commit

Permalink
[MooreToCore] Support AssignedVariableOp (#7500)
Browse files Browse the repository at this point in the history
  • Loading branch information
maerhart authored Aug 10, 2024
1 parent 286e73e commit 9d207a3
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 0 deletions.
14 changes: 14 additions & 0 deletions lib/Conversion/MooreToCore/MooreToCore.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -928,6 +928,19 @@ struct ReadOpConversion : public OpConversionPattern<ReadOp> {
}
};

struct AssignedVariableOpConversion
: public OpConversionPattern<AssignedVariableOp> {
using OpConversionPattern::OpConversionPattern;

LogicalResult
matchAndRewrite(AssignedVariableOp op, OpAdaptor adaptor,
ConversionPatternRewriter &rewriter) const override {
rewriter.replaceOpWithNewOp<hw::WireOp>(op, adaptor.getInput(),
adaptor.getNameAttr());
return success();
}
};

template <typename OpTy, unsigned DeltaTime, unsigned EpsilonTime>
struct AssignOpConversion : public OpConversionPattern<OpTy> {
using OpConversionPattern<OpTy>::OpConversionPattern;
Expand Down Expand Up @@ -1112,6 +1125,7 @@ static void populateOpConversion(RewritePatternSet &patterns,
AssignOpConversion<ContinuousAssignOp, 0, 1>,
AssignOpConversion<BlockingAssignOp, 0, 1>,
AssignOpConversion<NonBlockingAssignOp, 1, 0>,
AssignedVariableOpConversion,

// Patterns of branch operations.
CondBranchOpConversion, BranchOpConversion,
Expand Down
3 changes: 3 additions & 0 deletions test/Conversion/MooreToCore/basic.mlir
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,9 @@ func.func @Expressions(%arg0: !moore.i1, %arg1: !moore.l1, %arg2: !moore.i6, %ar
moore.replicate %arg0 : i1 -> i2
moore.replicate %arg1 : l1 -> l2

// CHECK-NEXT: %name = hw.wire %arg0 : i1
%name = moore.assigned_variable %arg0 : !moore.i1

// CHECK-NEXT: %c12_i32 = hw.constant 12 : i32
// CHECK-NEXT: %c3_i6 = hw.constant 3 : i6
moore.constant 12 : !moore.i32
Expand Down

0 comments on commit 9d207a3

Please sign in to comment.