예제 #1
0
    def __init__(self, dut, speed=1000e6):
        self.dut = dut

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

        self.rgmii_phy0 = RgmiiPhy(dut.phy0_txd,
                                   dut.phy0_tx_ctl,
                                   dut.phy0_tx_clk,
                                   dut.phy0_rxd,
                                   dut.phy0_rx_ctl,
                                   dut.phy0_rx_clk,
                                   speed=speed)

        self.rgmii_phy1 = RgmiiPhy(dut.phy1_txd,
                                   dut.phy1_tx_ctl,
                                   dut.phy1_tx_clk,
                                   dut.phy1_rxd,
                                   dut.phy1_rx_ctl,
                                   dut.phy1_rx_clk,
                                   speed=speed)

        dut.phy0_int_n.setimmediatevalue(1)
        dut.phy1_int_n.setimmediatevalue(1)

        dut.btn.setimmediatevalue(0)
        dut.sw.setimmediatevalue(0)

        dut.clk.setimmediatevalue(0)
        dut.clk90.setimmediatevalue(0)

        cocotb.fork(self._run_clk())
예제 #2
0
    def __init__(self, dut, speed=1000e6):
        self.dut = dut

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

        self.rgmii_phy = RgmiiPhy(dut.phy_txd,
                                  dut.phy_tx_ctl,
                                  dut.phy_tx_clk,
                                  dut.phy_rxd,
                                  dut.phy_rx_ctl,
                                  dut.phy_rx_clk,
                                  speed=speed)

        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(1)
        dut.uart_rts.setimmediatevalue(1)

        dut.clk_125mhz.setimmediatevalue(0)
        dut.clk90_125mhz.setimmediatevalue(0)

        cocotb.fork(self._run_clk_125mhz())
    def __init__(self, dut, speed=1000e6):
        self.dut = dut

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

        self.rgmii_phy = RgmiiPhy(dut.rgmii_txd,
                                  dut.rgmii_tx_ctl,
                                  dut.rgmii_tx_clk,
                                  dut.rgmii_rxd,
                                  dut.rgmii_rx_ctl,
                                  dut.rgmii_rx_clk,
                                  speed=speed)

        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.ifg_delay.setimmediatevalue(0)

        dut.gtx_clk.setimmediatevalue(0)
        dut.gtx_clk90.setimmediatevalue(0)

        cocotb.start_soon(self._run_gtx_clk())
예제 #4
0
    def __init__(self, dut, speed=1000e6):
        self.dut = dut

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

        if speed == 1000e6:
            cocotb.start_soon(Clock(dut.phy_tx_clk, 8, units="ns").start())
        elif speed == 100e6:
            cocotb.start_soon(Clock(dut.phy_tx_clk, 40, units="ns").start())
        elif speed == 10e6:
            cocotb.start_soon(Clock(dut.phy_tx_clk, 400, units="ns").start())

        self.rgmii_phy = RgmiiPhy(dut.phy_txd,
                                  dut.phy_tx_ctl,
                                  dut.phy_tx_clk,
                                  dut.phy_rxd,
                                  dut.phy_rx_ctl,
                                  dut.phy_rx_clk,
                                  dut.phy_rst,
                                  speed=speed)

        self.source = RgmiiSource(dut.phy_txd, dut.phy_tx_ctl, dut.phy_tx_clk,
                                  dut.phy_rst)
        self.sink = RgmiiSink(dut.phy_rxd, dut.phy_rx_ctl, dut.phy_rx_clk,
                              dut.phy_rst)

        if speed == 1000e6:
            self.source.mii_mode = False
            self.sink.mii_mode = False
        else:
            self.source.mii_mode = True
            self.sink.mii_mode = True
예제 #5
0
    def __init__(self, dut, speed=1000e6):
        self.dut = dut

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

        self.rgmii_phy = RgmiiPhy(dut.phy_txd,
                                  dut.phy_tx_ctl,
                                  dut.phy_tx_clk,
                                  dut.phy_rxd,
                                  dut.phy_rx_ctl,
                                  dut.phy_rx_clk,
                                  speed=speed)

        dut.phy_int_n.setimmediatevalue(1)
        dut.phy_pme_n.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_rxd.setimmediatevalue(1)

        dut.clk.setimmediatevalue(0)
        dut.clk90.setimmediatevalue(0)

        cocotb.start_soon(self._run_clk())
    def __init__(self, dut, speed=1000e6):
        self.dut = dut

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

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

        self.rgmii_phy = RgmiiPhy(dut.rgmii_txd, dut.rgmii_tx_ctl, dut.rgmii_tx_clk,
            dut.rgmii_rxd, dut.rgmii_rx_ctl, dut.rgmii_rx_clk, speed=speed)

        self.axis_source = AxiStreamSource(dut, "tx_axis", dut.logic_clk, dut.logic_rst)
        self.axis_sink = AxiStreamSink(dut, "rx_axis", dut.logic_clk, dut.logic_rst)

        dut.ifg_delay.setimmediatevalue(0)

        dut.gtx_clk.setimmediatevalue(0)
        dut.gtx_clk90.setimmediatevalue(0)

        cocotb.fork(self._run_gtx_clk())