Add reset_active_level parameters
This commit is contained in:
@@ -134,7 +134,7 @@ class GmiiFrame:
|
|||||||
|
|
||||||
class GmiiSource(Reset):
|
class GmiiSource(Reset):
|
||||||
|
|
||||||
def __init__(self, data, er, dv, clock, reset=None, enable=None, mii_select=None, *args, **kwargs):
|
def __init__(self, data, er, dv, clock, reset=None, enable=None, mii_select=None, reset_active_level=True, *args, **kwargs):
|
||||||
self.log = logging.getLogger(f"cocotb.{data._path}")
|
self.log = logging.getLogger(f"cocotb.{data._path}")
|
||||||
self.data = data
|
self.data = data
|
||||||
self.er = er
|
self.er = er
|
||||||
@@ -173,7 +173,7 @@ class GmiiSource(Reset):
|
|||||||
|
|
||||||
self._run_cr = None
|
self._run_cr = None
|
||||||
|
|
||||||
self._init_reset(reset)
|
self._init_reset(reset, reset_active_level)
|
||||||
|
|
||||||
async def send(self, frame):
|
async def send(self, frame):
|
||||||
self.send_nowait(frame)
|
self.send_nowait(frame)
|
||||||
@@ -283,7 +283,7 @@ class GmiiSource(Reset):
|
|||||||
|
|
||||||
class GmiiSink(Reset):
|
class GmiiSink(Reset):
|
||||||
|
|
||||||
def __init__(self, data, er, dv, clock, reset=None, enable=None, mii_select=None, *args, **kwargs):
|
def __init__(self, data, er, dv, clock, reset=None, enable=None, mii_select=None, reset_active_level=True, *args, **kwargs):
|
||||||
self.log = logging.getLogger(f"cocotb.{data._path}")
|
self.log = logging.getLogger(f"cocotb.{data._path}")
|
||||||
self.data = data
|
self.data = data
|
||||||
self.er = er
|
self.er = er
|
||||||
@@ -320,7 +320,7 @@ class GmiiSink(Reset):
|
|||||||
|
|
||||||
self._run_cr = None
|
self._run_cr = None
|
||||||
|
|
||||||
self._init_reset(reset)
|
self._init_reset(reset, reset_active_level)
|
||||||
|
|
||||||
async def recv(self, compact=True):
|
async def recv(self, compact=True):
|
||||||
while self.empty():
|
while self.empty():
|
||||||
@@ -439,7 +439,7 @@ class GmiiSink(Reset):
|
|||||||
|
|
||||||
class GmiiPhy:
|
class GmiiPhy:
|
||||||
def __init__(self, txd, tx_er, tx_en, tx_clk, gtx_clk, rxd, rx_er, rx_dv, rx_clk,
|
def __init__(self, txd, tx_er, tx_en, tx_clk, gtx_clk, rxd, rx_er, rx_dv, rx_clk,
|
||||||
reset=None, speed=1000e6, *args, **kwargs):
|
reset=None, reset_active_level=True, speed=1000e6, *args, **kwargs):
|
||||||
|
|
||||||
self.gtx_clk = gtx_clk
|
self.gtx_clk = gtx_clk
|
||||||
self.tx_clk = tx_clk
|
self.tx_clk = tx_clk
|
||||||
@@ -447,8 +447,8 @@ class GmiiPhy:
|
|||||||
|
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
self.tx = GmiiSink(txd, tx_er, tx_en, tx_clk, reset)
|
self.tx = GmiiSink(txd, tx_er, tx_en, tx_clk, reset, reset_active_level=reset_active_level)
|
||||||
self.rx = GmiiSource(rxd, rx_er, rx_dv, rx_clk, reset)
|
self.rx = GmiiSource(rxd, rx_er, rx_dv, rx_clk, reset_active_level=reset_active_level)
|
||||||
|
|
||||||
self.rx_clk.setimmediatevalue(0)
|
self.rx_clk.setimmediatevalue(0)
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ from .reset import Reset
|
|||||||
|
|
||||||
class MiiSource(Reset):
|
class MiiSource(Reset):
|
||||||
|
|
||||||
def __init__(self, data, er, dv, clock, reset=None, enable=None, *args, **kwargs):
|
def __init__(self, data, er, dv, clock, reset=None, enable=None, reset_active_level=True, *args, **kwargs):
|
||||||
self.log = logging.getLogger(f"cocotb.{data._path}")
|
self.log = logging.getLogger(f"cocotb.{data._path}")
|
||||||
self.data = data
|
self.data = data
|
||||||
self.er = er
|
self.er = er
|
||||||
@@ -74,7 +74,7 @@ class MiiSource(Reset):
|
|||||||
|
|
||||||
self._run_cr = None
|
self._run_cr = None
|
||||||
|
|
||||||
self._init_reset(reset)
|
self._init_reset(reset, reset_active_level)
|
||||||
|
|
||||||
async def send(self, frame):
|
async def send(self, frame):
|
||||||
self.send_nowait(frame)
|
self.send_nowait(frame)
|
||||||
@@ -180,7 +180,7 @@ class MiiSource(Reset):
|
|||||||
|
|
||||||
class MiiSink(Reset):
|
class MiiSink(Reset):
|
||||||
|
|
||||||
def __init__(self, data, er, dv, clock, reset=None, enable=None, *args, **kwargs):
|
def __init__(self, data, er, dv, clock, reset=None, enable=None, reset_active_level=True, *args, **kwargs):
|
||||||
self.log = logging.getLogger(f"cocotb.{data._path}")
|
self.log = logging.getLogger(f"cocotb.{data._path}")
|
||||||
self.data = data
|
self.data = data
|
||||||
self.er = er
|
self.er = er
|
||||||
@@ -214,7 +214,7 @@ class MiiSink(Reset):
|
|||||||
|
|
||||||
self._run_cr = None
|
self._run_cr = None
|
||||||
|
|
||||||
self._init_reset(reset)
|
self._init_reset(reset, reset_active_level)
|
||||||
|
|
||||||
async def recv(self, compact=True):
|
async def recv(self, compact=True):
|
||||||
while self.empty():
|
while self.empty():
|
||||||
@@ -327,14 +327,16 @@ class MiiSink(Reset):
|
|||||||
|
|
||||||
|
|
||||||
class MiiPhy:
|
class MiiPhy:
|
||||||
def __init__(self, txd, tx_er, tx_en, tx_clk, rxd, rx_er, rx_dv, rx_clk, reset=None, speed=100e6, *args, **kwargs):
|
def __init__(self, txd, tx_er, tx_en, tx_clk, rxd, rx_er, rx_dv, rx_clk, reset=None,
|
||||||
|
reset_active_level=True, speed=100e6, *args, **kwargs):
|
||||||
|
|
||||||
self.tx_clk = tx_clk
|
self.tx_clk = tx_clk
|
||||||
self.rx_clk = rx_clk
|
self.rx_clk = rx_clk
|
||||||
|
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
self.tx = MiiSink(txd, tx_er, tx_en, tx_clk, reset)
|
self.tx = MiiSink(txd, tx_er, tx_en, tx_clk, reset, reset_active_level=reset_active_level)
|
||||||
self.rx = MiiSource(rxd, rx_er, rx_dv, rx_clk, reset)
|
self.rx = MiiSource(rxd, rx_er, rx_dv, rx_clk, reset, reset_active_level=reset_active_level)
|
||||||
|
|
||||||
self.tx_clk.setimmediatevalue(0)
|
self.tx_clk.setimmediatevalue(0)
|
||||||
self.rx_clk.setimmediatevalue(0)
|
self.rx_clk.setimmediatevalue(0)
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ class PtpClock(Reset):
|
|||||||
pps=None,
|
pps=None,
|
||||||
clock=None,
|
clock=None,
|
||||||
reset=None,
|
reset=None,
|
||||||
|
reset_active_level=True,
|
||||||
period_ns=6.4,
|
period_ns=6.4,
|
||||||
*args, **kwargs):
|
*args, **kwargs):
|
||||||
|
|
||||||
@@ -90,7 +91,7 @@ class PtpClock(Reset):
|
|||||||
|
|
||||||
self._run_cr = None
|
self._run_cr = None
|
||||||
|
|
||||||
self._init_reset(reset)
|
self._init_reset(reset, reset_active_level)
|
||||||
|
|
||||||
def set_period(self, ns, fns):
|
def set_period(self, ns, fns):
|
||||||
self.period_ns = int(ns)
|
self.period_ns = int(ns)
|
||||||
|
|||||||
@@ -37,7 +37,9 @@ from .reset import Reset
|
|||||||
|
|
||||||
class RgmiiSource(Reset):
|
class RgmiiSource(Reset):
|
||||||
|
|
||||||
def __init__(self, data, ctrl, clock, reset=None, enable=None, mii_select=None, *args, **kwargs):
|
def __init__(self, data, ctrl, clock, reset=None, enable=None, mii_select=None,
|
||||||
|
reset_active_level=True, *args, **kwargs):
|
||||||
|
|
||||||
self.log = logging.getLogger(f"cocotb.{data._path}")
|
self.log = logging.getLogger(f"cocotb.{data._path}")
|
||||||
self.data = data
|
self.data = data
|
||||||
self.ctrl = ctrl
|
self.ctrl = ctrl
|
||||||
@@ -72,7 +74,7 @@ class RgmiiSource(Reset):
|
|||||||
|
|
||||||
self._run_cr = None
|
self._run_cr = None
|
||||||
|
|
||||||
self._init_reset(reset)
|
self._init_reset(reset, reset_active_level)
|
||||||
|
|
||||||
async def send(self, frame):
|
async def send(self, frame):
|
||||||
self.send_nowait(frame)
|
self.send_nowait(frame)
|
||||||
@@ -191,7 +193,9 @@ class RgmiiSource(Reset):
|
|||||||
|
|
||||||
class RgmiiSink(Reset):
|
class RgmiiSink(Reset):
|
||||||
|
|
||||||
def __init__(self, data, ctrl, clock, reset=None, enable=None, mii_select=None, *args, **kwargs):
|
def __init__(self, data, ctrl, clock, reset=None, enable=None, mii_select=None,
|
||||||
|
reset_active_level=True, *args, **kwargs):
|
||||||
|
|
||||||
self.log = logging.getLogger(f"cocotb.{data._path}")
|
self.log = logging.getLogger(f"cocotb.{data._path}")
|
||||||
self.data = data
|
self.data = data
|
||||||
self.ctrl = ctrl
|
self.ctrl = ctrl
|
||||||
@@ -224,7 +228,7 @@ class RgmiiSink(Reset):
|
|||||||
|
|
||||||
self._run_cr = None
|
self._run_cr = None
|
||||||
|
|
||||||
self._init_reset(reset)
|
self._init_reset(reset, reset_active_level)
|
||||||
|
|
||||||
async def recv(self, compact=True):
|
async def recv(self, compact=True):
|
||||||
while self.empty():
|
while self.empty():
|
||||||
@@ -352,14 +356,16 @@ class RgmiiSink(Reset):
|
|||||||
|
|
||||||
|
|
||||||
class RgmiiPhy:
|
class RgmiiPhy:
|
||||||
def __init__(self, txd, tx_ctl, tx_clk, rxd, rx_ctl, rx_clk, reset=None, speed=1000e6, *args, **kwargs):
|
def __init__(self, txd, tx_ctl, tx_clk, rxd, rx_ctl, rx_clk, reset=None,
|
||||||
|
reset_active_level=True, speed=1000e6, *args, **kwargs):
|
||||||
|
|
||||||
self.tx_clk = tx_clk
|
self.tx_clk = tx_clk
|
||||||
self.rx_clk = rx_clk
|
self.rx_clk = rx_clk
|
||||||
|
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
self.tx = RgmiiSink(txd, tx_ctl, tx_clk, reset)
|
self.tx = RgmiiSink(txd, tx_ctl, tx_clk, reset, reset_active_level=reset_active_level)
|
||||||
self.rx = RgmiiSource(rxd, rx_ctl, rx_clk, reset)
|
self.rx = RgmiiSource(rxd, rx_ctl, rx_clk, reset, reset_active_level=reset_active_level)
|
||||||
|
|
||||||
self.rx_clk.setimmediatevalue(0)
|
self.rx_clk.setimmediatevalue(0)
|
||||||
|
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ class XgmiiFrame:
|
|||||||
|
|
||||||
class XgmiiSource(Reset):
|
class XgmiiSource(Reset):
|
||||||
|
|
||||||
def __init__(self, data, ctrl, clock, reset=None, enable=None, *args, **kwargs):
|
def __init__(self, data, ctrl, clock, reset=None, enable=None, reset_active_level=True, *args, **kwargs):
|
||||||
self.log = logging.getLogger(f"cocotb.{data._path}")
|
self.log = logging.getLogger(f"cocotb.{data._path}")
|
||||||
self.data = data
|
self.data = data
|
||||||
self.ctrl = ctrl
|
self.ctrl = ctrl
|
||||||
@@ -179,7 +179,7 @@ class XgmiiSource(Reset):
|
|||||||
|
|
||||||
self._run_cr = None
|
self._run_cr = None
|
||||||
|
|
||||||
self._init_reset(reset)
|
self._init_reset(reset, reset_active_level)
|
||||||
|
|
||||||
async def send(self, frame):
|
async def send(self, frame):
|
||||||
self.send_nowait(frame)
|
self.send_nowait(frame)
|
||||||
@@ -313,7 +313,7 @@ class XgmiiSource(Reset):
|
|||||||
|
|
||||||
class XgmiiSink(Reset):
|
class XgmiiSink(Reset):
|
||||||
|
|
||||||
def __init__(self, data, ctrl, clock, reset=None, enable=None, *args, **kwargs):
|
def __init__(self, data, ctrl, clock, reset=None, enable=None, reset_active_level=True, *args, **kwargs):
|
||||||
self.log = logging.getLogger(f"cocotb.{data._path}")
|
self.log = logging.getLogger(f"cocotb.{data._path}")
|
||||||
self.data = data
|
self.data = data
|
||||||
self.ctrl = ctrl
|
self.ctrl = ctrl
|
||||||
@@ -342,7 +342,7 @@ class XgmiiSink(Reset):
|
|||||||
|
|
||||||
self._run_cr = None
|
self._run_cr = None
|
||||||
|
|
||||||
self._init_reset(reset)
|
self._init_reset(reset, reset_active_level)
|
||||||
|
|
||||||
async def recv(self, compact=True):
|
async def recv(self, compact=True):
|
||||||
while self.empty():
|
while self.empty():
|
||||||
|
|||||||
Reference in New Issue
Block a user