chipsalliance / chipsalliance/rocket-chip
Add Protobuf output from Chisel as a CLI option
- Dominant language
- Scala
- Stars
- 3.9k
- Forks
- 1.3k
- Avg merge
- 5d 13m
- Merged PRs (30d)
- 1
Description
**Type of issue**: feature request
**Impact**: API addition (no impact on existing code)
**Development Phase**: proposal
**Other information**
A working minimal example of how to do this reasonably: https://github.com/sam-shahrestani/rocket-chip/commit/65f3232db338fd9a35e5049440986d91352febbf
I'm not sure if this meets code guidelines for this repo, so I haven't PR'd, but we'll be using this as a solution internally for now.
**What is the use case for changing the behavior?**
We've had some issues in the past with memory running out on a medium sized design, partly due to the JVM being a bit dodgy with memory management. Using the Protobuf format gave us a decent speed/memory advantage, and we implemented it using ` Driver.dumpProto` in an much older checkout. Pulling all the new changes completely overwhelmed this (I'm not sure `GeneratorUtils` even exist anymore?), but it could be a lot nicer with the Cli mix-in style.
The way I see it, this could be very useful for others looking to keep memory usage down somewhat.
Contributor guide
Research direction
Start by reviewing the linked example commit, then search the current tree for Driver.dumpProto, GeneratorUtils, and the CLI mix-in entry points mentioned in the issue. Compare those paths with the current generator architecture and existing CLI tests. Done means a documented CLI option produces Protobuf output without affecting existing output modes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- scala
- Domain
- cli, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100