Skip to content

dc: add unified bbdev dc command and workflow#8

Merged
shirohasuki merged 1 commit into
mainfrom
feat/dc-workflow
Apr 22, 2026
Merged

dc: add unified bbdev dc command and workflow#8
shirohasuki merged 1 commit into
mainfrom
feat/dc-workflow

Conversation

@Mikemy666
Copy link
Copy Markdown
Contributor

No description provided.

Copilot AI review requested due to automatic review settings April 22, 2026 04:46
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a unified “dc” (Design Compiler) workflow to the bbdev CLI and Motia API so DC synthesis can be invoked via bbdev dc ... and /dc/run, with an optional pre-step to generate Ball verilog.

Changes:

  • Add a dedicated bbdev dc command (direct args, no --run wrapper) and map it to the dc.run workflow operation.
  • Introduce a new Motia API trigger (POST /dc/run) that enqueues dc.run.
  • Add a new Motia event step to execute DC synthesis (and optionally generate Ball verilog first).

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
bbdev Adds dc CLI command parsing and wiring to the workflow submit/poll logic.
api/steps/dc/01_run_api.step.py Adds REST endpoint /dc/run to enqueue the dc.run topic.
api/steps/dc/01_run_event.step.py Implements the dc.run queue handler that runs verilog generation (optional) and then DC script execution.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread bbdev
Comment on lines +177 to +183
# [--balltype ...] [--config ...] [--output-dir ...]
dc_parser = subparsers.add_parser("dc", parents=[common], help="Run DC synthesis")
dc_parser.add_argument("--srcdir", type=str, required=True, help="Design source directory relative to repo root")
dc_parser.add_argument("--top", type=str, default=None, help="Top module name")
dc_parser.add_argument("--keep-hierarchy", action="store_true", help="Keep hierarchy during compile")
dc_parser.add_argument("--balltype", type=str, default=None, help="Optional Ball type for pre-verilog generation, e.g. ReluBall")
dc_parser.add_argument("--config", type=str, default="sims.verilator.BuckyballToyVerilatorConfig", help="Verilog generation config when --balltype is set")
top = input_data.get("top")
keep_hierarchy = bool(input_data.get("keep_hierarchy", False))
balltype = input_data.get("balltype")
config_name = input_data.get("config", "sims.verilator.BuckyballToyVerilatorConfig")
"top": body.get("top"),
"keep_hierarchy": bool(body.get("keep_hierarchy", False)),
"balltype": body.get("balltype"),
"config": body.get("config", "sims.verilator.BuckyballToyVerilatorConfig"),
@shirohasuki
Copy link
Copy Markdown
Member

Thanks! We really need this.

@shirohasuki shirohasuki merged commit 5b44637 into main Apr 22, 2026
6 checks passed
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.

3 participants