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())
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())
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
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())