chipsalliance / chipsalliance/chisel

Support default connection via hasCustomConnect

Open
#4,068 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Scala
Stars
4.8k
Forks
658
Avg merge
18h 59m
Merged PRs (30d)
14

Description

**Type of issue**: Feature Request

**Is your feature request related to a problem? Please describe.**
Add default connection feature support to Connectable.

**Describe the solution you'd like**
I'm not sure should we use `Bundle.Lit` here, but we need to programming decide if connect a field via default or connect the field.
e.g. A full AXI bundle, parametrized not supporting `AxProt` or `AxCache` field, when bulking connect, the field at master side should be ignored, and connect a Const value defined by specification.

**Describe alternatives you've considered**
Exposing this feature to user maybe dangerous? In general, for those unconnected signals, users always connect to DontCare, which is more dangerous, since the behavior of DC is 0.U in compiler.

**Additional context**
RocketChip provides this feature via [BundleMap](https://github.com/chipsalliance/rocket-chip/blob/dbcb06afe1c76d1129cb6d264949322a34c37185/src/main/scala/util/BundleMap.scala#L123)

**What is the use case for implementing this feature?**
- Interconnect automation.

Contributor guide

Open the contributing guide

Research direction

Start by reading the Connectable API and the proposed hasCustomConnect behavior, then compare it with RocketChip's BundleMap.scala implementation linked in the issue. Review how Bundle.Lit, AXI bundles, and DontCare are currently handled. Done should include a decided, tested way to connect unsupported fields to specification-defined defaults during interconnect automation.

Written by the indexing model from the issue text.

Assessment

Tech stack
scala
Domain
embedded-iot
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.