soc/cores/prbs/PRBSRX: add pause signal to pause errors counting.
Simplify CDC when passing the errors to software by allowing the values to stabilized.
This commit is contained in:
parent
869e50ade8
commit
c491c60b7d
|
@ -132,6 +132,7 @@ class PRBS31Checker(PRBSChecker):
|
||||||
class PRBSRX(Module):
|
class PRBSRX(Module):
|
||||||
def __init__(self, width, reverse=False):
|
def __init__(self, width, reverse=False):
|
||||||
self.config = Signal(2)
|
self.config = Signal(2)
|
||||||
|
self.pause = Signal()
|
||||||
self.i = Signal(width)
|
self.i = Signal(width)
|
||||||
self.errors = Signal(32)
|
self.errors = Signal(32)
|
||||||
|
|
||||||
|
@ -162,7 +163,7 @@ class PRBSRX(Module):
|
||||||
self.sync += [
|
self.sync += [
|
||||||
If(config == 0,
|
If(config == 0,
|
||||||
self.errors.eq(0)
|
self.errors.eq(0)
|
||||||
).Elif(self.errors != (2**32-1),
|
).Elif(~self.pause & (self.errors != (2**32-1)),
|
||||||
If(config == 0b01,
|
If(config == 0b01,
|
||||||
self.errors.eq(self.errors + (prbs7.errors != 0))
|
self.errors.eq(self.errors + (prbs7.errors != 0))
|
||||||
).Elif(config == 0b10,
|
).Elif(config == 0b10,
|
||||||
|
|
Loading…
Reference in New Issue