question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Absorb rocket.DecodeLogic into Standard Library

See original GitHub issue

tl;dr: Proposal to migrate Rocket Chip Decode Quine–McKluskey algorithm into Chisel3 standard library.

Type of issue: feature request

Impact: API addition (no impact on existing code)

Development Phase: proposal

Other information

What is the current behavior?

Users wanting to build a microprocessor need to build a decoder. However, because Chisel and FIRRTL have no notion of actual “don’t cares” and/or the ability to emit casex, this cannot be pushed to the synthesis tool to properly optimize.

Rocket solves this with a Quine-McKluskey implementation inside freechips.rocketchip.rocket.DecodeLogic. This is great, but it requires either code replication or pulling in Rocket Chip for a feature which is, arguably, something that is common to hardware designs and not Rocket designs.

What is the expected behavior?

The standard library (or some other library, e.g,. chisel3.optimization) should expose this API and not Rocket.

What is the use case for changing the behavior?

Moving this and adding documentation would enable users to do QM optimizations for building decoders without having to pull in Rocket.

Any API modifications as a result of the migration would preserve backwards compatibility with Rocket Chip usage. (I don’t know yet if these would be needed or warranted. Likely not.)

Feedback Requested

I’d like feedback from @aswaterman on this.

Notes

Espresso implementations:

Issue Analytics

  • State:open
  • Created 4 years ago
  • Comments:12 (12 by maintainers)

github_iconTop GitHub Comments

1reaction
jackkoenigcommented, Oct 1, 2019

An alternative “backend” for a decode logic generator could be to leave the decoder logic as a blackbox and emit a data file that could be used to drive espresso or Verilog generation. Might be a bit of a sledgehammer on a nail, but I don’t think #1198 solves the issue unless we were to add support for unknowns to FIRRTL

0reactions
sequencercommented, Oct 1, 2019

Will commercial synthesis tools support espresso-like mux optimisation with switch case semantics? I think we might need a qor benchmark framework with hammer.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Absorb rocket.DecodeLogic into Standard Library · Issue #1187 ...
Rocket solves this with a Quine-McKluskey implementation inside freechips.rocketchip.rocket.DecodeLogic . This is great, but it requires either code replication ...
Read more >
Would experts explain how Rocket-chip DecodeLogic works?
DecodeLogic invokes a Quine-Mccluskey algorithm to perform logic minimization that maps a set of keys to output signals, where the input table is...
Read more >
FPGA - Black Mesa Labs - WordPress.com
2017.12.19 : Black Mesa Labs is presenting an open-source-hardware USB 3.0 to FPGA PMOD interface design. First off, please lower your expectations.
Read more >
THESIS NAVAL POSTGRADUATE SCHOOL Monterey ...
Another alternative was to create a library of pre-recorded positioned sound ... Atmospheric Absorption. ... Create a Standard NPSNET Sound Class Interface.
Read more >
Technology for the United States Navy and Marine Corps ...
in and support the nation's standards and metrology infrastructure as required for ... The materials together with power and propulsion technologies (rocket.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found