Skip to content

[circt-bmc] Include bound in violation and success messages#10056

Open
AnmolM-777 wants to merge 1 commit intollvm:mainfrom
AnmolM-777:counterexample-wip
Open

[circt-bmc] Include bound in violation and success messages#10056
AnmolM-777 wants to merge 1 commit intollvm:mainfrom
AnmolM-777:counterexample-wip

Conversation

@AnmolM-777
Copy link
Copy Markdown

This PR improves the output messages of circt-bmc by including the bound
information in both violation and success cases.

Previously, the tool printed generic messages such as:
"Assertion can be violated!"
which provided no context about when the violation occurred.

With this change, the messages now include the bound value, e.g.:
"Assertion can be violated within 10 clock cycle(s)!"
"Bound reached with no violations within 10 clock cycle(s)."

This makes the output significantly more informative for users debugging
hardware designs, as they can immediately understand the depth at which
the result was obtained.

Changes:

  • Updated message generation in LowerToBMC.cpp
  • Added/updated tests to reflect the new output format

Testing:

  • Ran lower-to-bmc.mlir test using llvm-lit
  • Verified updated FileCheck patterns

Additional work:
I also explored adding counterexample (model) printing support in
SMTToZ3LLVM, but ran into issues related to IR insertion and lowering.
I plan to revisit this with guidance on the correct insertion point.

Previously, circt-bmc printed generic messages with no context about
at which bound a violation was found. This patch includes the bound
count in both the success and failure messages, making the output
more informative for users debugging hardware designs.
@TaoBi22
Copy link
Copy Markdown
Contributor

TaoBi22 commented Mar 27, 2026

This seems to be a duplicate of #10051

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants