RTIO/SYS Clock merge #212
No reviewers
Labels
No Milestone
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: M-Labs/artiq-zynq#212
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "mwojcik/artiq-zynq:rtiosys_clk_merge"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Marked as WIP to keep track of the progress, but don't merge yet.
At this point there's no bootstrap clock provided - that required minor reordering (e.g. set up clock before
init_gateware
).For now tested with Kasli-SoC on Standalone (seems OK).
Turns out I can't really go without a bootstrap clock - standalone may work (although zc706 doesn't want to cooperate fully yet - maybe same power cycle issue?), but for DRTIO the transceivers need to know when the clock is stable, to make sure the transceivers don't glitch up.
Besides that, bootstrap clock is used for GT[XP]
tx_init
.However at this point I'm getting:
the next part takes forever with some truly abstract unmet timing:
That was solved with additional timing constraints in Kasli/KC705, maybe I'm missing something, open to suggestions.
As of now the status is:
top.v
. I suspect some Vivado shenanigans, again.af657dec74
to91d7248df4
At this point:
That is for reasons DRTIO related. One is making sure GTX does not get glitchy clock output from Si5324 (
stable_clkin
) - that has to be somehow passed to CSR, and that requires working clock; second is tx_init done in bootstrap domain, to survive sys change.PLL locks now fine if we base it on tx_init.done, rather do it from the PS - just like on mainline.
Now it switches clocks - as it actually didn't before, that's why clk switch was exported. For whatever reason, stable_clkin needs a bit of a delay, and FCLK needed to be configured. Before that, PLL VCO frequency would be below specifications.
Master can see an uplink but the ping will fail (and no activity is detected on the tested satellite). With copper cable.
Due to FCLK's configurable/resettable nature I'm thinking that it's not a good source for bootstrap clock. ZC706 has
clk200
that could be used, Kasli-SoC hasclk_125gtp
instead. I will start with that to see if that helps DRTIO - given GTX's delicate nature, where looking at it wrong can make it fail.dc19b36064
tocff2caa88f
[WIP] RTIO/SYS Clock mergeto RTIO/SYS Clock mergeTested on zc706 - sometimes clock won't switch but when it does everything works (DRTIO master/satellite). Kasli-SoC... seems like the board I've been using has issues that I lost some time on (need more investigation!). With another board everything was good, every time. Master connected to Kasli 1.1 satellite and exchanged data (including some TTL tests); SoC satellite connected to 2.0 master received DRTIO data too.
In hindsight it seems that using external clock source rather than FCLK was not necessary, but I think it's a more elegant method, even if it's more board specific.
Either way ready for full review and going forward.
4f410188e5
to5f10387684
4d6edef142
tof7f956fc34