Use bytes instead of bytearrays

Signed-off-by: Alex Forencich <alex@alexforencich.com>
This commit is contained in:
Alex Forencich
2023-03-02 23:56:01 -08:00
parent 6d1afe0904
commit 72f7290488

View File

@@ -43,8 +43,8 @@ AxiStreamBus, AxiStreamTransaction, AxiStreamSource, AxiStreamSink, AxiStreamMon
class EthMacFrame: class EthMacFrame:
def __init__(self, data=None, tx_complete=None): def __init__(self, data=b'', tx_complete=None):
self.data = bytearray() self.data = b''
self.sim_time_start = None self.sim_time_start = None
self.sim_time_sfd = None self.sim_time_sfd = None
self.sim_time_end = None self.sim_time_end = None
@@ -53,7 +53,7 @@ class EthMacFrame:
self.tx_complete = None self.tx_complete = None
if type(data) is EthMacFrame: if type(data) is EthMacFrame:
self.data = bytearray(data.data) self.data = bytes(data.data)
self.sim_time_start = data.sim_time_start self.sim_time_start = data.sim_time_start
self.sim_time_sfd = data.sim_time_sfd self.sim_time_sfd = data.sim_time_sfd
self.sim_time_end = data.sim_time_end self.sim_time_end = data.sim_time_end
@@ -61,7 +61,7 @@ class EthMacFrame:
self.ptp_tag = data.ptp_tag self.ptp_tag = data.ptp_tag
self.tx_complete = data.tx_complete self.tx_complete = data.tx_complete
else: else:
self.data = bytearray(data) self.data = bytes(data)
if tx_complete is not None: if tx_complete is not None:
self.tx_complete = tx_complete self.tx_complete = tx_complete
@@ -274,7 +274,9 @@ class EthMacTx(Reset):
# wait for data # wait for data
cycle = await self.stream.recv() cycle = await self.stream.recv()
frame = EthMacFrame(bytearray()) frame = EthMacFrame()
data = bytearray()
frame.sim_time_start = get_sim_time() frame.sim_time_start = get_sim_time()
# wait for preamble time # wait for preamble time
@@ -293,13 +295,14 @@ class EthMacTx(Reset):
for offset in range(self.byte_lanes): for offset in range(self.byte_lanes):
if not hasattr(self.bus, "tkeep") or (cycle.tkeep.integer >> offset) & 1: if not hasattr(self.bus, "tkeep") or (cycle.tkeep.integer >> offset) & 1:
frame.data.append((cycle.tdata.integer >> (offset * self.byte_size)) & self.byte_mask) data.append((cycle.tdata.integer >> (offset * self.byte_size)) & self.byte_mask)
byte_count += 1 byte_count += 1
# wait for serialization time # wait for serialization time
await Timer(self.time_scale*byte_count*8//self.speed, 'step') await Timer(self.time_scale*byte_count*8//self.speed, 'step')
if cycle.tlast.integer: if cycle.tlast.integer:
frame.data = bytes(data)
frame.sim_time_end = get_sim_time() frame.sim_time_end = get_sim_time()
self.log.info("RX frame: %s", frame) self.log.info("RX frame: %s", frame)