Skip to content

Commit

Permalink
rtio/phy/ttl: support 'set sensitivity and sample' command (#218)
Browse files Browse the repository at this point in the history
sbourdeauducq committed Sep 7, 2016
1 parent 269cedd commit a7dd356
Showing 2 changed files with 18 additions and 4 deletions.
11 changes: 9 additions & 2 deletions artiq/gateware/rtio/phy/ttl_serdes_generic.py
Original file line number Diff line number Diff line change
@@ -90,14 +90,21 @@ def __init__(self, serdes):

# Input
sensitivity = Signal(2)
self.sync.rio += If(self.rtlink.o.stb & (self.rtlink.o.address == 2),
sensitivity.eq(self.rtlink.o.data))
sample = Signal()
self.sync.rio += [
sample.eq(0),
If(self.rtlink.o.stb & self.rtlink.o.address[1],
sensitivity.eq(self.rtlink.o.data),
If(self.rtlink.o.address[0], sample.eq(1))
)
]

i = serdes.i[-1]
i_d = Signal()
self.sync.rio_phy += [
i_d.eq(i),
self.rtlink.i.stb.eq(
sample |
(sensitivity[0] & ( i & ~i_d)) |
(sensitivity[1] & (~i & i_d))
),
11 changes: 9 additions & 2 deletions artiq/gateware/rtio/phy/ttl_simple.py
Original file line number Diff line number Diff line change
@@ -59,15 +59,22 @@ def __init__(self, pad):
ts.oe.eq(oe_k)
)
]
self.sync.rio += If(self.rtlink.o.stb & (self.rtlink.o.address == 2),
sensitivity.eq(self.rtlink.o.data))
sample = Signal()
self.sync.rio += [
sample.eq(0),
If(self.rtlink.o.stb & self.rtlink.o.address[1],
sensitivity.eq(self.rtlink.o.data),
If(self.rtlink.o.address[0], sample.eq(1))
)
]

i = Signal()
i_d = Signal()
self.specials += MultiReg(ts.i, i, "rio_phy")
self.sync.rio_phy += i_d.eq(i)
self.comb += [
self.rtlink.i.stb.eq(
sample |
(sensitivity[0] & ( i & ~i_d)) |
(sensitivity[1] & (~i & i_d))
),

0 comments on commit a7dd356

Please sign in to comment.