From 06850793336ba3db2b08eab89a9551b7829ebb6b Mon Sep 17 00:00:00 2001 From: Florent Kermarrec Date: Thu, 12 Dec 2024 14:17:23 +0100 Subject: [PATCH] liteeth/phy/1000basex: Avoid splitting transceiver instance since no longer useful with current Python version. --- liteeth/phy/k7_1000basex.py | 5 +- liteeth/phy/ku_1000basex.py | 657 +++++++++++++++---------------- liteeth/phy/usp_gth_1000basex.py | 415 ++++++++++--------- liteeth/phy/usp_gty_1000basex.py | 473 +++++++++++----------- liteeth/phy/v7_1000basex.py | 2 - 5 files changed, 765 insertions(+), 787 deletions(-) diff --git a/liteeth/phy/k7_1000basex.py b/liteeth/phy/k7_1000basex.py index a872c73..858b20d 100644 --- a/liteeth/phy/k7_1000basex.py +++ b/liteeth/phy/k7_1000basex.py @@ -341,9 +341,8 @@ class K7_1000BASEX(LiteXModule): p_RX_DFE_XYD_CFG = 0b0000000000000, # TX Configurable Driver Attributes - p_TX_PREDRIVER_MODE = 0b0 - ) - gtx_params.update( + p_TX_PREDRIVER_MODE = 0b0, + # CPLL Ports o_CPLLFBCLKLOST = Open(), o_CPLLLOCK = pll.lock, diff --git a/liteeth/phy/ku_1000basex.py b/liteeth/phy/ku_1000basex.py index 4177a12..f5e85a8 100644 --- a/liteeth/phy/ku_1000basex.py +++ b/liteeth/phy/ku_1000basex.py @@ -200,8 +200,6 @@ class KU_1000BASEX(LiteXModule): p_PROCESS_PAR = 0b010, p_RATE_SW_USE_DRP = 0b1, p_RESET_POWERSAVE_DISABLE = 0b0, - ) - gth_params.update( p_RXBUFRESET_TIME = 0b00011, p_RXBUF_ADDR_MODE = "FAST", p_RXBUF_EIDLE_HI_CNT = 0b1000, @@ -370,341 +368,336 @@ class KU_1000BASEX(LiteXModule): p_RX_TUNE_AFE_OS = 0b10, p_RX_WIDEMODE_CDR = 0b0, p_RX_XCLK_SEL = "RXDES", - ) - gth_params.update( - p_SAS_MAX_COM = 64, - p_SAS_MIN_COM = 36, - p_SATA_BURST_SEQ_LEN = 0b1110, - p_SATA_CPLL_CFG = "VCO_3000MHZ", - p_SATA_MAX_BURST = 8, - p_SATA_MAX_INIT = 21, - p_SATA_MAX_WAKE = 7, - p_SATA_MIN_BURST = 4, - p_SATA_MIN_INIT = 12, - p_SATA_MIN_WAKE = 4, - p_SHOW_REALIGN_COMMA = "FALSE", - p_SIM_RECEIVER_DETECT_PASS = "TRUE", - p_SIM_RESET_SPEEDUP = "TRUE", - p_SIM_TX_EIDLE_DRIVE_LEVEL = 0b0, - p_SIM_VERSION = 2, - p_TAPDLY_SET_TX = 0b00, - p_TEMPERATUR_PAR = 0b0010, - p_TERM_RCAL_CFG = 0b100001000010000, - p_TERM_RCAL_OVRD = 0b000, - p_TRANS_TIME_RATE = 0b00001110, - p_TST_RSV0 = 0b00000000, - p_TST_RSV1 = 0b00000000, - p_TXBUF_EN = "TRUE", - p_TXBUF_RESET_ON_RATE_CHANGE = "TRUE", - p_TXDLY_CFG = 0b0000000000001001, - p_TXDLY_LCFG = 0b0000000001010000, - p_TXDRVBIAS_N = 0b1010, - p_TXDRVBIAS_P = 0b1010, - p_TXFIFO_ADDR_CFG = "LOW", - p_TXGBOX_FIFO_INIT_RD_ADDR = 4, - p_TXGEARBOX_EN = "FALSE", + p_SAS_MAX_COM = 64, + p_SAS_MIN_COM = 36, + p_SATA_BURST_SEQ_LEN = 0b1110, + p_SATA_CPLL_CFG = "VCO_3000MHZ", + p_SATA_MAX_BURST = 8, + p_SATA_MAX_INIT = 21, + p_SATA_MAX_WAKE = 7, + p_SATA_MIN_BURST = 4, + p_SATA_MIN_INIT = 12, + p_SATA_MIN_WAKE = 4, + p_SHOW_REALIGN_COMMA = "FALSE", + p_SIM_RECEIVER_DETECT_PASS = "TRUE", + p_SIM_RESET_SPEEDUP = "TRUE", + p_SIM_TX_EIDLE_DRIVE_LEVEL = 0b0, + p_SIM_VERSION = 2, + p_TAPDLY_SET_TX = 0b00, + p_TEMPERATUR_PAR = 0b0010, + p_TERM_RCAL_CFG = 0b100001000010000, + p_TERM_RCAL_OVRD = 0b000, + p_TRANS_TIME_RATE = 0b00001110, + p_TST_RSV0 = 0b00000000, + p_TST_RSV1 = 0b00000000, + p_TXBUF_EN = "TRUE", + p_TXBUF_RESET_ON_RATE_CHANGE = "TRUE", + p_TXDLY_CFG = 0b0000000000001001, + p_TXDLY_LCFG = 0b0000000001010000, + p_TXDRVBIAS_N = 0b1010, + p_TXDRVBIAS_P = 0b1010, + p_TXFIFO_ADDR_CFG = "LOW", + p_TXGBOX_FIFO_INIT_RD_ADDR = 4, + p_TXGEARBOX_EN = "FALSE", p_TXOUT_DIV = pll.config["d"], - p_TXPCSRESET_TIME = 0b00011, - p_TXPHDLY_CFG0 = 0b0010000000100000, - p_TXPHDLY_CFG1 = 0b0000000001110101, - p_TXPH_CFG = 0b0000100110000000, - p_TXPH_MONITOR_SEL = 0b00000, - p_TXPI_CFG0 = 0b01, - p_TXPI_CFG1 = 0b01, - p_TXPI_CFG2 = 0b01, - p_TXPI_CFG3 = 0b1, - p_TXPI_CFG4 = 0b1, - p_TXPI_CFG5 = 0b011, - p_TXPI_GRAY_SEL = 0b0, - p_TXPI_INVSTROBE_SEL = 0b0, - p_TXPI_LPM = 0b0, - p_TXPI_PPMCLK_SEL = "TXUSRCLK2", - p_TXPI_PPM_CFG = 0b00000000, - p_TXPI_SYNFREQ_PPM = 0b001, - p_TXPI_VREFSEL = 0b0, - p_TXPMARESET_TIME = 0b00011, - p_TXSYNC_MULTILANE = 0b0, - p_TXSYNC_OVRD = 0b0, - p_TXSYNC_SKIP_DA = 0b0, - p_TX_CLK25_DIV = {200e6: 8, 156.25e6: 7}[refclk_freq], - p_TX_CLKMUX_EN = 0b1, - p_TX_DATA_WIDTH = 20, - p_TX_DCD_CFG = 0b000010, - p_TX_DCD_EN = 0b0, - p_TX_DEEMPH0 = 0b000000, - p_TX_DEEMPH1 = 0b000000, - p_TX_DIVRESET_TIME = 0b00001, - p_TX_DRIVE_MODE = "DIRECT", - p_TX_EIDLE_ASSERT_DELAY = 0b100, - p_TX_EIDLE_DEASSERT_DELAY = 0b011, - p_TX_EML_PHI_TUNE = 0b0, - p_TX_FABINT_USRCLK_FLOP = 0b0, - p_TX_IDLE_DATA_ZERO = 0b0, - p_TX_INT_DATAWIDTH = 0, - p_TX_LOOPBACK_DRIVE_HIZ = "FALSE", - p_TX_MAINCURSOR_SEL = 0b0, - p_TX_MARGIN_FULL_0 = 0b1001111, - p_TX_MARGIN_FULL_1 = 0b1001110, - p_TX_MARGIN_FULL_2 = 0b1001100, - p_TX_MARGIN_FULL_3 = 0b1001010, - p_TX_MARGIN_FULL_4 = 0b1001000, - p_TX_MARGIN_LOW_0 = 0b1000110, - p_TX_MARGIN_LOW_1 = 0b1000101, - p_TX_MARGIN_LOW_2 = 0b1000011, - p_TX_MARGIN_LOW_3 = 0b1000010, - p_TX_MARGIN_LOW_4 = 0b1000000, - p_TX_MODE_SEL = 0b000, - p_TX_PMADATA_OPT = 0b0, - p_TX_PMA_POWER_SAVE = 0b0, - p_TX_PROGCLK_SEL = "CPLL", + p_TXPCSRESET_TIME = 0b00011, + p_TXPHDLY_CFG0 = 0b0010000000100000, + p_TXPHDLY_CFG1 = 0b0000000001110101, + p_TXPH_CFG = 0b0000100110000000, + p_TXPH_MONITOR_SEL = 0b00000, + p_TXPI_CFG0 = 0b01, + p_TXPI_CFG1 = 0b01, + p_TXPI_CFG2 = 0b01, + p_TXPI_CFG3 = 0b1, + p_TXPI_CFG4 = 0b1, + p_TXPI_CFG5 = 0b011, + p_TXPI_GRAY_SEL = 0b0, + p_TXPI_INVSTROBE_SEL = 0b0, + p_TXPI_LPM = 0b0, + p_TXPI_PPMCLK_SEL = "TXUSRCLK2", + p_TXPI_PPM_CFG = 0b00000000, + p_TXPI_SYNFREQ_PPM = 0b001, + p_TXPI_VREFSEL = 0b0, + p_TXPMARESET_TIME = 0b00011, + p_TXSYNC_MULTILANE = 0b0, + p_TXSYNC_OVRD = 0b0, + p_TXSYNC_SKIP_DA = 0b0, + p_TX_CLK25_DIV = {200e6: 8, 156.25e6: 7}[refclk_freq], + p_TX_CLKMUX_EN = 0b1, + p_TX_DATA_WIDTH = 20, + p_TX_DCD_CFG = 0b000010, + p_TX_DCD_EN = 0b0, + p_TX_DEEMPH0 = 0b000000, + p_TX_DEEMPH1 = 0b000000, + p_TX_DIVRESET_TIME = 0b00001, + p_TX_DRIVE_MODE = "DIRECT", + p_TX_EIDLE_ASSERT_DELAY = 0b100, + p_TX_EIDLE_DEASSERT_DELAY = 0b011, + p_TX_EML_PHI_TUNE = 0b0, + p_TX_FABINT_USRCLK_FLOP = 0b0, + p_TX_IDLE_DATA_ZERO = 0b0, + p_TX_INT_DATAWIDTH = 0, + p_TX_LOOPBACK_DRIVE_HIZ = "FALSE", + p_TX_MAINCURSOR_SEL = 0b0, + p_TX_MARGIN_FULL_0 = 0b1001111, + p_TX_MARGIN_FULL_1 = 0b1001110, + p_TX_MARGIN_FULL_2 = 0b1001100, + p_TX_MARGIN_FULL_3 = 0b1001010, + p_TX_MARGIN_FULL_4 = 0b1001000, + p_TX_MARGIN_LOW_0 = 0b1000110, + p_TX_MARGIN_LOW_1 = 0b1000101, + p_TX_MARGIN_LOW_2 = 0b1000011, + p_TX_MARGIN_LOW_3 = 0b1000010, + p_TX_MARGIN_LOW_4 = 0b1000000, + p_TX_MODE_SEL = 0b000, + p_TX_PMADATA_OPT = 0b0, + p_TX_PMA_POWER_SAVE = 0b0, + p_TX_PROGCLK_SEL = "CPLL", p_TX_PROGDIV_CFG = { 1.25e9 : 20.0*pll.config["d"]/4, 3.125e9 : 10.0*pll.config["d"]/4, }[self.linerate], - p_TX_QPI_STATUS_EN = 0b0, - p_TX_RXDETECT_CFG = 0b00000000110010, - p_TX_RXDETECT_REF = 0b100, - p_TX_SAMPLE_PERIOD = 0b111, - p_TX_SARC_LPBK_ENB = 0b0, - p_TX_XCLK_SEL = "TXOUT", - p_USE_PCS_CLK_PHASE_SEL = 0b0, - p_WB_MODE = 0b00, - ) - gth_params.update( - i_CFGRESET = 0b0, - i_CLKRSVD0 = 0b0, - i_CLKRSVD1 = 0b0, - i_CPLLLOCKDETCLK = 0b0, - i_CPLLLOCKEN = 0b1, - i_CPLLPD = pll_reset, - i_CPLLREFCLKSEL = 0b001, - i_CPLLRESET = 0b0, - i_DMONFIFORESET = 0b0, - i_DMONITORCLK = 0b0, - i_DRPADDR = 0b000000000, - i_DRPCLK = 0b0, - i_DRPDI = 0b0000000000000000, - i_DRPEN = 0b0, - i_DRPWE = 0b0, - i_EVODDPHICALDONE = 0b0, - i_EVODDPHICALSTART = 0b0, - i_EVODDPHIDRDEN = 0b0, - i_EVODDPHIDWREN = 0b0, - i_EVODDPHIXRDEN = 0b0, - i_EVODDPHIXWREN = 0b0, - i_EYESCANMODE = 0b0, - i_EYESCANRESET = 0b0, - i_EYESCANTRIGGER = 0b0, - i_GTGREFCLK = 0b0, - i_GTHRXN = data_pads.rxn, - i_GTHRXP = data_pads.rxp, - i_GTNORTHREFCLK0 = 0b0, - i_GTNORTHREFCLK1 = 0b0, - i_GTREFCLK0 = refclk, - i_GTREFCLK1 = 0b0, - i_GTRESETSEL = 0b0, - i_GTRSVD = 0b0000000000000000, - i_GTRXRESET = rx_reset, - i_GTSOUTHREFCLK0 = 0b0, - i_GTSOUTHREFCLK1 = 0b0, - i_GTTXRESET = tx_reset, - i_LOOPBACK = 0b000, - i_LPBKRXTXSEREN = 0b0, - i_LPBKTXRXSEREN = 0b0, - i_PCIEEQRXEQADAPTDONE = 0b0, - i_PCIERSTIDLE = 0b0, - i_PCIERSTTXSYNCSTART = 0b0, - i_PCIEUSERRATEDONE = 0b0, - i_PCSRSVDIN2 = 0b00000, - i_PCSRSVDIN = 0b0000000000000000, - i_PMARSVDIN = 0b00000, - i_QPLL0CLK = 0b0, - i_QPLL0REFCLK = 0b0, - i_QPLL1CLK = 0b0, - i_QPLL1REFCLK = 0b0, - i_RESETOVRD = 0b0, - i_RSTCLKENTX = 0b0, - i_RX8B10BEN = 0b0, - i_RXBUFRESET = 0b0, - i_RXCDRFREQRESET = 0b0, - i_RXCDRHOLD = 0b0, - i_RXCDROVRDEN = 0b0, - i_RXCDRRESETRSV = 0b0, - i_RXCDRRESET = 0b0, - i_RXCHBONDEN = 0b0, - i_RXCHBONDI = 0b00000, - i_RXCHBONDLEVEL = 0b000, - i_RXCHBONDMASTER = 0b0, - i_RXCHBONDSLAVE = 0b0, - i_RXCOMMADETEN = 0b1, - i_RXDFEAGCCTRL = 0b01, - i_RXDFEAGCHOLD = 0b0, - i_RXDFEAGCOVRDEN = 0b0, - i_RXDFELFHOLD = 0b0, - i_RXDFELFOVRDEN = 0b0, - i_RXDFELPMRESET = 0b0, - i_RXDFETAP10HOLD = 0b0, - i_RXDFETAP10OVRDEN = 0b0, - i_RXDFETAP11HOLD = 0b0, - i_RXDFETAP11OVRDEN = 0b0, - i_RXDFETAP12HOLD = 0b0, - i_RXDFETAP12OVRDEN = 0b0, - i_RXDFETAP13HOLD = 0b0, - i_RXDFETAP13OVRDEN = 0b0, - i_RXDFETAP14HOLD = 0b0, - i_RXDFETAP14OVRDEN = 0b0, - i_RXDFETAP15HOLD = 0b0, - i_RXDFETAP15OVRDEN = 0b0, - i_RXDFETAP2HOLD = 0b0, - i_RXDFETAP2OVRDEN = 0b0, - i_RXDFETAP3HOLD = 0b0, - i_RXDFETAP3OVRDEN = 0b0, - i_RXDFETAP4HOLD = 0b0, - i_RXDFETAP4OVRDEN = 0b0, - i_RXDFETAP5HOLD = 0b0, - i_RXDFETAP5OVRDEN = 0b0, - i_RXDFETAP6HOLD = 0b0, - i_RXDFETAP6OVRDEN = 0b0, - i_RXDFETAP7HOLD = 0b0, - i_RXDFETAP7OVRDEN = 0b0, - i_RXDFETAP8HOLD = 0b0, - i_RXDFETAP8OVRDEN = 0b0, - i_RXDFETAP9HOLD = 0b0, - i_RXDFETAP9OVRDEN = 0b0, - i_RXDFEUTHOLD = 0b0, - i_RXDFEUTOVRDEN = 0b0, - i_RXDFEVPHOLD = 0b0, - i_RXDFEVPOVRDEN = 0b0, - i_RXDFEVSEN = 0b0, - i_RXDFEXYDEN = 0b1, - i_RXDLYBYPASS = 0b1, - i_RXDLYEN = 0b0, - i_RXDLYOVRDEN = 0b0, - i_RXDLYSRESET = 0b0, - i_RXELECIDLEMODE = 0b11, - i_RXGEARBOXSLIP = 0b0, - i_RXLATCLK = 0b0, - i_RXLPMEN = 0b1, - i_RXLPMGCHOLD = 0b0, - i_RXLPMGCOVRDEN = 0b0, - i_RXLPMHFHOLD = 0b0, - i_RXLPMHFOVRDEN = 0b0, - i_RXLPMLFHOLD = 0b0, - i_RXLPMLFKLOVRDEN = 0b0, - i_RXLPMOSHOLD = 0b0, - i_RXLPMOSOVRDEN = 0b0, - i_RXMCOMMAALIGNEN = pcs.align, - i_RXMONITORSEL = 0b00, - i_RXOOBRESET = 0b0, - i_RXOSCALRESET = 0b0, - i_RXOSHOLD = 0b0, - i_RXOSINTCFG = 0b1101, - i_RXOSINTEN = 0b1, - i_RXOSINTHOLD = 0b0, - i_RXOSINTOVRDEN = 0b0, - i_RXOSINTSTROBE = 0b0, - i_RXOSINTTESTOVRDEN = 0b0, - i_RXOSOVRDEN = 0b0, - i_RXOUTCLKSEL = 0b101, - i_RXPCOMMAALIGNEN = pcs.align, - i_RXPCSRESET = 0b0, - i_RXPD = 0b00, - i_RXPHALIGNEN = 0b0, - i_RXPHALIGN = 0b0, - i_RXPHDLYPD = 0b1, - i_RXPHDLYRESET = 0b0, - i_RXPHOVRDEN = 0b0, - i_RXPLLCLKSEL = 0b00, - i_RXPMARESET = 0b0, - i_RXPOLARITY = rx_polarity, - i_RXPRBSCNTRESET = 0b0, - i_RXPRBSSEL = 0b0000, - i_RXPROGDIVRESET = 0b0, - i_RXQPIEN = 0b0, - i_RXRATEMODE = 0b0, - i_RXRATE = 0b000, - i_RXSLIDE = 0b0, - i_RXSLIPOUTCLK = 0b0, - i_RXSLIPPMA = 0b0, - i_RXSYNCALLIN = 0b0, - i_RXSYNCIN = 0b0, - i_RXSYNCMODE = 0b0, - i_RXSYSCLKSEL = 0b00, - i_RXUSERRDY = 0b1, - i_RXUSRCLK2 = ClockSignal("eth_rx_half"), - i_RXUSRCLK = ClockSignal("eth_rx_half"), - i_SIGVALIDCLK = 0b0, - i_TSTIN = 0b00000000000000000000, - i_TX8B10BBYPASS = 0b00000000, - i_TX8B10BEN = 0b0, - i_TXBUFDIFFCTRL = 0b000, - i_TXCOMINIT = 0b0, - i_TXCOMSAS = 0b0, - i_TXCOMWAKE = 0b0, - i_TXCTRL0 = Cat(*[tx_data[10*i+8] for i in range(2)]), - i_TXCTRL1 = Cat(*[tx_data[10*i+9] for i in range(2)]), - i_TXCTRL2 = 0b00000000, - i_TXDATAEXTENDRSVD = 0b00000000, - i_TXDATA = Cat(*[tx_data[10*i:10*i+8] for i in range(2)]), - i_TXDEEMPH = 0b0, - i_TXDETECTRX = 0b0, - i_TXDIFFCTRL = 0b1100, - i_TXDIFFPD = 0b0, - i_TXDLYBYPASS = 0b1, - i_TXDLYEN = 0b0, - i_TXDLYHOLD = 0b0, - i_TXDLYOVRDEN = 0b0, - i_TXDLYSRESET = 0b0, - i_TXDLYUPDOWN = 0b0, - i_TXELECIDLE = 0b0, - i_TXHEADER = 0b000000, - i_TXINHIBIT = 0b0, - i_TXLATCLK = 0b0, - i_TXMAINCURSOR = 0b1000000, - i_TXMARGIN = 0b000, - i_TXOUTCLKSEL = 0b101, - i_TXPCSRESET = 0b0, - i_TXPDELECIDLEMODE = 0b0, - i_TXPD = 0b00, - i_TXPHALIGNEN = 0b0, - i_TXPHALIGN = 0b0, - i_TXPHDLYPD = 0b1, - i_TXPHDLYRESET = 0b0, - i_TXPHDLYTSTCLK = 0b0, - i_TXPHINIT = 0b0, - i_TXPHOVRDEN = 0b0, - i_TXPIPPMEN = 0b0, - i_TXPIPPMOVRDEN = 0b0, - i_TXPIPPMPD = 0b0, - i_TXPIPPMSEL = 0b0, - i_TXPIPPMSTEPSIZE = 0b00000, - i_TXPISOPD = 0b0, - i_TXPLLCLKSEL = 0b00, - i_TXPMARESET = 0b0, - i_TXPOLARITY = tx_polarity, - i_TXPOSTCURSORINV = 0b0, - i_TXPOSTCURSOR = 0b00000, - i_TXPRBSFORCEERR = 0b0, - i_TXPRBSSEL = 0b0000, - i_TXPRECURSORINV = 0b0, - i_TXPRECURSOR = 0b00000, - i_TXPROGDIVRESET = 0b0, - i_TXQPIBIASEN = 0b0, - i_TXQPISTRONGPDOWN = 0b0, - i_TXQPIWEAKPUP = 0b0, - i_TXRATEMODE = 0b0, - i_TXRATE = 0b000, - i_TXSEQUENCE = 0b0000000, - i_TXSWING = 0b0, - i_TXSYNCALLIN = 0b0, - i_TXSYNCIN = 0b0, - i_TXSYNCMODE = 0b0, - i_TXSYSCLKSEL = 0b00, - i_TXUSERRDY = 0b1, - i_TXUSRCLK2 = ClockSignal("eth_tx_half"), - i_TXUSRCLK = ClockSignal("eth_tx_half"), - ) - gth_params.update( + p_TX_QPI_STATUS_EN = 0b0, + p_TX_RXDETECT_CFG = 0b00000000110010, + p_TX_RXDETECT_REF = 0b100, + p_TX_SAMPLE_PERIOD = 0b111, + p_TX_SARC_LPBK_ENB = 0b0, + p_TX_XCLK_SEL = "TXOUT", + p_USE_PCS_CLK_PHASE_SEL = 0b0, + p_WB_MODE = 0b00, + + i_CFGRESET = 0b0, + i_CLKRSVD0 = 0b0, + i_CLKRSVD1 = 0b0, + i_CPLLLOCKDETCLK = 0b0, + i_CPLLLOCKEN = 0b1, + i_CPLLPD = pll_reset, + i_CPLLREFCLKSEL = 0b001, + i_CPLLRESET = 0b0, + i_DMONFIFORESET = 0b0, + i_DMONITORCLK = 0b0, + i_DRPADDR = 0b000000000, + i_DRPCLK = 0b0, + i_DRPDI = 0b0000000000000000, + i_DRPEN = 0b0, + i_DRPWE = 0b0, + i_EVODDPHICALDONE = 0b0, + i_EVODDPHICALSTART = 0b0, + i_EVODDPHIDRDEN = 0b0, + i_EVODDPHIDWREN = 0b0, + i_EVODDPHIXRDEN = 0b0, + i_EVODDPHIXWREN = 0b0, + i_EYESCANMODE = 0b0, + i_EYESCANRESET = 0b0, + i_EYESCANTRIGGER = 0b0, + i_GTGREFCLK = 0b0, + i_GTHRXN = data_pads.rxn, + i_GTHRXP = data_pads.rxp, + i_GTNORTHREFCLK0 = 0b0, + i_GTNORTHREFCLK1 = 0b0, + i_GTREFCLK0 = refclk, + i_GTREFCLK1 = 0b0, + i_GTRESETSEL = 0b0, + i_GTRSVD = 0b0000000000000000, + i_GTRXRESET = rx_reset, + i_GTSOUTHREFCLK0 = 0b0, + i_GTSOUTHREFCLK1 = 0b0, + i_GTTXRESET = tx_reset, + i_LOOPBACK = 0b000, + i_LPBKRXTXSEREN = 0b0, + i_LPBKTXRXSEREN = 0b0, + i_PCIEEQRXEQADAPTDONE = 0b0, + i_PCIERSTIDLE = 0b0, + i_PCIERSTTXSYNCSTART = 0b0, + i_PCIEUSERRATEDONE = 0b0, + i_PCSRSVDIN2 = 0b00000, + i_PCSRSVDIN = 0b0000000000000000, + i_PMARSVDIN = 0b00000, + i_QPLL0CLK = 0b0, + i_QPLL0REFCLK = 0b0, + i_QPLL1CLK = 0b0, + i_QPLL1REFCLK = 0b0, + i_RESETOVRD = 0b0, + i_RSTCLKENTX = 0b0, + i_RX8B10BEN = 0b0, + i_RXBUFRESET = 0b0, + i_RXCDRFREQRESET = 0b0, + i_RXCDRHOLD = 0b0, + i_RXCDROVRDEN = 0b0, + i_RXCDRRESETRSV = 0b0, + i_RXCDRRESET = 0b0, + i_RXCHBONDEN = 0b0, + i_RXCHBONDI = 0b00000, + i_RXCHBONDLEVEL = 0b000, + i_RXCHBONDMASTER = 0b0, + i_RXCHBONDSLAVE = 0b0, + i_RXCOMMADETEN = 0b1, + i_RXDFEAGCCTRL = 0b01, + i_RXDFEAGCHOLD = 0b0, + i_RXDFEAGCOVRDEN = 0b0, + i_RXDFELFHOLD = 0b0, + i_RXDFELFOVRDEN = 0b0, + i_RXDFELPMRESET = 0b0, + i_RXDFETAP10HOLD = 0b0, + i_RXDFETAP10OVRDEN = 0b0, + i_RXDFETAP11HOLD = 0b0, + i_RXDFETAP11OVRDEN = 0b0, + i_RXDFETAP12HOLD = 0b0, + i_RXDFETAP12OVRDEN = 0b0, + i_RXDFETAP13HOLD = 0b0, + i_RXDFETAP13OVRDEN = 0b0, + i_RXDFETAP14HOLD = 0b0, + i_RXDFETAP14OVRDEN = 0b0, + i_RXDFETAP15HOLD = 0b0, + i_RXDFETAP15OVRDEN = 0b0, + i_RXDFETAP2HOLD = 0b0, + i_RXDFETAP2OVRDEN = 0b0, + i_RXDFETAP3HOLD = 0b0, + i_RXDFETAP3OVRDEN = 0b0, + i_RXDFETAP4HOLD = 0b0, + i_RXDFETAP4OVRDEN = 0b0, + i_RXDFETAP5HOLD = 0b0, + i_RXDFETAP5OVRDEN = 0b0, + i_RXDFETAP6HOLD = 0b0, + i_RXDFETAP6OVRDEN = 0b0, + i_RXDFETAP7HOLD = 0b0, + i_RXDFETAP7OVRDEN = 0b0, + i_RXDFETAP8HOLD = 0b0, + i_RXDFETAP8OVRDEN = 0b0, + i_RXDFETAP9HOLD = 0b0, + i_RXDFETAP9OVRDEN = 0b0, + i_RXDFEUTHOLD = 0b0, + i_RXDFEUTOVRDEN = 0b0, + i_RXDFEVPHOLD = 0b0, + i_RXDFEVPOVRDEN = 0b0, + i_RXDFEVSEN = 0b0, + i_RXDFEXYDEN = 0b1, + i_RXDLYBYPASS = 0b1, + i_RXDLYEN = 0b0, + i_RXDLYOVRDEN = 0b0, + i_RXDLYSRESET = 0b0, + i_RXELECIDLEMODE = 0b11, + i_RXGEARBOXSLIP = 0b0, + i_RXLATCLK = 0b0, + i_RXLPMEN = 0b1, + i_RXLPMGCHOLD = 0b0, + i_RXLPMGCOVRDEN = 0b0, + i_RXLPMHFHOLD = 0b0, + i_RXLPMHFOVRDEN = 0b0, + i_RXLPMLFHOLD = 0b0, + i_RXLPMLFKLOVRDEN = 0b0, + i_RXLPMOSHOLD = 0b0, + i_RXLPMOSOVRDEN = 0b0, + i_RXMCOMMAALIGNEN = pcs.align, + i_RXMONITORSEL = 0b00, + i_RXOOBRESET = 0b0, + i_RXOSCALRESET = 0b0, + i_RXOSHOLD = 0b0, + i_RXOSINTCFG = 0b1101, + i_RXOSINTEN = 0b1, + i_RXOSINTHOLD = 0b0, + i_RXOSINTOVRDEN = 0b0, + i_RXOSINTSTROBE = 0b0, + i_RXOSINTTESTOVRDEN = 0b0, + i_RXOSOVRDEN = 0b0, + i_RXOUTCLKSEL = 0b101, + i_RXPCOMMAALIGNEN = pcs.align, + i_RXPCSRESET = 0b0, + i_RXPD = 0b00, + i_RXPHALIGNEN = 0b0, + i_RXPHALIGN = 0b0, + i_RXPHDLYPD = 0b1, + i_RXPHDLYRESET = 0b0, + i_RXPHOVRDEN = 0b0, + i_RXPLLCLKSEL = 0b00, + i_RXPMARESET = 0b0, + i_RXPOLARITY = rx_polarity, + i_RXPRBSCNTRESET = 0b0, + i_RXPRBSSEL = 0b0000, + i_RXPROGDIVRESET = 0b0, + i_RXQPIEN = 0b0, + i_RXRATEMODE = 0b0, + i_RXRATE = 0b000, + i_RXSLIDE = 0b0, + i_RXSLIPOUTCLK = 0b0, + i_RXSLIPPMA = 0b0, + i_RXSYNCALLIN = 0b0, + i_RXSYNCIN = 0b0, + i_RXSYNCMODE = 0b0, + i_RXSYSCLKSEL = 0b00, + i_RXUSERRDY = 0b1, + i_RXUSRCLK2 = ClockSignal("eth_rx_half"), + i_RXUSRCLK = ClockSignal("eth_rx_half"), + i_SIGVALIDCLK = 0b0, + i_TSTIN = 0b00000000000000000000, + i_TX8B10BBYPASS = 0b00000000, + i_TX8B10BEN = 0b0, + i_TXBUFDIFFCTRL = 0b000, + i_TXCOMINIT = 0b0, + i_TXCOMSAS = 0b0, + i_TXCOMWAKE = 0b0, + i_TXCTRL0 = Cat(*[tx_data[10*i+8] for i in range(2)]), + i_TXCTRL1 = Cat(*[tx_data[10*i+9] for i in range(2)]), + i_TXCTRL2 = 0b00000000, + i_TXDATAEXTENDRSVD = 0b00000000, + i_TXDATA = Cat(*[tx_data[10*i:10*i+8] for i in range(2)]), + i_TXDEEMPH = 0b0, + i_TXDETECTRX = 0b0, + i_TXDIFFCTRL = 0b1100, + i_TXDIFFPD = 0b0, + i_TXDLYBYPASS = 0b1, + i_TXDLYEN = 0b0, + i_TXDLYHOLD = 0b0, + i_TXDLYOVRDEN = 0b0, + i_TXDLYSRESET = 0b0, + i_TXDLYUPDOWN = 0b0, + i_TXELECIDLE = 0b0, + i_TXHEADER = 0b000000, + i_TXINHIBIT = 0b0, + i_TXLATCLK = 0b0, + i_TXMAINCURSOR = 0b1000000, + i_TXMARGIN = 0b000, + i_TXOUTCLKSEL = 0b101, + i_TXPCSRESET = 0b0, + i_TXPDELECIDLEMODE = 0b0, + i_TXPD = 0b00, + i_TXPHALIGNEN = 0b0, + i_TXPHALIGN = 0b0, + i_TXPHDLYPD = 0b1, + i_TXPHDLYRESET = 0b0, + i_TXPHDLYTSTCLK = 0b0, + i_TXPHINIT = 0b0, + i_TXPHOVRDEN = 0b0, + i_TXPIPPMEN = 0b0, + i_TXPIPPMOVRDEN = 0b0, + i_TXPIPPMPD = 0b0, + i_TXPIPPMSEL = 0b0, + i_TXPIPPMSTEPSIZE = 0b00000, + i_TXPISOPD = 0b0, + i_TXPLLCLKSEL = 0b00, + i_TXPMARESET = 0b0, + i_TXPOLARITY = tx_polarity, + i_TXPOSTCURSORINV = 0b0, + i_TXPOSTCURSOR = 0b00000, + i_TXPRBSFORCEERR = 0b0, + i_TXPRBSSEL = 0b0000, + i_TXPRECURSORINV = 0b0, + i_TXPRECURSOR = 0b00000, + i_TXPROGDIVRESET = 0b0, + i_TXQPIBIASEN = 0b0, + i_TXQPISTRONGPDOWN = 0b0, + i_TXQPIWEAKPUP = 0b0, + i_TXRATEMODE = 0b0, + i_TXRATE = 0b000, + i_TXSEQUENCE = 0b0000000, + i_TXSWING = 0b0, + i_TXSYNCALLIN = 0b0, + i_TXSYNCIN = 0b0, + i_TXSYNCMODE = 0b0, + i_TXSYSCLKSEL = 0b00, + i_TXUSERRDY = 0b1, + i_TXUSRCLK2 = ClockSignal("eth_tx_half"), + i_TXUSRCLK = ClockSignal("eth_tx_half"), o_BUFGTCE = Open(), o_BUFGTCEMASK = Open(), o_BUFGTDIV = Open(), diff --git a/liteeth/phy/usp_gth_1000basex.py b/liteeth/phy/usp_gth_1000basex.py index bb59dba..1c2c1ed 100644 --- a/liteeth/phy/usp_gth_1000basex.py +++ b/liteeth/phy/usp_gth_1000basex.py @@ -229,8 +229,6 @@ class USP_GTH_1000BASEX(LiteXModule): p_PROCESS_PAR = 0b010, p_RATE_SW_USE_DRP = 0b1, p_RESET_POWERSAVE_DISABLE = 0b0, - ) - gth_params.update( p_RXBUFRESET_TIME = 0b00011, p_RXBUF_ADDR_MODE = "FULL", p_RXBUF_EIDLE_HI_CNT = 0b1000, @@ -560,214 +558,211 @@ class USP_GTH_1000BASEX(LiteXModule): p_USB_U2_SAS_MIN_COM = 36, p_USE_PCS_CLK_PHASE_SEL = 0b0, p_Y_ALL_MODE = 0b0, - ) - gth_params.update( - i_CFGRESET = 0b0, - i_CLKRSVD0 = 0b0, - i_CLKRSVD1 = 0b0, - i_CPLLLOCKDETCLK = 0b0, - i_CPLLLOCKEN = 0b1, - i_CPLLPD = pll_reset, - i_CPLLREFCLKSEL = 0b001, - i_CPLLRESET = 0b0, - i_DMONFIFORESET = 0b0, - i_DMONITORCLK = 0b0, - i_DRPADDR = 0b000000000, - i_DRPCLK = 0b0, - i_DRPDI = 0b0000000000000000, - i_DRPEN = 0b0, - i_DRPWE = 0b0, - i_EYESCANRESET = 0b0, - i_EYESCANTRIGGER = 0b0, - i_GTGREFCLK = refclk if refclk_from_fabric else 0b0, - i_GTHRXN = data_pads.rxn, - i_GTHRXP = data_pads.rxp, - i_GTNORTHREFCLK0 = 0b0, - i_GTNORTHREFCLK1 = 0b0, - i_GTREFCLK0 = refclk if not refclk_from_fabric else 0b0, - i_GTREFCLK1 = 0b0, - i_GTRSVD = 0b0000000000000000, - i_GTRXRESET = rx_reset, - i_GTSOUTHREFCLK0 = 0b0, - i_GTSOUTHREFCLK1 = 0b0, - i_GTTXRESET = tx_reset, - i_LOOPBACK = 0b000, - i_PCIEEQRXEQADAPTDONE = 0b0, - i_PCIERSTIDLE = 0b0, - i_PCIERSTTXSYNCSTART = 0b0, - i_PCIEUSERRATEDONE = 0b0, - i_QPLL0CLK = 0b0, - i_QPLL0REFCLK = 0b0, - i_QPLL1CLK = 0b0, - i_QPLL1REFCLK = 0b0, - i_RESETOVRD = 0b0, - i_RX8B10BEN = 0b0, - i_RXBUFRESET = 0b0, - i_RXCDRFREQRESET = 0b0, - i_RXCDRHOLD = 0b0, - i_RXCDROVRDEN = 0b0, - i_RXCDRRESET = 0b0, - i_RXCHBONDEN = 0b0, - i_RXCHBONDI = 0b00000, - i_RXCHBONDLEVEL = 0b000, - i_RXCHBONDMASTER = 0b0, - i_RXCHBONDSLAVE = 0b0, - i_RXCOMMADETEN = 0b1, - i_RXDFEAGCCTRL = 0b01, - i_RXDFEAGCHOLD = 0b0, - i_RXDFEAGCOVRDEN = 0b0, - i_RXDFELFHOLD = 0b0, - i_RXDFELFOVRDEN = 0b0, - i_RXDFELPMRESET = 0b0, - i_RXDFETAP10HOLD = 0b0, - i_RXDFETAP10OVRDEN = 0b0, - i_RXDFETAP11HOLD = 0b0, - i_RXDFETAP11OVRDEN = 0b0, - i_RXDFETAP12HOLD = 0b0, - i_RXDFETAP12OVRDEN = 0b0, - i_RXDFETAP13HOLD = 0b0, - i_RXDFETAP13OVRDEN = 0b0, - i_RXDFETAP14HOLD = 0b0, - i_RXDFETAP14OVRDEN = 0b0, - i_RXDFETAP15HOLD = 0b0, - i_RXDFETAP15OVRDEN = 0b0, - i_RXDFETAP2HOLD = 0b0, - i_RXDFETAP2OVRDEN = 0b0, - i_RXDFETAP3HOLD = 0b0, - i_RXDFETAP3OVRDEN = 0b0, - i_RXDFETAP4HOLD = 0b0, - i_RXDFETAP4OVRDEN = 0b0, - i_RXDFETAP5HOLD = 0b0, - i_RXDFETAP5OVRDEN = 0b0, - i_RXDFETAP6HOLD = 0b0, - i_RXDFETAP6OVRDEN = 0b0, - i_RXDFETAP7HOLD = 0b0, - i_RXDFETAP7OVRDEN = 0b0, - i_RXDFETAP8HOLD = 0b0, - i_RXDFETAP8OVRDEN = 0b0, - i_RXDFETAP9HOLD = 0b0, - i_RXDFETAP9OVRDEN = 0b0, - i_RXDFEUTHOLD = 0b0, - i_RXDFEUTOVRDEN = 0b0, - i_RXDFEVPHOLD = 0b0, - i_RXDFEVPOVRDEN = 0b0, - i_RXDFEXYDEN = 0b1, - i_RXDLYBYPASS = 0b1, - i_RXDLYEN = 0b0, - i_RXDLYOVRDEN = 0b0, - i_RXDLYSRESET = 0b0, - i_RXELECIDLEMODE = 0b11, - i_RXGEARBOXSLIP = 0b0, - i_RXLATCLK = 0b0, - i_RXLPMEN = 0b1, - i_RXLPMGCHOLD = 0b0, - i_RXLPMGCOVRDEN = 0b0, - i_RXLPMHFHOLD = 0b0, - i_RXLPMHFOVRDEN = 0b0, - i_RXLPMLFHOLD = 0b0, - i_RXLPMLFKLOVRDEN = 0b0, - i_RXLPMOSHOLD = 0b0, - i_RXLPMOSOVRDEN = 0b0, - i_RXMCOMMAALIGNEN = pcs.align, - i_RXMONITORSEL = 0b00, - i_RXOOBRESET = 0b0, - i_RXOSCALRESET = 0b0, - i_RXOSHOLD = 0b0, - i_RXOSOVRDEN = 0b0, - i_RXOUTCLKSEL = 0b101, - i_RXPCOMMAALIGNEN = pcs.align, - i_RXPCSRESET = 0b0, - i_RXPD = 0b00, - i_RXPHALIGNEN = 0b0, - i_RXPHALIGN = 0b0, - i_RXPHDLYPD = 0b1, - i_RXPHDLYRESET = 0b0, - i_RXPHOVRDEN = 0b0, - i_RXPLLCLKSEL = 0b00, - i_RXPMARESET = 0b0, - i_RXPOLARITY = rx_polarity, - i_RXPRBSCNTRESET = 0b0, - i_RXPRBSSEL = 0b0000, - i_RXPROGDIVRESET = 0b0, - i_RXQPIEN = 0b0, - i_RXRATEMODE = 0b0, - i_RXRATE = 0b000, - i_RXSLIDE = 0b0, - i_RXSLIPOUTCLK = 0b0, - i_RXSLIPPMA = 0b0, - i_RXSYNCALLIN = 0b0, - i_RXSYNCIN = 0b0, - i_RXSYNCMODE = 0b0, - i_RXSYSCLKSEL = 0b00, - i_RXUSERRDY = 0b1, - i_RXUSRCLK2 = ClockSignal("eth_rx_half"), - i_RXUSRCLK = ClockSignal("eth_rx_half"), - i_SIGVALIDCLK = 0b0, - i_TSTIN = 0b00000000000000000000, - i_TX8B10BBYPASS = 0b00000000, - i_TX8B10BEN = 0b0, - i_TXCOMINIT = 0b0, - i_TXCOMSAS = 0b0, - i_TXCOMWAKE = 0b0, - i_TXCTRL0 = Cat(*[tx_data[10*i+8] for i in range(2)]), - i_TXCTRL1 = Cat(*[tx_data[10*i+9] for i in range(2)]), - i_TXCTRL2 = 0b00000000, - i_TXDATAEXTENDRSVD = 0b00000000, - i_TXDATA = Cat(*[tx_data[10*i:10*i+8] for i in range(2)]), - i_TXDEEMPH = 0b0, - i_TXDETECTRX = 0b0, - i_TXDIFFCTRL = 0b1100, - i_TXDLYBYPASS = 0b1, - i_TXDLYEN = 0b0, - i_TXDLYHOLD = 0b0, - i_TXDLYOVRDEN = 0b0, - i_TXDLYSRESET = 0b0, - i_TXDLYUPDOWN = 0b0, - i_TXELECIDLE = 0b0, - i_TXHEADER = 0b000000, - i_TXINHIBIT = 0b0, - i_TXLATCLK = 0b0, - i_TXMAINCURSOR = 0b1000000, - i_TXMARGIN = 0b000, - i_TXOUTCLKSEL = 0b101, - i_TXPCSRESET = 0b0, - i_TXPDELECIDLEMODE = 0b0, - i_TXPD = 0b00, - i_TXPHALIGNEN = 0b0, - i_TXPHALIGN = 0b0, - i_TXPHDLYPD = 0b1, - i_TXPHDLYRESET = 0b0, - i_TXPHDLYTSTCLK = 0b0, - i_TXPHINIT = 0b0, - i_TXPHOVRDEN = 0b0, - i_TXPIPPMEN = 0b0, - i_TXPIPPMOVRDEN = 0b0, - i_TXPIPPMPD = 0b0, - i_TXPIPPMSEL = 0b0, - i_TXPIPPMSTEPSIZE = 0b00000, - i_TXPISOPD = 0b0, - i_TXPLLCLKSEL = 0b00, - i_TXPMARESET = 0b0, - i_TXPOLARITY = tx_polarity, - i_TXPRBSFORCEERR = 0b0, - i_TXPRBSSEL = 0b0000, - i_TXPRECURSOR = 0b00000, - i_TXPROGDIVRESET = 0b0, - i_TXQPIBIASEN = 0b0, - i_TXQPIWEAKPUP = 0b0, - i_TXRATEMODE = 0b0, - i_TXRATE = 0b000, - i_TXSEQUENCE = 0b0000000, - i_TXSWING = 0b0, - i_TXSYNCALLIN = 0b0, - i_TXSYNCIN = 0b0, - i_TXSYNCMODE = 0b0, - i_TXSYSCLKSEL = 0b00, - i_TXUSERRDY = 0b1, - i_TXUSRCLK2 = ClockSignal("eth_tx_half"), - i_TXUSRCLK = ClockSignal("eth_tx_half"), - ) - gth_params.update( + + i_CFGRESET = 0b0, + i_CLKRSVD0 = 0b0, + i_CLKRSVD1 = 0b0, + i_CPLLLOCKDETCLK = 0b0, + i_CPLLLOCKEN = 0b1, + i_CPLLPD = pll_reset, + i_CPLLREFCLKSEL = 0b001, + i_CPLLRESET = 0b0, + i_DMONFIFORESET = 0b0, + i_DMONITORCLK = 0b0, + i_DRPADDR = 0b000000000, + i_DRPCLK = 0b0, + i_DRPDI = 0b0000000000000000, + i_DRPEN = 0b0, + i_DRPWE = 0b0, + i_EYESCANRESET = 0b0, + i_EYESCANTRIGGER = 0b0, + i_GTGREFCLK = refclk if refclk_from_fabric else 0b0, + i_GTHRXN = data_pads.rxn, + i_GTHRXP = data_pads.rxp, + i_GTNORTHREFCLK0 = 0b0, + i_GTNORTHREFCLK1 = 0b0, + i_GTREFCLK0 = refclk if not refclk_from_fabric else 0b0, + i_GTREFCLK1 = 0b0, + i_GTRSVD = 0b0000000000000000, + i_GTRXRESET = rx_reset, + i_GTSOUTHREFCLK0 = 0b0, + i_GTSOUTHREFCLK1 = 0b0, + i_GTTXRESET = tx_reset, + i_LOOPBACK = 0b000, + i_PCIEEQRXEQADAPTDONE = 0b0, + i_PCIERSTIDLE = 0b0, + i_PCIERSTTXSYNCSTART = 0b0, + i_PCIEUSERRATEDONE = 0b0, + i_QPLL0CLK = 0b0, + i_QPLL0REFCLK = 0b0, + i_QPLL1CLK = 0b0, + i_QPLL1REFCLK = 0b0, + i_RESETOVRD = 0b0, + i_RX8B10BEN = 0b0, + i_RXBUFRESET = 0b0, + i_RXCDRFREQRESET = 0b0, + i_RXCDRHOLD = 0b0, + i_RXCDROVRDEN = 0b0, + i_RXCDRRESET = 0b0, + i_RXCHBONDEN = 0b0, + i_RXCHBONDI = 0b00000, + i_RXCHBONDLEVEL = 0b000, + i_RXCHBONDMASTER = 0b0, + i_RXCHBONDSLAVE = 0b0, + i_RXCOMMADETEN = 0b1, + i_RXDFEAGCCTRL = 0b01, + i_RXDFEAGCHOLD = 0b0, + i_RXDFEAGCOVRDEN = 0b0, + i_RXDFELFHOLD = 0b0, + i_RXDFELFOVRDEN = 0b0, + i_RXDFELPMRESET = 0b0, + i_RXDFETAP10HOLD = 0b0, + i_RXDFETAP10OVRDEN = 0b0, + i_RXDFETAP11HOLD = 0b0, + i_RXDFETAP11OVRDEN = 0b0, + i_RXDFETAP12HOLD = 0b0, + i_RXDFETAP12OVRDEN = 0b0, + i_RXDFETAP13HOLD = 0b0, + i_RXDFETAP13OVRDEN = 0b0, + i_RXDFETAP14HOLD = 0b0, + i_RXDFETAP14OVRDEN = 0b0, + i_RXDFETAP15HOLD = 0b0, + i_RXDFETAP15OVRDEN = 0b0, + i_RXDFETAP2HOLD = 0b0, + i_RXDFETAP2OVRDEN = 0b0, + i_RXDFETAP3HOLD = 0b0, + i_RXDFETAP3OVRDEN = 0b0, + i_RXDFETAP4HOLD = 0b0, + i_RXDFETAP4OVRDEN = 0b0, + i_RXDFETAP5HOLD = 0b0, + i_RXDFETAP5OVRDEN = 0b0, + i_RXDFETAP6HOLD = 0b0, + i_RXDFETAP6OVRDEN = 0b0, + i_RXDFETAP7HOLD = 0b0, + i_RXDFETAP7OVRDEN = 0b0, + i_RXDFETAP8HOLD = 0b0, + i_RXDFETAP8OVRDEN = 0b0, + i_RXDFETAP9HOLD = 0b0, + i_RXDFETAP9OVRDEN = 0b0, + i_RXDFEUTHOLD = 0b0, + i_RXDFEUTOVRDEN = 0b0, + i_RXDFEVPHOLD = 0b0, + i_RXDFEVPOVRDEN = 0b0, + i_RXDFEXYDEN = 0b1, + i_RXDLYBYPASS = 0b1, + i_RXDLYEN = 0b0, + i_RXDLYOVRDEN = 0b0, + i_RXDLYSRESET = 0b0, + i_RXELECIDLEMODE = 0b11, + i_RXGEARBOXSLIP = 0b0, + i_RXLATCLK = 0b0, + i_RXLPMEN = 0b1, + i_RXLPMGCHOLD = 0b0, + i_RXLPMGCOVRDEN = 0b0, + i_RXLPMHFHOLD = 0b0, + i_RXLPMHFOVRDEN = 0b0, + i_RXLPMLFHOLD = 0b0, + i_RXLPMLFKLOVRDEN = 0b0, + i_RXLPMOSHOLD = 0b0, + i_RXLPMOSOVRDEN = 0b0, + i_RXMCOMMAALIGNEN = pcs.align, + i_RXMONITORSEL = 0b00, + i_RXOOBRESET = 0b0, + i_RXOSCALRESET = 0b0, + i_RXOSHOLD = 0b0, + i_RXOSOVRDEN = 0b0, + i_RXOUTCLKSEL = 0b101, + i_RXPCOMMAALIGNEN = pcs.align, + i_RXPCSRESET = 0b0, + i_RXPD = 0b00, + i_RXPHALIGNEN = 0b0, + i_RXPHALIGN = 0b0, + i_RXPHDLYPD = 0b1, + i_RXPHDLYRESET = 0b0, + i_RXPHOVRDEN = 0b0, + i_RXPLLCLKSEL = 0b00, + i_RXPMARESET = 0b0, + i_RXPOLARITY = rx_polarity, + i_RXPRBSCNTRESET = 0b0, + i_RXPRBSSEL = 0b0000, + i_RXPROGDIVRESET = 0b0, + i_RXQPIEN = 0b0, + i_RXRATEMODE = 0b0, + i_RXRATE = 0b000, + i_RXSLIDE = 0b0, + i_RXSLIPOUTCLK = 0b0, + i_RXSLIPPMA = 0b0, + i_RXSYNCALLIN = 0b0, + i_RXSYNCIN = 0b0, + i_RXSYNCMODE = 0b0, + i_RXSYSCLKSEL = 0b00, + i_RXUSERRDY = 0b1, + i_RXUSRCLK2 = ClockSignal("eth_rx_half"), + i_RXUSRCLK = ClockSignal("eth_rx_half"), + i_SIGVALIDCLK = 0b0, + i_TSTIN = 0b00000000000000000000, + i_TX8B10BBYPASS = 0b00000000, + i_TX8B10BEN = 0b0, + i_TXCOMINIT = 0b0, + i_TXCOMSAS = 0b0, + i_TXCOMWAKE = 0b0, + i_TXCTRL0 = Cat(*[tx_data[10*i+8] for i in range(2)]), + i_TXCTRL1 = Cat(*[tx_data[10*i+9] for i in range(2)]), + i_TXCTRL2 = 0b00000000, + i_TXDATAEXTENDRSVD = 0b00000000, + i_TXDATA = Cat(*[tx_data[10*i:10*i+8] for i in range(2)]), + i_TXDEEMPH = 0b0, + i_TXDETECTRX = 0b0, + i_TXDIFFCTRL = 0b1100, + i_TXDLYBYPASS = 0b1, + i_TXDLYEN = 0b0, + i_TXDLYHOLD = 0b0, + i_TXDLYOVRDEN = 0b0, + i_TXDLYSRESET = 0b0, + i_TXDLYUPDOWN = 0b0, + i_TXELECIDLE = 0b0, + i_TXHEADER = 0b000000, + i_TXINHIBIT = 0b0, + i_TXLATCLK = 0b0, + i_TXMAINCURSOR = 0b1000000, + i_TXMARGIN = 0b000, + i_TXOUTCLKSEL = 0b101, + i_TXPCSRESET = 0b0, + i_TXPDELECIDLEMODE = 0b0, + i_TXPD = 0b00, + i_TXPHALIGNEN = 0b0, + i_TXPHALIGN = 0b0, + i_TXPHDLYPD = 0b1, + i_TXPHDLYRESET = 0b0, + i_TXPHDLYTSTCLK = 0b0, + i_TXPHINIT = 0b0, + i_TXPHOVRDEN = 0b0, + i_TXPIPPMEN = 0b0, + i_TXPIPPMOVRDEN = 0b0, + i_TXPIPPMPD = 0b0, + i_TXPIPPMSEL = 0b0, + i_TXPIPPMSTEPSIZE = 0b00000, + i_TXPISOPD = 0b0, + i_TXPLLCLKSEL = 0b00, + i_TXPMARESET = 0b0, + i_TXPOLARITY = tx_polarity, + i_TXPRBSFORCEERR = 0b0, + i_TXPRBSSEL = 0b0000, + i_TXPRECURSOR = 0b00000, + i_TXPROGDIVRESET = 0b0, + i_TXQPIBIASEN = 0b0, + i_TXQPIWEAKPUP = 0b0, + i_TXRATEMODE = 0b0, + i_TXRATE = 0b000, + i_TXSEQUENCE = 0b0000000, + i_TXSWING = 0b0, + i_TXSYNCALLIN = 0b0, + i_TXSYNCIN = 0b0, + i_TXSYNCMODE = 0b0, + i_TXSYSCLKSEL = 0b00, + i_TXUSERRDY = 0b1, + i_TXUSRCLK2 = ClockSignal("eth_tx_half"), + i_TXUSRCLK = ClockSignal("eth_tx_half"), o_BUFGTCE = Open(), o_BUFGTCEMASK = Open(), o_BUFGTDIV = Open(), diff --git a/liteeth/phy/usp_gty_1000basex.py b/liteeth/phy/usp_gty_1000basex.py index cdc65be..31c1bac 100644 --- a/liteeth/phy/usp_gty_1000basex.py +++ b/liteeth/phy/usp_gty_1000basex.py @@ -233,8 +233,6 @@ class USP_GTY_1000BASEX(LiteXModule): p_PCIE_RXPMA_CFG = 0b0010100000001010, p_PCIE_TXPCS_CFG_GEN3 = 0b0010110010100100, p_PCIE_TXPMA_CFG = 0b0010100000001010, - ) - gty_params.update( p_PCS_PCIE_EN = "FALSE", p_PCS_RSVD0 = 0b0000000000000000, p_PD_TRANS_TIME_FROM_P2 = 0b000000111100, @@ -342,8 +340,6 @@ class USP_GTY_1000BASEX(LiteXModule): p_RXDFE_UT_CFG2 = 0b0000000000000000, p_RXDFE_VP_CFG0 = 0b0000000000000000, p_RXDFE_VP_CFG1 = 0b0000000000110011, - ) - gty_params.update( p_RXDLY_CFG = 0b0000000000010000, p_RXDLY_LCFG = 0b0000000000110000, p_RXELECIDLE_CFG = "SIGCFG_4", @@ -574,242 +570,239 @@ class USP_GTY_1000BASEX(LiteXModule): p_USB_U2_SAS_MAX_COM = 64, p_USB_U2_SAS_MIN_COM = 36, p_USE_PCS_CLK_PHASE_SEL = 0b0, - ) - gty_params.update( - i_CDRSTEPDIR = 0b0, - i_CDRSTEPSQ = 0b0, - i_CDRSTEPSX = 0b0, - i_CFGRESET = 0b0, - i_CLKRSVD0 = 0b0, - i_CLKRSVD1 = 0b0, - i_CPLLFREQLOCK = 0b0, - i_CPLLLOCKDETCLK = 0b0, - i_CPLLLOCKEN = 0b1, - i_CPLLPD = pll_reset, - i_CPLLREFCLKSEL = 0b001, - i_CPLLRESET = 0b0, - i_DMONFIFORESET = 0b0, - i_DMONITORCLK = 0b0, - i_DRPADDR = 0b000000000, - i_DRPCLK = 0b0, - i_DRPDI = 0b0000000000000000, - i_DRPEN = 0b0, - i_DRPRST = 0b0, - i_DRPWE = 0b0, - i_EYESCANRESET = 0b0, - i_EYESCANTRIGGER = 0b0, - i_FREQOS = 0b0, - i_GTGREFCLK = refclk if refclk_from_fabric else 0b0, - i_GTNORTHREFCLK0 = 0b0, - i_GTNORTHREFCLK1 = 0b0, - i_GTREFCLK0 = refclk if not refclk_from_fabric else 0b0, - i_GTREFCLK1 = 0b0, - i_GTRSVD = 0b0, - i_GTRXRESET = rx_reset, - i_GTRXRESETSEL = 0b0, - i_GTSOUTHREFCLK0 = 0b0, - i_GTSOUTHREFCLK1 = 0b0, - i_GTTXRESET = tx_reset, - i_GTTXRESETSEL = 0b0, - i_GTYRXN = data_pads.rxn, - i_GTYRXP = data_pads.rxp, - i_INCPCTRL = 0b0, - i_LOOPBACK = 0b0, - i_PCIEEQRXEQADAPTDONE = 0b0, - i_PCIERSTIDLE = 0b0, - i_PCIERSTTXSYNCSTART = 0b0, - i_PCIEUSERRATEDONE = 0b0, - i_PCSRSVDIN = 0b0, - i_QPLL0CLK = 0b0, - i_QPLL0FREQLOCK = 0b0, - i_QPLL0REFCLK = 0b0, - i_QPLL1CLK = 0b0, - i_QPLL1FREQLOCK = 0b0, - i_QPLL1REFCLK = 0b0, - i_RESETOVRD = 0b0, - i_RX8B10BEN = 0b0, - i_RXAFECFOKEN = 0b0, - i_RXBUFRESET = 0b0, - i_RXCDRFREQRESET = 0b0, - i_RXCDRHOLD = 0b0, - i_RXCDROVRDEN = 0b0, - i_RXCDRRESET = 0b0, - i_RXCHBONDEN = 0b0, - i_RXCHBONDI = 0b0, - i_RXCHBONDLEVEL = 0b0, - i_RXCHBONDMASTER = 0b0, - i_RXCHBONDSLAVE = 0b0, - i_RXCKCALRESET = 0b0, - i_RXCKCALSTART = 0b0, - i_RXCOMMADETEN = 0b1, - i_RXDFEAGCHOLD = 0b0, - i_RXDFEAGCOVRDEN = 0b0, - i_RXDFECFOKFCNUM = 0b0, - i_RXDFECFOKFEN = 0b0, - i_RXDFECFOKFPULSE = 0b0, - i_RXDFECFOKHOLD = 0b0, - i_RXDFECFOKOVREN = 0b0, - i_RXDFEKHHOLD = 0b0, - i_RXDFEKHOVRDEN = 0b0, - i_RXDFELFHOLD = 0b0, - i_RXDFELFOVRDEN = 0b0, - i_RXDFELPMRESET = 0b0, - i_RXDFETAP10HOLD = 0b0, - i_RXDFETAP10OVRDEN = 0b0, - i_RXDFETAP11HOLD = 0b0, - i_RXDFETAP11OVRDEN = 0b0, - i_RXDFETAP12HOLD = 0b0, - i_RXDFETAP12OVRDEN = 0b0, - i_RXDFETAP13HOLD = 0b0, - i_RXDFETAP13OVRDEN = 0b0, - i_RXDFETAP14HOLD = 0b0, - i_RXDFETAP14OVRDEN = 0b0, - i_RXDFETAP15HOLD = 0b0, - i_RXDFETAP15OVRDEN = 0b0, - i_RXDFETAP2HOLD = 0b0, - i_RXDFETAP2OVRDEN = 0b0, - i_RXDFETAP3HOLD = 0b0, - i_RXDFETAP3OVRDEN = 0b0, - i_RXDFETAP4HOLD = 0b0, - i_RXDFETAP4OVRDEN = 0b0, - i_RXDFETAP5HOLD = 0b0, - i_RXDFETAP5OVRDEN = 0b0, - i_RXDFETAP6HOLD = 0b0, - i_RXDFETAP6OVRDEN = 0b0, - i_RXDFETAP7HOLD = 0b0, - i_RXDFETAP7OVRDEN = 0b0, - i_RXDFETAP8HOLD = 0b0, - i_RXDFETAP8OVRDEN = 0b0, - i_RXDFETAP9HOLD = 0b0, - i_RXDFETAP9OVRDEN = 0b0, - i_RXDFEUTHOLD = 0b0, - i_RXDFEUTOVRDEN = 0b0, - i_RXDFEVPHOLD = 0b0, - i_RXDFEVPOVRDEN = 0b0, - i_RXDFEXYDEN = 0b1, - i_RXDLYBYPASS = 0b1, - i_RXDLYEN = 0b0, - i_RXDLYOVRDEN = 0b0, - i_RXDLYSRESET = 0b0, - i_RXELECIDLEMODE = 0b11, - i_RXEQTRAINING = 0b0, - i_RXGEARBOXSLIP = 0b0, - i_RXLATCLK = 0b0, - i_RXLPMEN = 0b1, - i_RXLPMGCHOLD = 0b0, - i_RXLPMGCOVRDEN = 0b0, - i_RXLPMHFHOLD = 0b0, - i_RXLPMHFOVRDEN = 0b0, - i_RXLPMLFHOLD = 0b0, - i_RXLPMLFKLOVRDEN = 0b0, - i_RXLPMOSHOLD = 0b0, - i_RXLPMOSOVRDEN = 0b0, - i_RXMCOMMAALIGNEN = pcs.align, - i_RXMONITORSEL = 0b00, - i_RXOOBRESET = 0b0, - i_RXOSCALRESET = 0b0, - i_RXOSHOLD = 0b0, - i_RXOSOVRDEN = 0b0, - i_RXOUTCLKSEL = 0b101, - i_RXPCOMMAALIGNEN = pcs.align, - i_RXPCSRESET = 0b0, - i_RXPD = 0b00, - i_RXPHALIGN = 0b0, - i_RXPHALIGNEN = 0b0, - i_RXPHDLYPD = 0b1, - i_RXPHDLYRESET = 0b0, - i_RXPLLCLKSEL = 0b00, - i_RXPMARESET = 0b0, - i_RXPOLARITY = rx_polarity, - i_RXPRBSCNTRESET = 0b0, - i_RXPRBSSEL = 0b0000, - i_RXPROGDIVRESET = 0b0, - i_RXRATE = 0b000, - i_RXRATEMODE = 0b0, - i_RXSLIDE = 0b0, - i_RXSLIPOUTCLK = 0b0, - i_RXSLIPPMA = 0b0, - i_RXSYNCALLIN = 0b0, - i_RXSYNCIN = 0b0, - i_RXSYNCMODE = 0b0, - i_RXSYSCLKSEL = 0b00, - i_RXTERMINATION = 0b0, - i_RXUSERRDY = 0b1, - i_RXUSRCLK2 = ClockSignal("eth_rx_half"), - i_RXUSRCLK = ClockSignal("eth_rx_half"), - i_SIGVALIDCLK = 0b0, - i_TSTIN = 0b00000000000000000000, - i_TX8B10BBYPASS = 0b00000000, - i_TX8B10BEN = 0b0, - i_TXCOMINIT = 0b0, - i_TXCOMSAS = 0b0, - i_TXCOMWAKE = 0b0, - i_TXCTRL0 = Cat(*[tx_data[10*i+8] for i in range(2)]), - i_TXCTRL1 = Cat(*[tx_data[10*i+9] for i in range(2)]), - i_TXCTRL2 = 0b00000000, - i_TXDATA = Cat(*[tx_data[10*i:10*i+8] for i in range(2)]), - i_TXDATAEXTENDRSVD = 0b0, - i_TXDCCFORCESTART = 0b0, - i_TXDCCRESET = 0b0, - i_TXDEEMPH = 0b0, - i_TXDETECTRX = 0b0, - i_TXDIFFCTRL = 0b1100, - i_TXDLYBYPASS = 0b1, - i_TXDLYEN = 0b0, - i_TXDLYHOLD = 0b0, - i_TXDLYOVRDEN = 0b0, - i_TXDLYSRESET = 0b0, - i_TXDLYUPDOWN = 0b0, - i_TXELECIDLE = 0b0, - i_TXHEADER = 0b000000, - i_TXINHIBIT = 0b0, - i_TXLATCLK = 0b0, - i_TXLFPSTRESET = 0b0, - i_TXLFPSU2LPEXIT = 0b0, - i_TXLFPSU3WAKE = 0b0, - i_TXMAINCURSOR = 0b1000000, - i_TXMARGIN = 0b000, - i_TXMUXDCDEXHOLD = 0b0, - i_TXMUXDCDORWREN = 0b0, - i_TXONESZEROS = 0b0, - i_TXOUTCLKSEL = 0b101, - i_TXPCSRESET = 0b0, - i_TXPD = 0b00, - i_TXPDELECIDLEMODE = 0b0, - i_TXPHALIGN = 0b0, - i_TXPHALIGNEN = 0b0, - i_TXPHDLYPD = 0b1, - i_TXPHDLYRESET = 0b0, - i_TXPHDLYTSTCLK = 0b0, - i_TXPHINIT = 0b0, - i_TXPHOVRDEN = 0b0, - i_TXPIPPMEN = 0b0, - i_TXPIPPMOVRDEN = 0b0, - i_TXPIPPMPD = 0b0, - i_TXPIPPMSEL = 0b0, - i_TXPIPPMSTEPSIZE = 0b00000, - i_TXPISOPD = 0b0, - i_TXPLLCLKSEL = 0b00, - i_TXPMARESET = 0b0, - i_TXPOLARITY = tx_polarity, - i_TXPOSTCURSOR = 0b00000, - i_TXPRBSFORCEERR = 0b0, - i_TXPRBSSEL = 0b0000, - i_TXPRECURSOR = 0b00000, - i_TXPROGDIVRESET = 0b0, - i_TXRATE = 0b000, - i_TXRATEMODE = 0b0, - i_TXSEQUENCE = 0b0000000, - i_TXSWING = 0b0, - i_TXSYNCALLIN = 0b0, - i_TXSYNCIN = 0b0, - i_TXSYNCMODE = 0b0, - i_TXSYSCLKSEL = 0b00, - i_TXUSERRDY = 0b1, - i_TXUSRCLK2 = ClockSignal("eth_tx_half"), - i_TXUSRCLK = ClockSignal("eth_tx_half"), - ) - gty_params.update( + + i_CDRSTEPDIR = 0b0, + i_CDRSTEPSQ = 0b0, + i_CDRSTEPSX = 0b0, + i_CFGRESET = 0b0, + i_CLKRSVD0 = 0b0, + i_CLKRSVD1 = 0b0, + i_CPLLFREQLOCK = 0b0, + i_CPLLLOCKDETCLK = 0b0, + i_CPLLLOCKEN = 0b1, + i_CPLLPD = pll_reset, + i_CPLLREFCLKSEL = 0b001, + i_CPLLRESET = 0b0, + i_DMONFIFORESET = 0b0, + i_DMONITORCLK = 0b0, + i_DRPADDR = 0b000000000, + i_DRPCLK = 0b0, + i_DRPDI = 0b0000000000000000, + i_DRPEN = 0b0, + i_DRPRST = 0b0, + i_DRPWE = 0b0, + i_EYESCANRESET = 0b0, + i_EYESCANTRIGGER = 0b0, + i_FREQOS = 0b0, + i_GTGREFCLK = refclk if refclk_from_fabric else 0b0, + i_GTNORTHREFCLK0 = 0b0, + i_GTNORTHREFCLK1 = 0b0, + i_GTREFCLK0 = refclk if not refclk_from_fabric else 0b0, + i_GTREFCLK1 = 0b0, + i_GTRSVD = 0b0, + i_GTRXRESET = rx_reset, + i_GTRXRESETSEL = 0b0, + i_GTSOUTHREFCLK0 = 0b0, + i_GTSOUTHREFCLK1 = 0b0, + i_GTTXRESET = tx_reset, + i_GTTXRESETSEL = 0b0, + i_GTYRXN = data_pads.rxn, + i_GTYRXP = data_pads.rxp, + i_INCPCTRL = 0b0, + i_LOOPBACK = 0b0, + i_PCIEEQRXEQADAPTDONE = 0b0, + i_PCIERSTIDLE = 0b0, + i_PCIERSTTXSYNCSTART = 0b0, + i_PCIEUSERRATEDONE = 0b0, + i_PCSRSVDIN = 0b0, + i_QPLL0CLK = 0b0, + i_QPLL0FREQLOCK = 0b0, + i_QPLL0REFCLK = 0b0, + i_QPLL1CLK = 0b0, + i_QPLL1FREQLOCK = 0b0, + i_QPLL1REFCLK = 0b0, + i_RESETOVRD = 0b0, + i_RX8B10BEN = 0b0, + i_RXAFECFOKEN = 0b0, + i_RXBUFRESET = 0b0, + i_RXCDRFREQRESET = 0b0, + i_RXCDRHOLD = 0b0, + i_RXCDROVRDEN = 0b0, + i_RXCDRRESET = 0b0, + i_RXCHBONDEN = 0b0, + i_RXCHBONDI = 0b0, + i_RXCHBONDLEVEL = 0b0, + i_RXCHBONDMASTER = 0b0, + i_RXCHBONDSLAVE = 0b0, + i_RXCKCALRESET = 0b0, + i_RXCKCALSTART = 0b0, + i_RXCOMMADETEN = 0b1, + i_RXDFEAGCHOLD = 0b0, + i_RXDFEAGCOVRDEN = 0b0, + i_RXDFECFOKFCNUM = 0b0, + i_RXDFECFOKFEN = 0b0, + i_RXDFECFOKFPULSE = 0b0, + i_RXDFECFOKHOLD = 0b0, + i_RXDFECFOKOVREN = 0b0, + i_RXDFEKHHOLD = 0b0, + i_RXDFEKHOVRDEN = 0b0, + i_RXDFELFHOLD = 0b0, + i_RXDFELFOVRDEN = 0b0, + i_RXDFELPMRESET = 0b0, + i_RXDFETAP10HOLD = 0b0, + i_RXDFETAP10OVRDEN = 0b0, + i_RXDFETAP11HOLD = 0b0, + i_RXDFETAP11OVRDEN = 0b0, + i_RXDFETAP12HOLD = 0b0, + i_RXDFETAP12OVRDEN = 0b0, + i_RXDFETAP13HOLD = 0b0, + i_RXDFETAP13OVRDEN = 0b0, + i_RXDFETAP14HOLD = 0b0, + i_RXDFETAP14OVRDEN = 0b0, + i_RXDFETAP15HOLD = 0b0, + i_RXDFETAP15OVRDEN = 0b0, + i_RXDFETAP2HOLD = 0b0, + i_RXDFETAP2OVRDEN = 0b0, + i_RXDFETAP3HOLD = 0b0, + i_RXDFETAP3OVRDEN = 0b0, + i_RXDFETAP4HOLD = 0b0, + i_RXDFETAP4OVRDEN = 0b0, + i_RXDFETAP5HOLD = 0b0, + i_RXDFETAP5OVRDEN = 0b0, + i_RXDFETAP6HOLD = 0b0, + i_RXDFETAP6OVRDEN = 0b0, + i_RXDFETAP7HOLD = 0b0, + i_RXDFETAP7OVRDEN = 0b0, + i_RXDFETAP8HOLD = 0b0, + i_RXDFETAP8OVRDEN = 0b0, + i_RXDFETAP9HOLD = 0b0, + i_RXDFETAP9OVRDEN = 0b0, + i_RXDFEUTHOLD = 0b0, + i_RXDFEUTOVRDEN = 0b0, + i_RXDFEVPHOLD = 0b0, + i_RXDFEVPOVRDEN = 0b0, + i_RXDFEXYDEN = 0b1, + i_RXDLYBYPASS = 0b1, + i_RXDLYEN = 0b0, + i_RXDLYOVRDEN = 0b0, + i_RXDLYSRESET = 0b0, + i_RXELECIDLEMODE = 0b11, + i_RXEQTRAINING = 0b0, + i_RXGEARBOXSLIP = 0b0, + i_RXLATCLK = 0b0, + i_RXLPMEN = 0b1, + i_RXLPMGCHOLD = 0b0, + i_RXLPMGCOVRDEN = 0b0, + i_RXLPMHFHOLD = 0b0, + i_RXLPMHFOVRDEN = 0b0, + i_RXLPMLFHOLD = 0b0, + i_RXLPMLFKLOVRDEN = 0b0, + i_RXLPMOSHOLD = 0b0, + i_RXLPMOSOVRDEN = 0b0, + i_RXMCOMMAALIGNEN = pcs.align, + i_RXMONITORSEL = 0b00, + i_RXOOBRESET = 0b0, + i_RXOSCALRESET = 0b0, + i_RXOSHOLD = 0b0, + i_RXOSOVRDEN = 0b0, + i_RXOUTCLKSEL = 0b101, + i_RXPCOMMAALIGNEN = pcs.align, + i_RXPCSRESET = 0b0, + i_RXPD = 0b00, + i_RXPHALIGN = 0b0, + i_RXPHALIGNEN = 0b0, + i_RXPHDLYPD = 0b1, + i_RXPHDLYRESET = 0b0, + i_RXPLLCLKSEL = 0b00, + i_RXPMARESET = 0b0, + i_RXPOLARITY = rx_polarity, + i_RXPRBSCNTRESET = 0b0, + i_RXPRBSSEL = 0b0000, + i_RXPROGDIVRESET = 0b0, + i_RXRATE = 0b000, + i_RXRATEMODE = 0b0, + i_RXSLIDE = 0b0, + i_RXSLIPOUTCLK = 0b0, + i_RXSLIPPMA = 0b0, + i_RXSYNCALLIN = 0b0, + i_RXSYNCIN = 0b0, + i_RXSYNCMODE = 0b0, + i_RXSYSCLKSEL = 0b00, + i_RXTERMINATION = 0b0, + i_RXUSERRDY = 0b1, + i_RXUSRCLK2 = ClockSignal("eth_rx_half"), + i_RXUSRCLK = ClockSignal("eth_rx_half"), + i_SIGVALIDCLK = 0b0, + i_TSTIN = 0b00000000000000000000, + i_TX8B10BBYPASS = 0b00000000, + i_TX8B10BEN = 0b0, + i_TXCOMINIT = 0b0, + i_TXCOMSAS = 0b0, + i_TXCOMWAKE = 0b0, + i_TXCTRL0 = Cat(*[tx_data[10*i+8] for i in range(2)]), + i_TXCTRL1 = Cat(*[tx_data[10*i+9] for i in range(2)]), + i_TXCTRL2 = 0b00000000, + i_TXDATA = Cat(*[tx_data[10*i:10*i+8] for i in range(2)]), + i_TXDATAEXTENDRSVD = 0b0, + i_TXDCCFORCESTART = 0b0, + i_TXDCCRESET = 0b0, + i_TXDEEMPH = 0b0, + i_TXDETECTRX = 0b0, + i_TXDIFFCTRL = 0b1100, + i_TXDLYBYPASS = 0b1, + i_TXDLYEN = 0b0, + i_TXDLYHOLD = 0b0, + i_TXDLYOVRDEN = 0b0, + i_TXDLYSRESET = 0b0, + i_TXDLYUPDOWN = 0b0, + i_TXELECIDLE = 0b0, + i_TXHEADER = 0b000000, + i_TXINHIBIT = 0b0, + i_TXLATCLK = 0b0, + i_TXLFPSTRESET = 0b0, + i_TXLFPSU2LPEXIT = 0b0, + i_TXLFPSU3WAKE = 0b0, + i_TXMAINCURSOR = 0b1000000, + i_TXMARGIN = 0b000, + i_TXMUXDCDEXHOLD = 0b0, + i_TXMUXDCDORWREN = 0b0, + i_TXONESZEROS = 0b0, + i_TXOUTCLKSEL = 0b101, + i_TXPCSRESET = 0b0, + i_TXPD = 0b00, + i_TXPDELECIDLEMODE = 0b0, + i_TXPHALIGN = 0b0, + i_TXPHALIGNEN = 0b0, + i_TXPHDLYPD = 0b1, + i_TXPHDLYRESET = 0b0, + i_TXPHDLYTSTCLK = 0b0, + i_TXPHINIT = 0b0, + i_TXPHOVRDEN = 0b0, + i_TXPIPPMEN = 0b0, + i_TXPIPPMOVRDEN = 0b0, + i_TXPIPPMPD = 0b0, + i_TXPIPPMSEL = 0b0, + i_TXPIPPMSTEPSIZE = 0b00000, + i_TXPISOPD = 0b0, + i_TXPLLCLKSEL = 0b00, + i_TXPMARESET = 0b0, + i_TXPOLARITY = tx_polarity, + i_TXPOSTCURSOR = 0b00000, + i_TXPRBSFORCEERR = 0b0, + i_TXPRBSSEL = 0b0000, + i_TXPRECURSOR = 0b00000, + i_TXPROGDIVRESET = 0b0, + i_TXRATE = 0b000, + i_TXRATEMODE = 0b0, + i_TXSEQUENCE = 0b0000000, + i_TXSWING = 0b0, + i_TXSYNCALLIN = 0b0, + i_TXSYNCIN = 0b0, + i_TXSYNCMODE = 0b0, + i_TXSYSCLKSEL = 0b00, + i_TXUSERRDY = 0b1, + i_TXUSRCLK2 = ClockSignal("eth_tx_half"), + i_TXUSRCLK = ClockSignal("eth_tx_half"), o_BUFGTCE = Open(), o_BUFGTCEMASK = Open(), o_BUFGTDIV = Open(), diff --git a/liteeth/phy/v7_1000basex.py b/liteeth/phy/v7_1000basex.py index d5bbdf4..c8a2d83 100644 --- a/liteeth/phy/v7_1000basex.py +++ b/liteeth/phy/v7_1000basex.py @@ -343,8 +343,6 @@ class V7_1000BASEX(LiteXModule): # TX Configurable Driver Attributes p_TX_QPI_STATUS_EN = 0b0, - ) - gth_params.update( # CPLL Ports o_CPLLFBCLKLOST = Open(), o_CPLLLOCK = pll.lock,