mirror of
https://github.com/enjoy-digital/litex.git
synced 2025-01-04 09:52:26 -05:00
test: add PHY model skeleton
This commit is contained in:
parent
8a2b65f21d
commit
09537523a6
3 changed files with 42 additions and 7 deletions
|
@ -3,11 +3,8 @@ PYTHON = python3
|
|||
|
||||
CMD = PYTHONPATH=$(MSCDIR) $(PYTHON)
|
||||
|
||||
mac_crc_tb:
|
||||
$(CMD) mac_crc_tb.py
|
||||
mac_core_tb:
|
||||
$(CMD) mac_core_tb.py
|
||||
|
||||
mac_preamble_tb:
|
||||
$(CMD) mac_preamble_preamble_tb.py
|
||||
|
||||
ethmac_tb:
|
||||
$(CMD) ethmac_tb.py
|
||||
mac_wishbone_tb:
|
||||
$(CMD) mac_wishbone_tb.py
|
||||
|
|
|
@ -6,6 +6,13 @@ from migen.genlib.record import *
|
|||
|
||||
from misoclib.ethmac.common import *
|
||||
|
||||
def print_with_prefix(s, prefix=""):
|
||||
if not isinstance(s, str):
|
||||
s = s.__repr__()
|
||||
s = s.split("\n")
|
||||
for l in s:
|
||||
print(prefix + l)
|
||||
|
||||
def seed_to_data(seed, random=True):
|
||||
if random:
|
||||
return (seed * 0x31415979 + 1) & 0xffffffff
|
||||
|
|
31
liteeth/test/model/phy.py
Normal file
31
liteeth/test/model/phy.py
Normal file
|
@ -0,0 +1,31 @@
|
|||
from liteeth.common import *
|
||||
from liteeth.mac.common import *
|
||||
from liteeth.test.common import *
|
||||
|
||||
# PHY model
|
||||
class PHYSource(PacketStreamer):
|
||||
def __init__(self, dw):
|
||||
PacketStreamer.__init__(self, eth_phy_description(dw))
|
||||
|
||||
class PHYSink(PacketLogger):
|
||||
def __init__(self, dw):
|
||||
PacketLogger.__init__(self, eth_phy_description(dw))
|
||||
|
||||
class PHY(Module):
|
||||
def __init__(self, dw, debug):
|
||||
self.dw = dw
|
||||
self.debug = debug
|
||||
|
||||
self.phy_source = PHYSource(dw)
|
||||
self.phy_sink = PHYSink(dw)
|
||||
|
||||
self.source = self.phy_source.source
|
||||
self.sink = self.phy_sink.sink
|
||||
|
||||
def send(self, datas, blocking=True):
|
||||
packet = Packet(datas)
|
||||
yield from self.phy_source.send(packet, blocking)
|
||||
|
||||
def receive(self):
|
||||
yield from self.phy_sink.receive()
|
||||
self.packet = self.phy_sink.packet
|
Loading…
Reference in a new issue