[FIRRTL] Lint XMRs in the "Design"
- Dominant language
- C++
- Stars
- 2.2k
- Forks
- 524
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 46
Description
A useful thing to lint is to check that there are no cross module references inside design code. (Note: it is not well defined what is "design code" vs. what is "testbench code" or "not-design code".)
I'm running into a situation where I'm introducing FIRRTL probe reads in a region of the design which should not have them. Currently, nothing is preventing me from doing this and this type of inadvertent change is getting caught in PR review by eagle-eyed reviewers (h/t @girishpai). However, if this wasn't caught, I wouldn't realize this problem until physical design teams complained.
This probably is somewhat difficult because it is not well defined what is the "design". This can be done with janky lint checks involving `MarkDutAnnotation`. However, this is really not ideal.
I don't have a solution here. I'm bringing this up as something that requires more thought before an implementation can be considered.
Contributor guide
No contributing guide indexed for this repository
Research direction
The issue names FIRRTL probe reads and MarkDutAnnotation but no source file, test, or implementation entry point. First clarify how “design code” is distinguished from testbench or other code, then define the lint behavior and tests that would demonstrate that prohibited cross-module references are detected.
Written by the indexing model from the issue text.
Assessment
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100