Add mii_mode attribute to GMII and RGMII models
This commit is contained in:
@@ -137,6 +137,7 @@ class GmiiSource(object):
|
|||||||
self.queue = deque()
|
self.queue = deque()
|
||||||
|
|
||||||
self.ifg = 12
|
self.ifg = 12
|
||||||
|
self.mii_mode = False
|
||||||
|
|
||||||
self.queue_occupancy_bytes = 0
|
self.queue_occupancy_bytes = 0
|
||||||
self.queue_occupancy_frames = 0
|
self.queue_occupancy_frames = 0
|
||||||
@@ -209,7 +210,10 @@ class GmiiSource(object):
|
|||||||
self.log.info("TX frame: %s", frame)
|
self.log.info("TX frame: %s", frame)
|
||||||
frame.normalize()
|
frame.normalize()
|
||||||
|
|
||||||
if self.mii_select is not None and self.mii_select.value:
|
if self.mii_select is not None:
|
||||||
|
self.mii_mode = bool(self.mii_select.value.integer)
|
||||||
|
|
||||||
|
if self.mii_mode:
|
||||||
mii_data = []
|
mii_data = []
|
||||||
mii_error = []
|
mii_error = []
|
||||||
for b, e in zip(frame.data, frame.error):
|
for b, e in zip(frame.data, frame.error):
|
||||||
@@ -262,6 +266,8 @@ class GmiiSink(object):
|
|||||||
self.queue = deque()
|
self.queue = deque()
|
||||||
self.sync = Event()
|
self.sync = Event()
|
||||||
|
|
||||||
|
self.mii_mode = False
|
||||||
|
|
||||||
self.queue_occupancy_bytes = 0
|
self.queue_occupancy_bytes = 0
|
||||||
self.queue_occupancy_frames = 0
|
self.queue_occupancy_frames = 0
|
||||||
|
|
||||||
@@ -336,7 +342,10 @@ class GmiiSink(object):
|
|||||||
if not dv_val:
|
if not dv_val:
|
||||||
# end of frame
|
# end of frame
|
||||||
|
|
||||||
if self.mii_select is not None and self.mii_select.value:
|
if self.mii_select is not None:
|
||||||
|
self.mii_mode = bool(self.mii_select.value.integer)
|
||||||
|
|
||||||
|
if self.mii_mode:
|
||||||
odd = True
|
odd = True
|
||||||
sync = False
|
sync = False
|
||||||
b = 0
|
b = 0
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ class RgmiiSource(object):
|
|||||||
self.queue = deque()
|
self.queue = deque()
|
||||||
|
|
||||||
self.ifg = 12
|
self.ifg = 12
|
||||||
|
self.mii_mode = False
|
||||||
|
|
||||||
self.queue_occupancy_bytes = 0
|
self.queue_occupancy_bytes = 0
|
||||||
self.queue_occupancy_frames = 0
|
self.queue_occupancy_frames = 0
|
||||||
@@ -113,7 +114,7 @@ class RgmiiSource(object):
|
|||||||
self.ctrl <= 0
|
self.ctrl <= 0
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if self.mii_select is None or not self.mii_select.value:
|
if not self.mii_mode:
|
||||||
# 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
|
||||||
self.ctrl <= en ^ er
|
self.ctrl <= en ^ er
|
||||||
@@ -131,7 +132,10 @@ class RgmiiSource(object):
|
|||||||
self.log.info("TX frame: %s", frame)
|
self.log.info("TX frame: %s", frame)
|
||||||
frame.normalize()
|
frame.normalize()
|
||||||
|
|
||||||
if self.mii_select is not None and self.mii_select.value:
|
if self.mii_select is not None:
|
||||||
|
self.mii_mode = bool(self.mii_select.value.integer)
|
||||||
|
|
||||||
|
if self.mii_mode:
|
||||||
mii_data = []
|
mii_data = []
|
||||||
mii_error = []
|
mii_error = []
|
||||||
for b, e in zip(frame.data, frame.error):
|
for b, e in zip(frame.data, frame.error):
|
||||||
@@ -187,6 +191,8 @@ class RgmiiSink(object):
|
|||||||
self.queue = deque()
|
self.queue = deque()
|
||||||
self.sync = Event()
|
self.sync = Event()
|
||||||
|
|
||||||
|
self.mii_mode = False
|
||||||
|
|
||||||
self.queue_occupancy_bytes = 0
|
self.queue_occupancy_bytes = 0
|
||||||
self.queue_occupancy_frames = 0
|
self.queue_occupancy_frames = 0
|
||||||
|
|
||||||
@@ -268,7 +274,10 @@ class RgmiiSink(object):
|
|||||||
if not dv_val:
|
if not dv_val:
|
||||||
# end of frame
|
# end of frame
|
||||||
|
|
||||||
if self.mii_select is not None and self.mii_select.value:
|
if self.mii_select is not None:
|
||||||
|
self.mii_mode = bool(self.mii_select.value.integer)
|
||||||
|
|
||||||
|
if self.mii_mode:
|
||||||
odd = True
|
odd = True
|
||||||
sync = False
|
sync = False
|
||||||
b = 0
|
b = 0
|
||||||
|
|||||||
Reference in New Issue
Block a user