chipsalliance / chipsalliance/rocket-chip

BundleMap: Connect clients with different user field to one crossbar

Open
#2,877 2 comments 1 reaction 0 assignees View on GitHub
question
Dominant language
Scala
Stars
3.9k
Forks
1.3k
Avg merge
5d 13m
Merged PRs (30d)
1

Description

**Type of issue**: other enhancement

**Impact**: API modification

**Development Phase**: request

**Other information**

**If the current behavior is a bug, please provide the steps to reproduce the problem:**

I got the following error when connecting two clients (one with XXXField in user bits, one without) to a TLXbar:
```
requirement failed: Attempt to assign BundleMap(Wire in TLXbar) :<= BundleMap(Wire in TLXbar), where RHS is missing directional field XXXField()
```

**What is the current behavior?**

TLXbar seems to require all clients to have the same user field.

**What is the expected behavior?**

Would it be better if TLXbar could automatically fill in missing fields with their default values?

**What is the use case for changing the behavior?**

For large systems, it may be difficult to require all clients on TLXbar to have the same user field.

Contributor guide

Open the contributing guide

Research direction

Start by tracing the TLXbar connection path where BundleMap assignments reject a missing XXXField, then inspect how client user fields and default values are represented. Done means clients with and without XXXField can connect to one crossbar without the reported requirement failure, with the missing field receiving its default value.

Written by the indexing model from the issue text.

Assessment

Tech stack
scala
Domain
embedded-iot
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.