chipsalliance / chipsalliance/rocket-chip

Add Protobuf output from Chisel as a CLI option

Open
#2,843 0 comments 0 reactions 0 assignees View on GitHub
proposal
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.