Skip to content
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

Allowing global variables to be marked as top level clock inputs #138

Open
JulianKemmerer opened this issue Oct 27, 2022 · 0 comments
Open
Labels
enhancement New feature or request

Comments

@JulianKemmerer
Copy link
Owner

JulianKemmerer commented Oct 27, 2022

Related to allowing global variables to be top level inputs or outputs #123

Allow special clock enable and reset signals marked this way too maybe?

Otherwise, work around like in the graphics repo work - simply using a MAIN top level input port ex. pixel(uint1_t clock) that renders a pixel_clock input wire and marking it with the CLK_MHZ pragma as a clock doesnt work for all tools:

During internal runs of the tool all inputs have registers so timing paths are all sync. In this case the input clock is registered using itself as a clock and weird things happen...

At least apparently for some tools like Quartus, which, similar to #137, seem unable to use get_nets for the internal net name that isn't registered as the source of the clock for create_clock in the timing constraints. The internal clock net is also connected as an output port. Quartus can apply a clock to this output port with get_ports - but the clock constraint does not reach the interior of the design - internal registers,etc that are using the internal 'copy' of the clock wire are all still unconstrained/not reached by the output port create clock constraint.

Vivado however is able to define a proper internal clock net usingcreate_clock with get_nets on the intended top level clock signal (and seems to ignore preceding funny clock input register business).

@JulianKemmerer JulianKemmerer added the enhancement New feature or request label Oct 27, 2022
@JulianKemmerer JulianKemmerer self-assigned this Oct 27, 2022
@JulianKemmerer JulianKemmerer changed the title Allowing global variables to be marked defined as top level clock inputs Allowing global variables to be marked as top level clock inputs Oct 27, 2022
@JulianKemmerer JulianKemmerer removed their assignment Feb 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant