forked from M-Labs/artiq
1
0
Fork 0

rtio: make pipelined logic reset_less

* latency-corrected counters
* registered error logic
This commit is contained in:
Robert Jördens 2017-06-29 12:55:32 +02:00
parent 600a48ac61
commit 911ee4a959
1 changed files with 7 additions and 7 deletions

View File

@ -82,9 +82,9 @@ class _OutputManager(Module):
buf_just_written = Signal() buf_just_written = Signal()
# Special cases # Special cases
replace = Signal() replace = Signal(reset_less=True)
sequence_error = Signal() sequence_error = Signal(reset_less=True)
collision = Signal() collision = Signal(reset_less=True)
any_error = Signal() any_error = Signal()
if interface.enable_replace: if interface.enable_replace:
# Note: replace may be asserted at the same time as collision # Note: replace may be asserted at the same time as collision
@ -164,9 +164,9 @@ class _OutputManager(Module):
# latency compensation # latency compensation
if interface.delay: if interface.delay:
counter_rtio = Signal.like(counter.value_rtio) counter_rtio = Signal.like(counter.value_rtio, reset_less=True)
self.sync.rtio += counter_rtio.eq(counter.value_rtio - self.sync.rtio += counter_rtio.eq(counter.value_rtio -
interface.delay + 1) (interface.delay + 1))
else: else:
counter_rtio = counter.value_rtio counter_rtio = counter.value_rtio
@ -223,9 +223,9 @@ class _InputManager(Module):
# latency compensation # latency compensation
if interface.delay: if interface.delay:
counter_rtio = Signal.like(counter.value_rtio) counter_rtio = Signal.like(counter.value_rtio, reset_less=True)
self.sync.rtio += counter_rtio.eq(counter.value_rtio - self.sync.rtio += counter_rtio.eq(counter.value_rtio -
interface.delay + 1) (interface.delay + 1))
else: else:
counter_rtio = counter.value_rtio counter_rtio = counter.value_rtio