Closed as not planned
Description
We currently do not have a way to define an explicit relationship between a clock and another user-generated clock, derived from the former. The relationship would be expressed in terms of frequency division/multiplication, phase shift, and duty cycle.
Support would vary between toolchains:
- Vivado, Diamond, iCECube2 and Quartus have a
create_generated_clock
XDC/SDC constraint. - nextpnr-{ice40,ecp5} doesn't seem to implement generated clock constraints.
Also, unlike platform-level clocks, a generated clock could be local to a submodule and therefore not propagated to the top-level. We would need a way to retrieve its name in order to pass it as a constraint parameter.