Skip to content

Commit

Permalink
gateware/eem: Force IOB=TRUE on Urukul SYNC output
Browse files Browse the repository at this point in the history
Without this, the final register in the SYNC signal TTLClockGen
isn't (always) placed in the I/O tile, leading to more jitter
than necessary, and causing "double window" artefacts. See
sinara-hw/Urukul#16 for more details.

(Patch based on work by Weida Zhang, testing by various members
of the community in Oxford and elsewhere.)
  • Loading branch information
dnadlinger committed Oct 30, 2019
1 parent 611bcc4 commit 17c4c17
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions artiq/gateware/eem.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ def io(eem, eem_aux, iostandard="LVDS_25"):
),
]
ttls = [(6, eem, "io_update"),
(7, eem, "dds_reset_sync_in")]
(7, eem, "dds_reset_sync_in", Misc("IOB=TRUE"))]
if eem_aux is not None:
ttls += [(0, eem_aux, "sync_clk"),
(1, eem_aux, "sync_in"),
Expand All @@ -97,12 +97,12 @@ def io(eem, eem_aux, iostandard="LVDS_25"):
(5, eem_aux, "sw1"),
(6, eem_aux, "sw2"),
(7, eem_aux, "sw3")]
for i, j, sig in ttls:
for i, j, sig, *extra_args in ttls:
ios.append(
("urukul{}_{}".format(eem, sig), 0,
Subsignal("p", Pins(_eem_pin(j, i, "p"))),
Subsignal("n", Pins(_eem_pin(j, i, "n"))),
IOStandard(iostandard)
IOStandard(iostandard), *extra_args
))
return ios

Expand Down

0 comments on commit 17c4c17

Please sign in to comment.