test: add PHY model skeleton

This commit is contained in:
Florent Kermarrec 2015-01-28 10:25:33 +01:00
parent 8a2b65f21d
commit 09537523a6
3 changed files with 42 additions and 7 deletions

View file

@ -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

View file

@ -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
View 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