36 lines
1.2 KiB
Diff
36 lines
1.2 KiB
Diff
diff --git a/gateware/logic/chains.py b/gateware/logic/chains.py
|
|
index a890849..3461a78 100644
|
|
--- a/gateware/logic/chains.py
|
|
+++ b/gateware/logic/chains.py
|
|
@@ -93,7 +93,6 @@ class FastChain(Module, AutoCSR):
|
|
|
|
self.comb += [
|
|
x_limit.x.eq(([self.demod.i, self.demod.q][sub_channel_idx] << s) + dx),
|
|
- iir_c.x.eq(x_limit.y),
|
|
iir_c.hold.eq(0),
|
|
iir_c.clear.eq(0),
|
|
iir_d.x.eq(iir_c.y),
|
|
@@ -101,14 +100,20 @@ class FastChain(Module, AutoCSR):
|
|
iir_d.clear.eq(0),
|
|
]
|
|
|
|
+ self.sync += [
|
|
+ iir_c.x.eq(x_limit.y)
|
|
+ ]
|
|
+
|
|
ys = Array([iir_c.x, iir_c.y, iir_d.y])
|
|
|
|
output_signal_this_channel = (self.out_i, self.out_q)[sub_channel_idx]
|
|
- self.comb += [
|
|
+ self.sync += [
|
|
y_limit.x.eq(
|
|
Mux(self.invert.storage, -1, 1)
|
|
* (ys[self.y_tap.storage] + (ya << s) + (offset_signal << s))
|
|
- ),
|
|
+ )
|
|
+ ]
|
|
+ self.comb += [
|
|
output_signal_this_channel.eq(y_limit.y),
|
|
]
|
|
|