b945ded45dc0b2cf59f9d60c0d5230354b94ae46
[litex.git] / liteeth / mac / frontend / common.py
1 from liteeth.common import *
2
3 class LiteEthMACMasterPort:
4 def __init__(self, dw):
5 self.source = Source(eth_mac_description(dw))
6 self.sink = Sink(eth_mac_description(dw))
7
8 def connect(self, slave):
9 return [
10 Record.connect(self.source, slave.sink),
11 Record.connect(slave.source, self.sink)
12 ]
13
14 class LiteEthMACSlavePort:
15 def __init__(self, dw):
16 self.sink = Sink(eth_mac_description(dw))
17 self.source = Source(eth_mac_description(dw))
18
19 def connect(self, master):
20 return [
21 Record.connect(self.sink, master.source),
22 Record.connect(master.sink, self.source)
23 ]
24
25 class LiteEthMACUserPort(LiteEthMACSlavePort):
26 def __init__(self, dw):
27 LiteEthMACSlavePort.__init__(self, dw)