1
0
Fork 0

upconn GW: rename variable

This commit is contained in:
morgan 2024-09-05 17:40:14 +08:00
parent 9f8f8c1ad0
commit fa674e32f5
1 changed files with 31 additions and 31 deletions

View File

@ -95,7 +95,7 @@ class SERDES_10bits(Module):
@ResetInserter() @ResetInserter()
@CEInserter() @CEInserter()
class Packets_Scheduler(Module): class Packets_Scheduler(Module):
def __init__(self, tx_fifos, debug_buf): def __init__(self, interface, debug_buf):
self.tx_enable = Signal() self.tx_enable = Signal()
self.oe = Signal() self.oe = Signal()
@ -109,7 +109,7 @@ class Packets_Scheduler(Module):
tx_wordcount = Signal(max=10000) tx_wordcount = Signal(max=10000)
idling = Signal() idling = Signal()
priorities = Signal.like(tx_fifos.pe.o) priorities = Signal.like(interface.pe.o)
# DEBUG: # DEBUG:
self.idling = Signal() self.idling = Signal()
@ -146,17 +146,17 @@ class Packets_Scheduler(Module):
self.sync += [ self.sync += [
If(self.oe, If(self.oe,
encoder.disp_in.eq(encoder.disp_out), encoder.disp_in.eq(encoder.disp_out),
If((~tx_fifos.pe.n) & (tx_fifos.pe.o == 0), If((~interface.pe.n) & (interface.pe.o == 0),
# trigger packets are inserted at char boundary and don't contribute to word count # trigger packets are inserted at char boundary and don't contribute to word count
tx_fifos.source_ack[0].eq(1), interface.sink_ack[0].eq(1),
encoder.d.eq(tx_fifos.source_data[0]), encoder.d.eq(interface.sink_data[0]),
encoder.k.eq(tx_fifos.source_k[0]), encoder.k.eq(interface.sink_k[0]),
# DEBUG: # DEBUG:
If(debug_buf.sink_ack, If(debug_buf.sink_ack,
debug_buf.sink_stb.eq(1), debug_buf.sink_stb.eq(1),
debug_buf.sink_data.eq(tx_fifos.source_data[0]), debug_buf.sink_data.eq(interface.sink_data[0]),
debug_buf.sink_k.eq(tx_fifos.source_k[0]), debug_buf.sink_k.eq(interface.sink_k[0]),
) )
).Else( ).Else(
If(tx_charcount == 3, If(tx_charcount == 3,
@ -164,20 +164,20 @@ class Packets_Scheduler(Module):
# Section 9.2.4 (CXP-001-2021) # Section 9.2.4 (CXP-001-2021)
# other priorities packets are inserted at word boundary # other priorities packets are inserted at word boundary
If((~tx_fifos.pe.n) & (tx_wordcount != 9999), If((~interface.pe.n) & (tx_wordcount != 9999),
idling.eq(0), idling.eq(0),
priorities.eq(tx_fifos.pe.o), priorities.eq(interface.pe.o),
tx_wordcount.eq(tx_wordcount + 1), tx_wordcount.eq(tx_wordcount + 1),
tx_fifos.source_ack[tx_fifos.pe.o].eq(1), interface.sink_ack[interface.pe.o].eq(1),
encoder.d.eq(tx_fifos.source_data[tx_fifos.pe.o]), encoder.d.eq(interface.sink_data[interface.pe.o]),
encoder.k.eq(tx_fifos.source_k[tx_fifos.pe.o]), encoder.k.eq(interface.sink_k[interface.pe.o]),
# DEBUG: # DEBUG:
If(debug_buf.sink_ack, If(debug_buf.sink_ack,
debug_buf.sink_stb.eq(1), debug_buf.sink_stb.eq(1),
debug_buf.sink_data.eq(tx_fifos.source_data[tx_fifos.pe.o]), debug_buf.sink_data.eq(interface.sink_data[interface.pe.o]),
debug_buf.sink_k.eq(tx_fifos.source_k[tx_fifos.pe.o]), debug_buf.sink_k.eq(interface.sink_k[interface.pe.o]),
) )
).Else( ).Else(
# Section 9.2.5.1 (CXP-001-2021) # Section 9.2.5.1 (CXP-001-2021)
@ -198,15 +198,15 @@ class Packets_Scheduler(Module):
).Else( ).Else(
tx_charcount.eq(tx_charcount + 1), tx_charcount.eq(tx_charcount + 1),
If(~idling, If(~idling,
tx_fifos.source_ack[priorities].eq(1), interface.sink_ack[priorities].eq(1),
encoder.d.eq(tx_fifos.source_data[priorities]), encoder.d.eq(interface.sink_data[priorities]),
encoder.k.eq(tx_fifos.source_k[priorities]), encoder.k.eq(interface.sink_k[priorities]),
# DEBUG: # DEBUG:
If(debug_buf.sink_ack, If(debug_buf.sink_ack,
debug_buf.sink_stb.eq(1), debug_buf.sink_stb.eq(1),
debug_buf.sink_data.eq(tx_fifos.source_data[priorities]), debug_buf.sink_data.eq(interface.sink_data[priorities]),
debug_buf.sink_k.eq(tx_fifos.source_k[priorities]), debug_buf.sink_k.eq(interface.sink_k[priorities]),
) )
).Else( ).Else(
encoder.d.eq(IDLE_CHARS[tx_charcount + 1][0]), encoder.d.eq(IDLE_CHARS[tx_charcount + 1][0]),
@ -227,10 +227,10 @@ class Packets_Scheduler(Module):
class PHY_Interface(Module): class PHY_Interface(Module):
def __init__(self, layout, nsink): def __init__(self, layout, nsink):
self.source_stb = Signal(nsink) self.sink_stb = Signal(nsink)
self.source_ack = Array(Signal() for _ in range(nsink)) self.sink_ack = Array(Signal() for _ in range(nsink))
self.source_data = Array(Signal(8) for _ in range(nsink)) self.sink_data = Array(Signal(8) for _ in range(nsink))
self.source_k = Array(Signal() for _ in range(nsink)) self.sink_k = Array(Signal() for _ in range(nsink))
# # # # # #
@ -240,23 +240,23 @@ class PHY_Interface(Module):
self.sinks += [sink] self.sinks += [sink]
self.sync += [ self.sync += [
If(self.source_ack[i], If(self.sink_ack[i],
# reset ack after asserted # reset ack after asserted
# since upconn clk run much slower, the ack will be high for longer than expected which will result in data loss # since upconn clk run much slower, the ack will be high for longer than expected which will result in data loss
self.source_ack[i].eq(0), self.sink_ack[i].eq(0),
sink.ack.eq(1), sink.ack.eq(1),
).Else( ).Else(
sink.ack.eq(0), sink.ack.eq(0),
), ),
self.source_stb[i].eq(sink.stb), self.sink_stb[i].eq(sink.stb),
self.source_data[i].eq(sink.data), self.sink_data[i].eq(sink.data),
self.source_k[i].eq(sink.k), self.sink_k[i].eq(sink.k),
] ]
# FIFOs transmission priority # FIFOs transmission priority
self.submodules.pe = PriorityEncoder(nsink) self.submodules.pe = PriorityEncoder(nsink)
self.comb += self.pe.i.eq(self.source_stb) self.comb += self.pe.i.eq(self.sink_stb)
class Debug_buffer(Module,AutoCSR): class Debug_buffer(Module,AutoCSR):
def __init__(self, layout): def __init__(self, layout):
@ -322,7 +322,7 @@ class CXP_UpConn_PHY(Module, AutoCSR):
self.submodules.serdes = serdes = SERDES_10bits(pad) self.submodules.serdes = serdes = SERDES_10bits(pad)
self.comb += [ self.comb += [
self.tx_busy.eq(interface.source_stb != 0), self.tx_busy.eq(interface.sink_stb != 0),
cg.reset.eq(self.clk_reset), cg.reset.eq(self.clk_reset),
cg.freq2x_enable.eq(self.bitrate2x_enable), cg.freq2x_enable.eq(self.bitrate2x_enable),