From a6d01c5b73b6433dac880428fff52434230deeef Mon Sep 17 00:00:00 2001 From: Alex Forencich Date: Mon, 23 Nov 2020 15:21:55 -0800 Subject: [PATCH] Detect SFD when splitting preamble --- cocotbext/eth/gmii.py | 7 +++++-- cocotbext/eth/xgmii.py | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/cocotbext/eth/gmii.py b/cocotbext/eth/gmii.py index 33ae516..6aca80d 100644 --- a/cocotbext/eth/gmii.py +++ b/cocotbext/eth/gmii.py @@ -53,11 +53,14 @@ class GmiiFrame(object): data.extend(payload) return cls(data) + def get_preamble_len(self): + return self.data.index(EthPre.SFD)+1 + def get_preamble(self): - return self.data[0:8] + return self.data[0:self.get_preamble_len()] def get_payload(self): - return self.data[8:] + return self.data[self.get_preamble_len():] def normalize(self): n = len(self.data) diff --git a/cocotbext/eth/xgmii.py b/cocotbext/eth/xgmii.py index 8de1121..1d9aec4 100644 --- a/cocotbext/eth/xgmii.py +++ b/cocotbext/eth/xgmii.py @@ -55,11 +55,14 @@ class XgmiiFrame(object): data.extend(payload) return cls(data) + def get_preamble_len(self): + return self.data.index(EthPre.SFD)+1 + def get_preamble(self): - return self.data[0:8] + return self.data[0:self.get_preamble_len()] def get_payload(self): - return self.data[8:] + return self.data[self.get_preamble_len():] def normalize(self): n = len(self.data)