-
Notifications
You must be signed in to change notification settings - Fork 298
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FIRRTL] Input probe support. #6121
Conversation
5c603e2
to
9d1a22d
Compare
// and ensure they work before allowing them from user input. | ||
if (hasInputRef(port.type, port.isOutput())) | ||
return emitError(std::get<1>(portAndLoc), | ||
"input probes not yet supported"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Locally, some time ago, added verifier that rejected input probes on public modules. Other than test churn, I'm not sure why that wasn't landed. Should go revive, suspect it was just unreachable and so not worth the change.
3b4a6a6
to
5c9329f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall looks good. The program slicing framework is very nice, seems like it can be useful for other cases too.
Don't require it but if it's valid, grab and maintain it.
Ensure supported input probes don't block dedup. (They will be removed)
5c9329f
to
394dbeb
Compare
Thanks!! |
Add and enable support for input probes. Per spec, all uses (XMR read/force/release) of a probe must resolve to below the point of use in the hierarchy. With this PR this is now supported in majority of cases. The main exception to full support, with test demonstrating, is "n-turns" where a module uses an input probe (that resolves below that point) by sending it out and it comes back in equivalently driven in all instantiation contexts. In this PR: * Input probes enabled in parser * Pass added to run after "de-squiggling" to drop all input probes, diagnosing when this is not possible (illegal input). * Test cases involving input probes from spec now work.
Add and enable support for input probes.
Per spec, all uses (XMR read/force/release) of a probe must resolve to below the point of use in the hierarchy.
With this PR this is now supported in majority of cases.
The main exception to full support, with test demonstrating, is "n-turns" where a module uses an input probe (that resolves below that point) by sending it out and it comes back in equivalently driven in all instantiation contexts.
In this PR: