-
Notifications
You must be signed in to change notification settings - Fork 154
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
Make three reset glitch filter variants #2544
Conversation
Review comments on the user documentation are particularly welcome. There's a circumstance I thought of that I found no good way to put into the documentation. In Finally, this PR should probably wait for the discussed changes in #2539. That's the only reason why it is Draft. |
The build failure due to a dependency loop will be solved by adding the constraint from #2539, which gets rid of [edit] |
a16eeaa
to
fcd3531
Compare
bea4e3e
to
6ce1254
Compare
6ce1254
to
d1ae093
Compare
The existing code for `resetGlitchFilter` was wrong: the `error` on domains with unknown initial values rendered as an X value in HDL instead of throwing an error. The new `unsafeResetGlitchFilter` allows to sidestep the restriction if the user is sure this works for them. The new `resetGlitchFilterWithReset` is the better solution for domains with unknown initial values, relying on an additional power-on reset for which assertion glitches don't occur. Both `resetSynchronizer` and `resetGlitchFilter` no longer carry a `NOINLINE`/`OPAQUE` annotation. The only reason they had one was for nicer port/signal names, there was no technical reason to put them in a separate HDL file. Furthermore, somehow the names for `resetSynchronizer` were not nice anyway, it would need `-fno-do-lambda-eta-expansion` to work correctly.
d1ae093
to
e1a5abb
Compare
The existing code for
resetGlitchFilter
was wrong: theerror
on domains with unknown initial values rendered as an X value in HDL instead of throwing an error.The new
unsafeResetGlitchFilter
allows to sidestep the restriction if the user is sure this works for them.The new
resetGlitchFilterWithReset
is the better solution for domains with unknown initial values, relying on an additional power-on reset for which assertion glitches don't occur.Both
resetSynchronizer
andresetGlitchFilter
no longer carry aNOINLINE
/OPAQUE
annotation. The only reason they had one was for nicer port/signal names, there was no technical reason to put them in a separate HDL file. Furthermore, somehow the names forresetSynchronizer
were not nice anyway, it would need-fno-do-lambda-eta-expansion
to work correctly.Still TODO: