From 448815b16d3cb6f5a9fe9ad2e9d49128fd8ca51f Mon Sep 17 00:00:00 2001 From: Alex Forencich Date: Sun, 21 Mar 2021 12:25:09 -0700 Subject: [PATCH] Reset processing on assert edge only --- cocotbext/eth/gmii.py | 16 ++++++++-------- cocotbext/eth/mii.py | 16 ++++++++-------- cocotbext/eth/ptp.py | 30 +++++++++++++++--------------- cocotbext/eth/rgmii.py | 12 ++++++------ cocotbext/eth/xgmii.py | 12 ++++++------ 5 files changed, 43 insertions(+), 43 deletions(-) diff --git a/cocotbext/eth/gmii.py b/cocotbext/eth/gmii.py index a6609aa..0b83338 100644 --- a/cocotbext/eth/gmii.py +++ b/cocotbext/eth/gmii.py @@ -216,17 +216,17 @@ class GmiiSource(Reset): if self._run_cr is not None: self._run_cr.kill() self._run_cr = None + + self.active = False + self.data <= 0 + if self.er is not None: + self.er <= 0 + self.dv <= 0 else: self.log.info("Reset de-asserted") if self._run_cr is None: self._run_cr = cocotb.scheduler.start_soon(self._run()) - self.active = False - self.data <= 0 - if self.er is not None: - self.er <= 0 - self.dv <= 0 - async def _run(self): frame = None ifg_cnt = 0 @@ -379,13 +379,13 @@ class GmiiSink(Reset): if self._run_cr is not None: self._run_cr.kill() self._run_cr = None + + self.active = False else: self.log.info("Reset de-asserted") if self._run_cr is None: self._run_cr = cocotb.scheduler.start_soon(self._run()) - self.active = False - async def _run(self): frame = None self.active = False diff --git a/cocotbext/eth/mii.py b/cocotbext/eth/mii.py index 7c29049..6467e21 100644 --- a/cocotbext/eth/mii.py +++ b/cocotbext/eth/mii.py @@ -117,17 +117,17 @@ class MiiSource(Reset): if self._run_cr is not None: self._run_cr.kill() self._run_cr = None + + self.active = False + self.data <= 0 + if self.er is not None: + self.er <= 0 + self.dv <= 0 else: self.log.info("Reset de-asserted") if self._run_cr is None: self._run_cr = cocotb.scheduler.start_soon(self._run()) - self.active = False - self.data <= 0 - if self.er is not None: - self.er <= 0 - self.dv <= 0 - async def _run(self): frame = None ifg_cnt = 0 @@ -273,13 +273,13 @@ class MiiSink(Reset): if self._run_cr is not None: self._run_cr.kill() self._run_cr = None + + self.active = False else: self.log.info("Reset de-asserted") if self._run_cr is None: self._run_cr = cocotb.scheduler.start_soon(self._run()) - self.active = False - async def _run(self): frame = None self.active = False diff --git a/cocotbext/eth/ptp.py b/cocotbext/eth/ptp.py index 656ce0a..9a6f8b2 100644 --- a/cocotbext/eth/ptp.py +++ b/cocotbext/eth/ptp.py @@ -186,26 +186,26 @@ class PtpClock(Reset): if self._run_cr is not None: self._run_cr.kill() self._run_cr = None + + self.ts_96_s = 0 + self.ts_96_ns = 0 + self.ts_96_fns = 0 + self.ts_64_ns = 0 + self.ts_64_fns = 0 + self.drift_cnt = 0 + if self.ts_96 is not None: + self.ts_96 <= 0 + if self.ts_64 is not None: + self.ts_64 <= 0 + if self.ts_step is not None: + self.ts_step <= 0 + if self.pps is not None: + self.pps <= 0 else: self.log.info("Reset de-asserted") if self._run_cr is None: self._run_cr = cocotb.scheduler.start_soon(self._run()) - self.ts_96_s = 0 - self.ts_96_ns = 0 - self.ts_96_fns = 0 - self.ts_64_ns = 0 - self.ts_64_fns = 0 - self.drift_cnt = 0 - if self.ts_96 is not None: - self.ts_96 <= 0 - if self.ts_64 is not None: - self.ts_64 <= 0 - if self.ts_step is not None: - self.ts_step <= 0 - if self.pps is not None: - self.pps <= 0 - async def _run(self): while True: await RisingEdge(self.clock) diff --git a/cocotbext/eth/rgmii.py b/cocotbext/eth/rgmii.py index 510eff0..807e51f 100644 --- a/cocotbext/eth/rgmii.py +++ b/cocotbext/eth/rgmii.py @@ -117,15 +117,15 @@ class RgmiiSource(Reset): if self._run_cr is not None: self._run_cr.kill() self._run_cr = None + + self.active = False + self.data <= 0 + self.ctrl <= 0 else: self.log.info("Reset de-asserted") if self._run_cr is None: self._run_cr = cocotb.scheduler.start_soon(self._run()) - self.active = False - self.data <= 0 - self.ctrl <= 0 - async def _run(self): frame = None ifg_cnt = 0 @@ -287,13 +287,13 @@ class RgmiiSink(Reset): if self._run_cr is not None: self._run_cr.kill() self._run_cr = None + + self.active = False else: self.log.info("Reset de-asserted") if self._run_cr is None: self._run_cr = cocotb.scheduler.start_soon(self._run()) - self.active = False - async def _run(self): frame = None self.active = False diff --git a/cocotbext/eth/xgmii.py b/cocotbext/eth/xgmii.py index fc611dc..8293c8d 100644 --- a/cocotbext/eth/xgmii.py +++ b/cocotbext/eth/xgmii.py @@ -222,15 +222,15 @@ class XgmiiSource(Reset): if self._run_cr is not None: self._run_cr.kill() self._run_cr = None + + self.active = False + self.data <= 0 + self.ctrl <= 0 else: self.log.info("Reset de-asserted") if self._run_cr is None: self._run_cr = cocotb.scheduler.start_soon(self._run()) - self.active = False - self.data <= 0 - self.ctrl <= 0 - async def _run(self): frame = None ifg_cnt = 0 @@ -401,13 +401,13 @@ class XgmiiSink(Reset): if self._run_cr is not None: self._run_cr.kill() self._run_cr = None + + self.active = False else: self.log.info("Reset de-asserted") if self._run_cr is None: self._run_cr = cocotb.scheduler.start_soon(self._run()) - self.active = False - async def _run(self): frame = None self.active = False