-
Notifications
You must be signed in to change notification settings - Fork 603
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Espresso Decoder #1964
Espresso Decoder #1964
Conversation
43c26a8
to
2aed3db
Compare
Can you rebase once #2003 is merged? |
OK I'll rebase this. |
e15afc2
to
eb7433e
Compare
@jackkoenig done:) |
src/main/scala/chisel3/util/experimental/decode/EspressoMinimizer.scala
Outdated
Show resolved
Hide resolved
case EspressoNotFoundException => | ||
logger.error( | ||
"""espresso is not found in your PATH, fall back to QMC. | ||
|Quine-McCluskey is a NP complete algorithm, may run forever or run out of memory in large decode tables. | ||
|To get rid of this warning, please use `decoder.qmc` directly, or add espresso to your PATH. | ||
|""".stripMargin | ||
) | ||
qmc(input, truthTable) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I sort of screwed up in my previous comments--since this is the generic API and we can always fall back to QMC, we should just catch all IOExceptions
, but we should forward some of the error message instead of always suppressing and saying "espresso not found".
I think having the EspressoNotFoundException
is good, but we also need to catch other java.io.Exceptions
, and report a similar error message but perhaps include some information from the Exception in the logged message.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
4ecd25f should have implemented this.
@jackkoenig ask for taking a look again ;p |
1. Implement espresso wrapper.2. upstream espresso.3. add espresso CI. #20034. merge this PR
Contributor Checklist
docs/src
?Type of Improvement
API Impact
Backend Code Generation Impact
Espresso generated PLA maybe different from QMC generated, for legacy QMC users, including SiFive and RocketChip users.
Decode circuit maybe different, but formally equivalent.
Desired Merge Strategy
Release Notes
Add Espresso Decoder
Reviewer Checklist (only modified by reviewer)
Please Merge
?