You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Mar 29, 2024. It is now read-only.
I've always liked the idea of lifting some kind of clock domain identifier(s) into the type system, so most logic is constrained to only interact with other logic in the same domain, but with some types able to bridge the gap by implementing CDC (eg. special FIFOs), which ensure robust/safe behavior between domains.
I'm not entirely sure how to handle this in sim, though. Perhaps exposing multiple posedge_clk fn's (one per enumerated domain?) or having that function take the domain to transition on as a parameter or something is sufficient? This ends up putting yet more sim scheduling burden on the user, but might make sense. This also puts more pressure on sim efficiency, since more prop calls are likely required per simulated unit of time in order to correctly propagate signals between domains.
Definitely needs more thought/experimentation!
The text was updated successfully, but these errors were encountered:
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
I've always liked the idea of lifting some kind of clock domain identifier(s) into the type system, so most logic is constrained to only interact with other logic in the same domain, but with some types able to bridge the gap by implementing CDC (eg. special FIFOs), which ensure robust/safe behavior between domains.
I'm not entirely sure how to handle this in sim, though. Perhaps exposing multiple
posedge_clk
fn's (one per enumerated domain?) or having that function take the domain to transition on as a parameter or something is sufficient? This ends up putting yet more sim scheduling burden on the user, but might make sense. This also puts more pressure on sim efficiency, since moreprop
calls are likely required per simulated unit of time in order to correctly propagate signals between domains.Definitely needs more thought/experimentation!
The text was updated successfully, but these errors were encountered: