use new EndpointDescription
This commit is contained in:
parent
67aaf09b53
commit
705819f885
|
@ -15,8 +15,8 @@ class K7SATAPHYHostCtrl(Module):
|
||||||
def __init__(self, gtx, crg, clk_freq):
|
def __init__(self, gtx, crg, clk_freq):
|
||||||
self.ready = Signal()
|
self.ready = Signal()
|
||||||
|
|
||||||
self.sink = Sink([("data", 32), ("charisk", 4)])
|
self.sink = Sink(phy_description(32))
|
||||||
self.source = Source([("data", 32), ("charisk", 4)])
|
self.source = Source(phy_description(32))
|
||||||
|
|
||||||
self.align_detect = align_detect = Signal()
|
self.align_detect = align_detect = Signal()
|
||||||
align_timeout_cnt = Signal(32)
|
align_timeout_cnt = Signal(32)
|
||||||
|
@ -171,8 +171,8 @@ class K7SATAPHYDeviceCtrl(Module):
|
||||||
def __init__(self, gtx, crg, clk_freq):
|
def __init__(self, gtx, crg, clk_freq):
|
||||||
self.ready = Signal()
|
self.ready = Signal()
|
||||||
|
|
||||||
self.sink = Sink([("data", 32), ("charisk", 4)])
|
self.sink = Sink(phy_description(32))
|
||||||
self.source = Source([("data", 32), ("charisk", 4)])
|
self.source = Source(phy_description(32))
|
||||||
|
|
||||||
align_detect = Signal()
|
align_detect = Signal()
|
||||||
align_timeout = Signal()
|
align_timeout = Signal()
|
||||||
|
|
|
@ -7,8 +7,8 @@ from lib.sata.std import *
|
||||||
|
|
||||||
class K7SATAPHYDatapathRX(Module):
|
class K7SATAPHYDatapathRX(Module):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.sink = Sink([("data", 16), ("charisk", 2)])
|
self.sink = Sink(phy_description(16))
|
||||||
self.source = Source([("data", 32), ("charisk", 4)])
|
self.source = Source(phy_description(32))
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ class K7SATAPHYDatapathRX(Module):
|
||||||
# requirements:
|
# requirements:
|
||||||
# due to the convertion ratio of 2, sys_clk need to be > sata_rx/2
|
# due to the convertion ratio of 2, sys_clk need to be > sata_rx/2
|
||||||
# source destination is always able to accept data (ack always 1)
|
# source destination is always able to accept data (ack always 1)
|
||||||
fifo = AsyncFIFO([("data", 32), ("charisk", 4)], 16)
|
fifo = AsyncFIFO(phy_description(32), 16)
|
||||||
self.submodules.fifo = RenameClockDomains(fifo, {"write": "sata_rx", "read": "sys"})
|
self.submodules.fifo = RenameClockDomains(fifo, {"write": "sata_rx", "read": "sys"})
|
||||||
self.comb += [
|
self.comb += [
|
||||||
fifo.sink.stb.eq(valid),
|
fifo.sink.stb.eq(valid),
|
||||||
|
@ -71,8 +71,8 @@ class K7SATAPHYDatapathRX(Module):
|
||||||
|
|
||||||
class K7SATAPHYDatapathTX(Module):
|
class K7SATAPHYDatapathTX(Module):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.sink = Sink([("data", 32), ("charisk", 4)])
|
self.sink = Sink(phy_description(32))
|
||||||
self.source = Source([("data", 16), ("charisk", 2)])
|
self.source = Source(phy_description(16))
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ class K7SATAPHYDatapathTX(Module):
|
||||||
# (SATA1) sys_clk to 75MHz sata_tx clk
|
# (SATA1) sys_clk to 75MHz sata_tx clk
|
||||||
# requirements:
|
# requirements:
|
||||||
# source destination is always able to accept data (ack always 1)
|
# source destination is always able to accept data (ack always 1)
|
||||||
fifo = AsyncFIFO([("data", 32), ("charisk", 4)], 16)
|
fifo = AsyncFIFO(phy_description(32), 16)
|
||||||
self.submodules.fifo = RenameClockDomains(fifo, {"write": "sys", "read": "sata_tx"})
|
self.submodules.fifo = RenameClockDomains(fifo, {"write": "sys", "read": "sata_tx"})
|
||||||
self.comb += Record.connect(self.sink, fifo.sink)
|
self.comb += Record.connect(self.sink, fifo.sink)
|
||||||
|
|
||||||
|
@ -110,8 +110,8 @@ class K7SATAPHYDatapathTX(Module):
|
||||||
|
|
||||||
class K7SATAPHYDatapath(Module):
|
class K7SATAPHYDatapath(Module):
|
||||||
def __init__(self, gtx, ctrl):
|
def __init__(self, gtx, ctrl):
|
||||||
self.sink = Sink([("data", 32), ("charisk", 4)])
|
self.sink = Sink(phy_description(32))
|
||||||
self.source = Source([("data", 32), ("charisk", 4)])
|
self.source = Source(phy_description(32))
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
from migen.fhdl.std import *
|
from migen.fhdl.std import *
|
||||||
from migen.genlib.record import *
|
from migen.genlib.record import *
|
||||||
|
from migen.flow.actor import EndpointDescription
|
||||||
|
|
||||||
primitives = {
|
primitives = {
|
||||||
"ALIGN" : 0x7B4A4ABC,
|
"ALIGN" : 0x7B4A4ABC,
|
||||||
|
@ -20,16 +21,22 @@ primitives = {
|
||||||
def ones(width):
|
def ones(width):
|
||||||
return 2**width-1
|
return 2**width-1
|
||||||
|
|
||||||
def phy_layout(dw):
|
def phy_description(dw):
|
||||||
|
parameters = {
|
||||||
|
"packetized": False
|
||||||
|
}
|
||||||
layout = [
|
layout = [
|
||||||
("p_packetized", True),
|
("data", dw),
|
||||||
("d", dw)
|
("charisk", dw//8),
|
||||||
]
|
]
|
||||||
return layout
|
return EndpointDescription(layout, parameters)
|
||||||
|
|
||||||
def link_layout(dw):
|
def link_description(dw):
|
||||||
|
parameters = {
|
||||||
|
"packetized": True
|
||||||
|
}
|
||||||
layout = [
|
layout = [
|
||||||
("p_packetized", True),
|
("d", dw),
|
||||||
("d", dw)
|
("error", 1)
|
||||||
]
|
]
|
||||||
return layout
|
return EndpointDescription(layout, parameters)
|
||||||
|
|
Loading…
Reference in New Issue