Remove await ReadOnly

This commit is contained in:
Alex Forencich
2020-12-24 00:28:16 -08:00
parent 0456e4af60
commit d97208d3c8
6 changed files with 24 additions and 49 deletions

View File

@@ -28,7 +28,7 @@ import zlib
from collections import deque from collections import deque
import cocotb import cocotb
from cocotb.triggers import RisingEdge, ReadOnly, Timer, First, Event from cocotb.triggers import RisingEdge, Timer, First, Event
from cocotb.utils import get_sim_time from cocotb.utils import get_sim_time
from .version import __version__ from .version import __version__
@@ -184,10 +184,9 @@ class GmiiSource(object):
self.active = False self.active = False
while True: while True:
await ReadOnly() await RisingEdge(self.clock)
if self.reset is not None and self.reset.value: if self.reset is not None and self.reset.value:
await RisingEdge(self.clock)
frame = None frame = None
ifg_cnt = 0 ifg_cnt = 0
self.active = False self.active = False
@@ -197,8 +196,6 @@ class GmiiSource(object):
self.dv <= 0 self.dv <= 0
continue continue
await RisingEdge(self.clock)
if self.enable is None or self.enable.value: if self.enable is None or self.enable.value:
if ifg_cnt > 0: if ifg_cnt > 0:
# in IFG # in IFG
@@ -318,10 +315,9 @@ class GmiiSink(object):
self.active = False self.active = False
while True: while True:
await ReadOnly() await RisingEdge(self.clock)
if self.reset is not None and self.reset.value: if self.reset is not None and self.reset.value:
await RisingEdge(self.clock)
frame = None frame = None
self.active = False self.active = False
continue continue
@@ -375,5 +371,3 @@ class GmiiSink(object):
if frame is not None: if frame is not None:
frame.data.append(d_val) frame.data.append(d_val)
frame.error.append(er_val) frame.error.append(er_val)
await RisingEdge(self.clock)

View File

@@ -26,7 +26,7 @@ import logging
from collections import deque from collections import deque
import cocotb import cocotb
from cocotb.triggers import RisingEdge, ReadOnly, Timer, First, Event from cocotb.triggers import RisingEdge, Timer, First, Event
from cocotb.utils import get_sim_time from cocotb.utils import get_sim_time
from .version import __version__ from .version import __version__
@@ -103,10 +103,9 @@ class MiiSource(object):
self.active = False self.active = False
while True: while True:
await ReadOnly() await RisingEdge(self.clock)
if self.reset is not None and self.reset.value: if self.reset is not None and self.reset.value:
await RisingEdge(self.clock)
frame = None frame = None
ifg_cnt = 0 ifg_cnt = 0
self.active = False self.active = False
@@ -116,8 +115,6 @@ class MiiSource(object):
self.dv <= 0 self.dv <= 0
continue continue
await RisingEdge(self.clock)
if self.enable is None or self.enable.value: if self.enable is None or self.enable.value:
if ifg_cnt > 0: if ifg_cnt > 0:
# in IFG # in IFG
@@ -235,10 +232,9 @@ class MiiSink(object):
self.active = False self.active = False
while True: while True:
await ReadOnly() await RisingEdge(self.clock)
if self.reset is not None and self.reset.value: if self.reset is not None and self.reset.value:
await RisingEdge(self.clock)
frame = None frame = None
self.active = False self.active = False
continue continue
@@ -290,5 +286,3 @@ class MiiSink(object):
if frame is not None: if frame is not None:
frame.data.append(d_val) frame.data.append(d_val)
frame.error.append(er_val) frame.error.append(er_val)
await RisingEdge(self.clock)

View File

@@ -27,7 +27,7 @@ import math
from fractions import Fraction from fractions import Fraction
import cocotb import cocotb
from cocotb.triggers import RisingEdge, ReadOnly from cocotb.triggers import RisingEdge
from .version import __version__ from .version import __version__
@@ -178,10 +178,9 @@ class PtpClock(object):
async def _run(self): async def _run(self):
while True: while True:
await ReadOnly() await RisingEdge(self.clock)
if self.reset is not None and self.reset.value: if self.reset is not None and self.reset.value:
await RisingEdge(self.clock)
self.ts_96_s = 0 self.ts_96_s = 0
self.ts_96_ns = 0 self.ts_96_ns = 0
self.ts_96_fns = 0 self.ts_96_fns = 0
@@ -198,8 +197,6 @@ class PtpClock(object):
self.pps <= 0 self.pps <= 0
continue continue
await RisingEdge(self.clock)
if self.ts_step is not None: if self.ts_step is not None:
self.ts_step <= self.ts_updated self.ts_step <= self.ts_updated
self.ts_updated = False self.ts_updated = False

View File

@@ -26,7 +26,7 @@ import logging
from collections import deque from collections import deque
import cocotb import cocotb
from cocotb.triggers import RisingEdge, FallingEdge, ReadOnly, Timer, First, Event from cocotb.triggers import RisingEdge, FallingEdge, Timer, First, Event
from cocotb.utils import get_sim_time from cocotb.utils import get_sim_time
from .version import __version__ from .version import __version__
@@ -103,10 +103,9 @@ class RgmiiSource(object):
en = 0 en = 0
while True: while True:
await ReadOnly() await RisingEdge(self.clock)
if self.reset is not None and self.reset.value: if self.reset is not None and self.reset.value:
await RisingEdge(self.clock)
frame = None frame = None
ifg_cnt = 0 ifg_cnt = 0
self.active = False self.active = False
@@ -114,8 +113,6 @@ class RgmiiSource(object):
self.ctrl <= 0 self.ctrl <= 0
continue continue
await RisingEdge(self.clock)
if self.mii_select is None or not self.mii_select.value: if self.mii_select is None or not self.mii_select.value:
# send high nibble after rising edge, leading in to falling edge # send high nibble after rising edge, leading in to falling edge
self.data <= d >> 4 self.data <= d >> 4
@@ -243,15 +240,20 @@ class RgmiiSink(object):
er_val = 0 er_val = 0
while True: while True:
await ReadOnly() await RisingEdge(self.clock)
# capture low nibble on rising edge
d_val = self.data.value.integer
dv_val = self.ctrl.value.integer
await FallingEdge(self.clock)
if self.reset is not None and self.reset.value: if self.reset is not None and self.reset.value:
await RisingEdge(self.clock)
frame = None frame = None
self.active = False self.active = False
continue continue
# capture high nibble after rising edge, leading in to falling edge # capture high nibble on falling edge
d_val |= self.data.value.integer << 4 d_val |= self.data.value.integer << 4
er_val = dv_val ^ self.ctrl.value.integer er_val = dv_val ^ self.ctrl.value.integer
@@ -301,12 +303,3 @@ class RgmiiSink(object):
if frame is not None: if frame is not None:
frame.data.append(d_val) frame.data.append(d_val)
frame.error.append(er_val) frame.error.append(er_val)
await FallingEdge(self.clock)
await ReadOnly()
# capture low nibble after falling edge, leading in to rising edge
d_val = self.data.value.integer
dv_val = self.ctrl.value.integer
await RisingEdge(self.clock)

View File

@@ -28,7 +28,7 @@ import zlib
from collections import deque from collections import deque
import cocotb import cocotb
from cocotb.triggers import RisingEdge, ReadOnly, Timer, First, Event from cocotb.triggers import RisingEdge, Timer, First, Event
from cocotb.utils import get_sim_time from cocotb.utils import get_sim_time
from .version import __version__ from .version import __version__
@@ -192,10 +192,9 @@ class XgmiiSource(object):
self.active = False self.active = False
while True: while True:
await ReadOnly() await RisingEdge(self.clock)
if self.reset is not None and self.reset.value: if self.reset is not None and self.reset.value:
await RisingEdge(self.clock)
frame = None frame = None
ifg_cnt = 0 ifg_cnt = 0
deficit_idle_cnt = 0 deficit_idle_cnt = 0
@@ -204,8 +203,6 @@ class XgmiiSource(object):
self.ctrl <= 0 self.ctrl <= 0
continue continue
await RisingEdge(self.clock)
if self.enable is None or self.enable.value: if self.enable is None or self.enable.value:
if ifg_cnt + deficit_idle_cnt > self.byte_width-1 or (not self.enable_dic and ifg_cnt > 4): if ifg_cnt + deficit_idle_cnt > self.byte_width-1 or (not self.enable_dic and ifg_cnt > 4):
# in IFG # in IFG
@@ -345,10 +342,9 @@ class XgmiiSink(object):
self.active = False self.active = False
while True: while True:
await ReadOnly() await RisingEdge(self.clock)
if self.reset is not None and self.reset.value: if self.reset is not None and self.reset.value:
await RisingEdge(self.clock)
frame = None frame = None
self.active = False self.active = False
continue continue
@@ -385,5 +381,3 @@ class XgmiiSink(object):
else: else:
frame.data.append(d_val) frame.data.append(d_val)
frame.ctrl.append(c_val) frame.ctrl.append(c_val)
await RisingEdge(self.clock)

View File

@@ -116,6 +116,7 @@ async def run_load_timestamps(dut):
tb.ptp_clock.set_ts_96(12345678) tb.ptp_clock.set_ts_96(12345678)
tb.ptp_clock.set_ts_64(12345678) tb.ptp_clock.set_ts_64(12345678)
await RisingEdge(dut.clk)
await RisingEdge(dut.clk) await RisingEdge(dut.clk)
assert dut.ts_96.value.integer == 12345678+((tb.ptp_clock.period_ns << 16) + tb.ptp_clock.period_fns) assert dut.ts_96.value.integer == 12345678+((tb.ptp_clock.period_ns << 16) + tb.ptp_clock.period_fns)
@@ -164,6 +165,8 @@ async def run_seconds_increment(dut):
tb.ptp_clock.set_ts_64(999990000*2**16) tb.ptp_clock.set_ts_64(999990000*2**16)
await RisingEdge(dut.clk) await RisingEdge(dut.clk)
await RisingEdge(dut.clk)
start_time = get_sim_time('sec') start_time = get_sim_time('sec')
start_ts_96 = (dut.ts_96.value.integer >> 48) + ((dut.ts_96.value.integer & 0xffffffffffff)/2**16*1e-9) start_ts_96 = (dut.ts_96.value.integer >> 48) + ((dut.ts_96.value.integer & 0xffffffffffff)/2**16*1e-9)
start_ts_64 = dut.ts_64.value.integer/2**16*1e-9 start_ts_64 = dut.ts_64.value.integer/2**16*1e-9