Skip to content

Commit a7dd356

Browse files
committedSep 7, 2016
rtio/phy/ttl: support 'set sensitivity and sample' command (#218)
1 parent 269cedd commit a7dd356

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed
 

Diff for: ‎artiq/gateware/rtio/phy/ttl_serdes_generic.py

+9-2
Original file line numberDiff line numberDiff line change
@@ -90,14 +90,21 @@ def __init__(self, serdes):
9090

9191
# Input
9292
sensitivity = Signal(2)
93-
self.sync.rio += If(self.rtlink.o.stb & (self.rtlink.o.address == 2),
94-
sensitivity.eq(self.rtlink.o.data))
93+
sample = Signal()
94+
self.sync.rio += [
95+
sample.eq(0),
96+
If(self.rtlink.o.stb & self.rtlink.o.address[1],
97+
sensitivity.eq(self.rtlink.o.data),
98+
If(self.rtlink.o.address[0], sample.eq(1))
99+
)
100+
]
95101

96102
i = serdes.i[-1]
97103
i_d = Signal()
98104
self.sync.rio_phy += [
99105
i_d.eq(i),
100106
self.rtlink.i.stb.eq(
107+
sample |
101108
(sensitivity[0] & ( i & ~i_d)) |
102109
(sensitivity[1] & (~i & i_d))
103110
),

Diff for: ‎artiq/gateware/rtio/phy/ttl_simple.py

+9-2
Original file line numberDiff line numberDiff line change
@@ -59,15 +59,22 @@ def __init__(self, pad):
5959
ts.oe.eq(oe_k)
6060
)
6161
]
62-
self.sync.rio += If(self.rtlink.o.stb & (self.rtlink.o.address == 2),
63-
sensitivity.eq(self.rtlink.o.data))
62+
sample = Signal()
63+
self.sync.rio += [
64+
sample.eq(0),
65+
If(self.rtlink.o.stb & self.rtlink.o.address[1],
66+
sensitivity.eq(self.rtlink.o.data),
67+
If(self.rtlink.o.address[0], sample.eq(1))
68+
)
69+
]
6470

6571
i = Signal()
6672
i_d = Signal()
6773
self.specials += MultiReg(ts.i, i, "rio_phy")
6874
self.sync.rio_phy += i_d.eq(i)
6975
self.comb += [
7076
self.rtlink.i.stb.eq(
77+
sample |
7178
(sensitivity[0] & ( i & ~i_d)) |
7279
(sensitivity[1] & (~i & i_d))
7380
),

0 commit comments

Comments
 (0)
Please sign in to comment.