def __init__(self, dut): self.dut = dut self.log = logging.getLogger("cocotb.tb") self.log.setLevel(logging.DEBUG) if len(dut.xgmii_txd) == 64: self.clk_period = 6.4 else: self.clk_period = 3.2 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.xgmii_source = XgmiiSource(dut.xgmii_rxd, dut.xgmii_rxc, dut.rx_clk, dut.rx_rst) self.xgmii_sink = XgmiiSink(dut.xgmii_txd, dut.xgmii_txc, dut.tx_clk, dut.tx_rst) 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) self.rx_ptp_clock = PtpClockSimTime(ts_64=dut.rx_ptp_ts, clock=dut.rx_clk) self.tx_ptp_clock = PtpClockSimTime(ts_64=dut.tx_ptp_ts, clock=dut.tx_clk) self.tx_ptp_ts_sink = PtpTsSink( PtpTsBus.from_prefix(dut, "tx_axis_ptp"), dut.tx_clk, dut.tx_rst)
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.ptp_clock = PtpClockSimTime(ts_96=dut.ts_96, ts_64=dut.ts_64, pps=dut.pps, clock=dut.clk)
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_rxd, dut.xgmii_rxc, dut.clk, dut.rst) self.sink = AxiStreamSink(AxiStreamBus.from_prefix(dut, "m_axis"), dut.clk, dut.rst) self.ptp_clock = PtpClockSimTime(ts_64=dut.ptp_ts, clock=dut.clk)
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.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.tx_clk, dut.tx_rst) self.axis_sink = AxiStreamSink( AxiStreamBus.from_prefix(dut, "rx_axis"), dut.rx_clk, dut.rx_rst) self.rx_ptp_clock = PtpClockSimTime(ts_64=dut.rx_ptp_ts, clock=dut.rx_clk) self.tx_ptp_clock = PtpClockSimTime(ts_64=dut.tx_ptp_ts, clock=dut.tx_clk) self.tx_ptp_ts_sink = PtpTsSink( PtpTsBus.from_prefix(dut, "tx_axis_ptp"), dut.tx_clk, dut.tx_rst) 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 = 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) self.ptp_clock = PtpClockSimTime(ts_64=dut.ptp_ts, clock=dut.clk) self.ptp_ts_sink = PtpTsSink(PtpTsBus.from_prefix(dut, "m_axis_ptp"), dut.clk, dut.rst) dut.ifg_delay.setimmediatevalue(0)
def __init__(self, dut, speed=10e9): self.dut = dut self.log = logging.getLogger("cocotb.tb") self.log.setLevel(logging.DEBUG) cocotb.start_soon(Clock(dut.tx_clk, 6.4, units="ns").start()) cocotb.start_soon(Clock(dut.rx_clk, 6.4, units="ns").start()) self.mac = EthMac( tx_clk=dut.tx_clk, tx_rst=dut.tx_rst, tx_bus=AxiStreamBus.from_prefix(dut, "tx_axis"), tx_ptp_time=dut.tx_ptp_time, tx_ptp_ts=dut.tx_ptp_ts, tx_ptp_ts_tag=dut.tx_ptp_ts_tag, tx_ptp_ts_valid=dut.tx_ptp_ts_valid, rx_clk=dut.rx_clk, rx_rst=dut.rx_rst, rx_bus=AxiStreamBus.from_prefix(dut, "rx_axis"), rx_ptp_time=dut.rx_ptp_time, ifg=12, speed=speed ) self.tx_ptp = PtpClockSimTime( ts_96=dut.tx_ptp_time, clock=dut.tx_clk ) self.rx_ptp = PtpClockSimTime( ts_96=dut.rx_ptp_time, clock=dut.rx_clk ) self.source = AxiStreamSource(AxiStreamBus.from_prefix(dut, "tx_axis"), dut.tx_clk, dut.tx_rst) self.sink = AxiStreamSink(AxiStreamBus.from_prefix(dut, "rx_axis"), dut.rx_clk, dut.rx_rst)
def __init__(self, dut): self.dut = dut self.log = logging.getLogger("cocotb.tb") self.log.setLevel(logging.DEBUG) cocotb.start_soon(Clock(dut.clk, 3.2, units="ns").start()) self.source = AxiStreamSource(AxiStreamBus.from_prefix(dut, "s_axis"), dut.clk, dut.rst) self.sink = XgmiiSink(dut.xgmii_txd, dut.xgmii_txc, dut.clk, dut.rst) self.ptp_clock = PtpClockSimTime(ts_64=dut.ptp_ts, clock=dut.clk) self.ptp_ts_sink = PtpTsSink(PtpTsBus.from_prefix(dut, "m_axis_ptp"), dut.clk, dut.rst) dut.ifg_delay.setimmediatevalue(0)