def __init__(self, dut): self.dut = dut self.log = logging.getLogger("cocotb.tb") self.log.setLevel(logging.DEBUG) if len(dut.serdes_tx_data) == 64: cocotb.fork(Clock(dut.rx_clk, 6.4, units="ns").start()) cocotb.fork(Clock(dut.tx_clk, 6.4, units="ns").start()) else: cocotb.fork(Clock(dut.rx_clk, 3.2, units="ns").start()) cocotb.fork(Clock(dut.tx_clk, 3.2, units="ns").start()) self.serdes_source = BaseRSerdesSource(dut.serdes_rx_data, dut.serdes_rx_hdr, dut.rx_clk, slip=dut.serdes_rx_bitslip) self.serdes_sink = BaseRSerdesSink(dut.serdes_tx_data, dut.serdes_tx_hdr, dut.tx_clk) self.axis_source = AxiStreamSource( AxiStreamBus.from_prefix(dut, "tx_axis"), dut.tx_clk, dut.tx_rst) self.axis_sink = AxiStreamSink( AxiStreamBus.from_prefix(dut, "rx_axis"), dut.rx_clk, dut.rx_rst) dut.rx_ptp_ts.setimmediatevalue(0) dut.tx_ptp_ts.setimmediatevalue(0) dut.tx_prbs31_enable.setimmediatevalue(0) dut.rx_prbs31_enable.setimmediatevalue(0)
def __init__(self, dut): self.dut = dut self.log = logging.getLogger("cocotb.tb") self.log.setLevel(logging.DEBUG) cocotb.start_soon(Clock(dut.clk, 6.4, units="ns").start()) self.source = XgmiiSource(dut.xgmii_txd, dut.xgmii_txc, dut.clk, dut.rst) self.sink = BaseRSerdesSink(dut.encoded_tx_data, dut.encoded_tx_hdr, dut.clk, scramble=False)
def __init__(self, dut): self.dut = dut self.log = logging.getLogger("cocotb.tb") self.log.setLevel(logging.DEBUG) cocotb.start_soon(Clock(dut.clk, 6.4, units="ns").start()) self.source = AxiStreamSource(AxiStreamBus.from_prefix(dut, "s_axis"), dut.clk, dut.rst) self.sink = BaseRSerdesSink(dut.encoded_tx_data, dut.encoded_tx_hdr, dut.clk, scramble=False) dut.ifg_delay.setimmediatevalue(0) dut.ptp_ts.setimmediatevalue(0)
def __init__(self, dut): self.dut = dut self.log = logging.getLogger("cocotb.tb") self.log.setLevel(logging.DEBUG) if len(dut.serdes_tx_data) == 64: self.clk_period = 6.4 else: self.clk_period = 3.2 cocotb.start_soon( Clock(dut.logic_clk, self.clk_period, units="ns").start()) cocotb.start_soon( Clock(dut.rx_clk, self.clk_period, units="ns").start()) cocotb.start_soon( Clock(dut.tx_clk, self.clk_period, units="ns").start()) self.serdes_source = BaseRSerdesSource(dut.serdes_rx_data, dut.serdes_rx_hdr, dut.rx_clk, slip=dut.serdes_rx_bitslip) self.serdes_sink = BaseRSerdesSink(dut.serdes_tx_data, dut.serdes_tx_hdr, dut.tx_clk) self.axis_source = AxiStreamSource( AxiStreamBus.from_prefix(dut, "tx_axis"), dut.logic_clk, dut.logic_rst) self.axis_sink = AxiStreamSink( AxiStreamBus.from_prefix(dut, "rx_axis"), dut.logic_clk, dut.logic_rst) self.ptp_clock = PtpClockSimTime(ts_64=dut.ptp_ts_96, clock=dut.logic_clk) self.tx_ptp_ts_sink = PtpTsSink( PtpTsBus.from_prefix(dut, "tx_axis_ptp"), dut.tx_clk, dut.tx_rst) dut.ptp_sample_clk.setimmediatevalue(0) dut.ptp_ts_step.setimmediatevalue(0) dut.tx_prbs31_enable.setimmediatevalue(0) dut.rx_prbs31_enable.setimmediatevalue(0)
def __init__(self, dut): self.dut = dut self.log = logging.getLogger("cocotb.tb") self.log.setLevel(logging.DEBUG) cocotb.fork(Clock(dut.tx_clk, 6.4, units="ns").start()) cocotb.fork(Clock(dut.rx_clk, 6.4, units="ns").start()) self.xgmii_source = XgmiiSource(dut.xgmii_txd, dut.xgmii_txc, dut.tx_clk, dut.tx_rst) self.xgmii_sink = XgmiiSink(dut.xgmii_rxd, dut.xgmii_rxc, dut.rx_clk, dut.rx_rst) self.serdes_source = BaseRSerdesSource(dut.serdes_rx_data, dut.serdes_rx_hdr, dut.rx_clk, slip=dut.serdes_rx_bitslip) self.serdes_sink = BaseRSerdesSink(dut.serdes_tx_data, dut.serdes_tx_hdr, dut.tx_clk) dut.tx_prbs31_enable.setimmediatevalue(0) dut.rx_prbs31_enable.setimmediatevalue(0)