Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

teqdruid
Copy link
Contributor

@teqdruid teqdruid commented Jul 10, 2025

Adds a new transaction‐level snoop operation (snoop.xact) to the ESI dialect, lowers it to hardware, and wires it through the Python front end.

  • Introduce SnoopTransactionOp in ESIChannels.td with verify and inferReturnTypes in ESIOps.cpp
  • Extend the HW lowering pass to remove snoop.xact via RemoveSnoopTransactionOp
  • Update MLIR tests and the PyCDE API (snoop_xact) to exercise the new operation

@teqdruid teqdruid requested a review from Copilot July 10, 2025 22:39
@teqdruid teqdruid added the ESI label Jul 10, 2025
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Adds a new transaction‐level snoop operation (snoop.xact) to the ESI dialect, lowers it to hardware, and wires it through the Python front end.

  • Introduce SnoopTransactionOp in ESIChannels.td with verify and inferReturnTypes in ESIOps.cpp
  • Extend the HW lowering pass to remove snoop.xact via RemoveSnoopTransactionOp
  • Update MLIR tests and the PyCDE API (snoop_xact) to exercise the new operation

Reviewed Changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
test/Dialect/ESI/lowering.mlir Add esi.snoop.xact examples and expected HW patterns
lib/Dialect/ESI/Passes/ESILowerToHW.cpp Implement RemoveSnoopTransactionOp and plug into lowering passes
lib/Dialect/ESI/ESITypes.cpp Exclude SnoopTransactionOp from channel‐use counts
lib/Dialect/ESI/ESIOps.cpp Add verify and inferReturnTypes for SnoopTransactionOp
include/circt/Dialect/ESI/ESIChannels.td Define SnoopTransactionOp with type inference
frontends/PyCDE/test/test_esi.py Update lit checks to expect snoop.xact output
frontends/PyCDE/src/pycde/signals.py Add snoop_xact method to Python API
Comments suppressed due to low confidence (2)

frontends/PyCDE/src/pycde/signals.py:776

  • [nitpick] The docstring for snoop_xact should mention that it returns both a transaction signal and the data value, and clarify their order to avoid confusion.
    """Combinationally snoop on the internal signals of a channel."""

lib/Dialect/ESI/Passes/ESILowerToHW.cpp:305

  • [nitpick] The local variable transaction is a bit generic; consider renaming it to fifoTransaction or transactionSignal for consistency with the VR branch's validAndReady.
      auto transaction = rewriter.create<comb::AndOp>(op.getLoc(), notEmpty,

@teqdruid teqdruid marked this pull request as ready for review July 11, 2025 04:14
@teqdruid teqdruid merged commit 05c06ad into main Jul 11, 2025
8 checks passed
@teqdruid teqdruid deleted the teqdruid/esi-xact branch July 11, 2025 04:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant