chipsalliance / chipsalliance/chisel

Request DataMirror being able to reflect more things

Open
#2,241 1 comment 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

**Impact**: API addition (no impact on existing code)

**Development Phase**: request

**What is the use case for changing the behavior?**
DataMirror currently have APIs below:
```scala
def widthOf(target: Data): Width
def specifiedDirectionOf(target: Data): SpecifiedDirection
def directionOf(target: Data): ActualDirection
def checkTypeEquivalence(x: Data, y: Data): Boolean
def modulePorts(target: BaseModule): Seq[(String, Data)]
def fullModulePorts(target: BaseModule): Seq[(String, Data)]
```
It can check:
`direction`, `width`, `typeEquivalence` from `Data`,
`Ports` from `BaseModule`

However chisel can provide more reflections from `Builder`, for example:
1. Hardware Type(from `Data.topBindingOpt`)
2. `instance`, `reg`, `mem` in a specific module.(like what `chisel3.aop.Select` did, but reflect during runtime.)

This can help library writer to provide more magic to users.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.