コード例 #1
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:
            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)
コード例 #2
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)
コード例 #3
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)

        dut.ifg_delay.setimmediatevalue(0)
        dut.ptp_ts.setimmediatevalue(0)
コード例 #4
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)
コード例 #5
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)