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
Better definition of clock domains #12
base: main
Are you sure you want to change the base?
Conversation
change, so added a conversion example.
… the example, fix some details
The new syntax, in particular the new ClockDomain constructor, makes it a whole lot easier to read! To have an insight on who used the existing API: |
This all is broadly reasonable and in line with what I've been planning already. It is a very large change however, and I think we won't get around to it particularly soon. Ultimately something like this needs to be done before 1.0, and probably this year. |
Has anybody thought about adding clock frequency information to ClockDomains? I opened enjoy-digital/litex#1310 because I wanted build-time assertions to ensure that a hard IP block wasn’t being overclocked. Perhaps |
Yes. This is a rather complex problem in situations where frequency can change at runtime. It should not be a part of this RFC. (In addition the assertions probably need to run post-elaboration, which isn't something we currently have at all.) |
Reopened as requested by the author. |
I've listed the challenges associated with the current clock domain system in this conversation. To move this proposal forward, it will have to give an answer to these challenges, especially the interaction of sync reset, async reset, and enable. More broadly, I think that the domain scoping and the domain control set semantics are topics that can probably be addressed separately. Given how troublesome domain scoping is for both understanding the language and for implementing it (NIR and the platform layer struggle with it) this may be worth addressing separately. |
Rendered