2014-12-15 13:13:32 -05:00
|
|
|
from lib.sata.common import *
|
|
|
|
from lib.sata.link import SATALink
|
|
|
|
from lib.sata.transport import SATATransport
|
|
|
|
from lib.sata.command import SATACommand
|
|
|
|
|
2015-01-14 03:19:41 -05:00
|
|
|
from lib.sata.frontend.crossbar import SATACrossbar
|
|
|
|
|
2014-12-15 13:13:32 -05:00
|
|
|
class SATACON(Module):
|
2015-01-06 10:48:19 -05:00
|
|
|
def __init__(self, phy):
|
2014-12-23 12:26:07 -05:00
|
|
|
###
|
2015-01-14 03:19:41 -05:00
|
|
|
# core
|
2014-12-18 19:35:18 -05:00
|
|
|
self.link = SATALink(phy)
|
|
|
|
self.transport = SATATransport(self.link)
|
2015-01-06 10:48:19 -05:00
|
|
|
self.command = SATACommand(self.transport)
|
2014-12-15 13:13:32 -05:00
|
|
|
|
2015-01-14 03:19:41 -05:00
|
|
|
# frontend
|
|
|
|
self.crossbar = SATACrossbar(32)
|
|
|
|
self.comb += [
|
|
|
|
Record.connect(self.crossbar.master.source, self.command.sink),
|
|
|
|
Record.connect(self.command.source, self.crossbar.master.sink)
|
|
|
|
]
|