Ejemplo n.º 1
0
    def __init__(self, dut, speed=1000e6):
        self.dut = dut

        self.log = logging.getLogger("cocotb.tb")
        self.log.setLevel(logging.DEBUG)

        cocotb.start_soon(Clock(dut.phy_gtx_clk, 8, units="ns").start())

        self.gmii_phy = GmiiPhy(dut.phy_txd,
                                dut.phy_tx_er,
                                dut.phy_tx_en,
                                dut.phy_tx_clk,
                                dut.phy_gtx_clk,
                                dut.phy_rxd,
                                dut.phy_rx_er,
                                dut.phy_rx_dv,
                                dut.phy_rx_clk,
                                dut.phy_rst,
                                speed=speed)

        if speed == 1000e6:
            self.source = GmiiSource(dut.phy_txd, dut.phy_tx_er, dut.phy_tx_en,
                                     dut.phy_gtx_clk, dut.phy_rst)
            self.source.mii_mode = False
            self.sink = GmiiSink(dut.phy_rxd, dut.phy_rx_er, dut.phy_rx_dv,
                                 dut.phy_rx_clk, dut.phy_rst)
            self.sink.mii_mode = False
        else:
            self.source = GmiiSource(dut.phy_txd, dut.phy_tx_er, dut.phy_tx_en,
                                     dut.phy_tx_clk, dut.phy_rst)
            self.source.mii_mode = True
            self.sink = GmiiSink(dut.phy_rxd, dut.phy_rx_er, dut.phy_rx_dv,
                                 dut.phy_rx_clk, dut.phy_rst)
            self.sink.mii_mode = True
Ejemplo n.º 2
0
    def __init__(self, dut, speed=1000):
        self.dut = dut

        self.log = SimLog("cocotb.tb")
        self.log.setLevel(logging.DEBUG)

        cocotb.fork(Clock(dut.clk_125mhz, 6.4, units="ns").start())
        cocotb.fork(Clock(dut.phy_gmii_clk, 8, units="ns").start())

        self.gmii_source = GmiiSource(dut.phy_gmii_rxd, dut.phy_gmii_rx_er,
                                      dut.phy_gmii_rx_dv, dut.phy_gmii_clk,
                                      dut.phy_gmii_rst, dut.phy_gmii_clk_en)
        self.gmii_sink = GmiiSink(dut.phy_gmii_txd, dut.phy_gmii_tx_er,
                                  dut.phy_gmii_tx_en, dut.phy_gmii_clk,
                                  dut.phy_gmii_rst, dut.phy_gmii_clk_en)

        dut.phy_gmii_clk_en.setimmediatevalue(1)

        dut.btnu.setimmediatevalue(0)
        dut.btnl.setimmediatevalue(0)
        dut.btnd.setimmediatevalue(0)
        dut.btnr.setimmediatevalue(0)
        dut.btnc.setimmediatevalue(0)
        dut.sw.setimmediatevalue(0)
        dut.uart_txd.setimmediatevalue(0)
        dut.uart_rts.setimmediatevalue(0)
    def __init__(self, dut):
        self.dut = dut

        self.log = logging.getLogger("cocotb.tb")
        self.log.setLevel(logging.DEBUG)

        self._enable_generator_rx = None
        self._enable_generator_tx = None
        self._enable_cr_rx = None
        self._enable_cr_tx = None

        cocotb.fork(Clock(dut.logic_clk, 8, units="ns").start())
        cocotb.fork(Clock(dut.rx_clk, 8, units="ns").start())
        cocotb.fork(Clock(dut.tx_clk, 8, units="ns").start())

        self.gmii_source = GmiiSource(dut.gmii_rxd, dut.gmii_rx_er,
                                      dut.gmii_rx_dv, dut.rx_clk, dut.rx_rst,
                                      dut.rx_clk_enable, dut.rx_mii_select)
        self.gmii_sink = GmiiSink(dut.gmii_txd, dut.gmii_tx_er, dut.gmii_tx_en,
                                  dut.tx_clk, dut.tx_rst, dut.tx_clk_enable,
                                  dut.tx_mii_select)

        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)

        dut.rx_clk_enable.setimmediatevalue(1)
        dut.tx_clk_enable.setimmediatevalue(1)
        dut.rx_mii_select.setimmediatevalue(0)
        dut.tx_mii_select.setimmediatevalue(0)
        dut.ifg_delay.setimmediatevalue(0)
Ejemplo n.º 4
0
    def __init__(self, dut):
        self.dut = dut

        self.log = SimLog("cocotb.tb")
        self.log.setLevel(logging.DEBUG)

        cocotb.start_soon(Clock(dut.clk, 6.4, units="ns").start())

        # Ethernet
        cocotb.start_soon(Clock(dut.phy_gmii_clk, 8, units="ns").start())

        self.gmii_source = GmiiSource(dut.phy_gmii_rxd, dut.phy_gmii_rx_er,
                                      dut.phy_gmii_rx_dv, dut.phy_gmii_clk,
                                      dut.phy_gmii_rst, dut.phy_gmii_clk_en)
        self.gmii_sink = GmiiSink(dut.phy_gmii_txd, dut.phy_gmii_tx_er,
                                  dut.phy_gmii_tx_en, dut.phy_gmii_clk,
                                  dut.phy_gmii_rst, dut.phy_gmii_clk_en)

        dut.phy_gmii_clk_en.setimmediatevalue(1)

        cocotb.start_soon(Clock(dut.qsfp_rx_clk_1, 6.4, units="ns").start())
        self.qsfp_1_source = XgmiiSource(dut.qsfp_rxd_1, dut.qsfp_rxc_1,
                                         dut.qsfp_rx_clk_1, dut.qsfp_rx_rst_1)
        cocotb.start_soon(Clock(dut.qsfp_tx_clk_1, 6.4, units="ns").start())
        self.qsfp_1_sink = XgmiiSink(dut.qsfp_txd_1, dut.qsfp_txc_1,
                                     dut.qsfp_tx_clk_1, dut.qsfp_tx_rst_1)

        cocotb.start_soon(Clock(dut.qsfp_rx_clk_2, 6.4, units="ns").start())
        self.qsfp_2_source = XgmiiSource(dut.qsfp_rxd_2, dut.qsfp_rxc_2,
                                         dut.qsfp_rx_clk_2, dut.qsfp_rx_rst_2)
        cocotb.start_soon(Clock(dut.qsfp_tx_clk_2, 6.4, units="ns").start())
        self.qsfp_2_sink = XgmiiSink(dut.qsfp_txd_2, dut.qsfp_txc_2,
                                     dut.qsfp_tx_clk_2, dut.qsfp_tx_rst_2)

        cocotb.start_soon(Clock(dut.qsfp_rx_clk_3, 6.4, units="ns").start())
        self.qsfp_3_source = XgmiiSource(dut.qsfp_rxd_3, dut.qsfp_rxc_3,
                                         dut.qsfp_rx_clk_3, dut.qsfp_rx_rst_3)
        cocotb.start_soon(Clock(dut.qsfp_tx_clk_3, 6.4, units="ns").start())
        self.qsfp_3_sink = XgmiiSink(dut.qsfp_txd_3, dut.qsfp_txc_3,
                                     dut.qsfp_tx_clk_3, dut.qsfp_tx_rst_3)

        cocotb.start_soon(Clock(dut.qsfp_rx_clk_4, 6.4, units="ns").start())
        self.qsfp_4_source = XgmiiSource(dut.qsfp_rxd_4, dut.qsfp_rxc_4,
                                         dut.qsfp_rx_clk_4, dut.qsfp_rx_rst_4)
        cocotb.start_soon(Clock(dut.qsfp_tx_clk_4, 6.4, units="ns").start())
        self.qsfp_4_sink = XgmiiSink(dut.qsfp_txd_4, dut.qsfp_txc_4,
                                     dut.qsfp_tx_clk_4, dut.qsfp_tx_rst_4)

        dut.btnu.setimmediatevalue(0)
        dut.btnl.setimmediatevalue(0)
        dut.btnd.setimmediatevalue(0)
        dut.btnr.setimmediatevalue(0)
        dut.btnc.setimmediatevalue(0)
        dut.sw.setimmediatevalue(0)
        dut.uart_rxd.setimmediatevalue(0)
        dut.uart_cts.setimmediatevalue(0)
Ejemplo n.º 5
0
    def __init__(self, dut):
        self.dut = dut

        self.log = logging.getLogger("cocotb.tb")
        self.log.setLevel(logging.DEBUG)

        self._enable_generator = None
        self._enable_cr = None

        cocotb.start_soon(Clock(dut.clk, 2, units="ns").start())

        self.source = GmiiSource(dut.gmii_d, dut.gmii_er, dut.gmii_en,
            dut.clk, dut.rst, dut.gmii_clk_en, dut.gmii_mii_sel)
        self.sink = GmiiSink(dut.gmii_d, dut.gmii_er, dut.gmii_en,
            dut.clk, dut.rst, dut.gmii_clk_en, dut.gmii_mii_sel)

        dut.gmii_clk_en.setimmediatevalue(1)
        dut.gmii_mii_sel.setimmediatevalue(0)
Ejemplo n.º 6
0
    def __init__(self, dut):
        self.dut = dut

        self.log = logging.getLogger("cocotb.tb")
        self.log.setLevel(logging.DEBUG)

        self._enable_generator = None
        self._enable_cr = None

        cocotb.start_soon(Clock(dut.clk, 8, units="ns").start())

        self.source = AxiStreamSource(AxiStreamBus.from_prefix(dut, "s_axis"), dut.clk, dut.rst)
        self.sink = GmiiSink(dut.gmii_txd, dut.gmii_tx_er, dut.gmii_tx_en,
            dut.clk, dut.rst, dut.clk_enable, dut.mii_select)

        dut.clk_enable.setimmediatevalue(1)
        dut.mii_select.setimmediatevalue(0)
        dut.ptp_ts.setimmediatevalue(0)
        dut.ifg_delay.setimmediatevalue(0)