improve RX timings (make valid synchronous)

This commit is contained in:
Florent Kermarrec 2015-02-09 14:49:59 +01:00
parent 78d39c6dae
commit 1754574731
5 changed files with 6 additions and 6 deletions

View File

@ -7,8 +7,8 @@ from migen.genlib.resetsync import AsyncResetSynchronizer
from migen.genlib.record import * from migen.genlib.record import *
from migen.genlib.fsm import FSM, NextState from migen.genlib.fsm import FSM, NextState
from migen.genlib.misc import chooser from migen.genlib.misc import chooser
from migen.flow.actor import EndpointDescription from migen.flow.actor import *
from migen.flow.actor import Sink, Source from migen.flow.plumbing import Buffer
from migen.actorlib.structuring import Converter, Pipeline from migen.actorlib.structuring import Converter, Pipeline
from migen.actorlib.fifo import SyncFIFO, AsyncFIFO from migen.actorlib.fifo import SyncFIFO, AsyncFIFO
from migen.bank.description import * from migen.bank.description import *

View File

@ -96,7 +96,7 @@ class LiteEthARPRX(Module):
) )
) )
valid = Signal() valid = Signal()
self.comb += valid.eq( self.sync += valid.eq(
depacketizer.source.stb & depacketizer.source.stb &
(depacketizer.source.hwtype == arp_hwtype_ethernet) & (depacketizer.source.hwtype == arp_hwtype_ethernet) &
(depacketizer.source.proto == arp_proto_ip) & (depacketizer.source.proto == arp_proto_ip) &

View File

@ -71,7 +71,7 @@ class LiteEthICMPRX(Module):
) )
) )
valid = Signal() valid = Signal()
self.comb += valid.eq( self.sync += valid.eq(
depacketizer.source.stb & depacketizer.source.stb &
(sink.protocol == icmp_protocol) (sink.protocol == icmp_protocol)
) )

View File

@ -136,7 +136,7 @@ class LiteEthIPRX(Module):
) )
) )
valid = Signal() valid = Signal()
self.comb += valid.eq( self.sync += valid.eq(
depacketizer.source.stb & depacketizer.source.stb &
(depacketizer.source.target_ip == ip_address) & (depacketizer.source.target_ip == ip_address) &
(depacketizer.source.version == 0x4) & (depacketizer.source.version == 0x4) &

View File

@ -72,7 +72,7 @@ class LiteEthUDPRX(Module):
) )
) )
valid = Signal() valid = Signal()
self.comb += valid.eq( self.sync += valid.eq(
depacketizer.source.stb & depacketizer.source.stb &
(sink.protocol == udp_protocol) (sink.protocol == udp_protocol)
) )