ethernet/tb
Sean Anderson 52325f241b Add AXI stream replay buffer
This implements an AXI stream buffer which allows replaying of the first
portion of each packet. The intent is to simplify the implementation of
CSMA/CD. This requires keeping 56 bytes of data to "replay" (slot time
minus the preamble). After these bytes are transmitted, we can only get
late collisions.

We always read from the buffer, as this simplifies the implementation
compared to some kind of hybrid fifo/skid buffer approach. The primary
design problem faced is in determining when it's OK to overwrite the
first byte in the packet. A naïve approach might be to allow overwriting
whenever the slave reads the last byte. However, in the case of a
54-byte packet, we will still need to allow replaying at this point (in
case there is a collision on the last byte). We can't just wait for
m_axis_ready to go high, because that would violate the AXI stream
protocol. To solve this, the slave must assert the done signal when it
is finished with the packet.

Signed-off-by: Sean Anderson <seanga2@gmail.com>
2022-11-30 18:14:23 -05:00
..
__init__.py Make testbenches a module 2022-08-21 12:36:28 -04:00
axis_replay_buffer.py Add AXI stream replay buffer 2022-11-30 18:14:23 -05:00
descramble.py descrambler: Rename unscrambled* to descrambled* 2022-10-16 18:53:47 -04:00
mdio.py mdio: Support 2022-08-29 21:25:25 -04:00
mdio_io.py mdio:io: Don't drive mdio as X in testbench 2022-10-16 17:37:38 -04:00
mdio_regs.py pcs: Add false_carrier signal 2022-11-05 12:37:18 -04:00
mii_io_rx.py mii_io: Add isolation support 2022-08-28 18:43:23 -04:00
mii_io_tx.py mii_io: Add isolation support 2022-08-28 18:43:23 -04:00
nrzi_decode.py Add phy_core 2022-11-05 12:37:18 -04:00
nrzi_encode.py nrzi_encode: Fix test name 2022-11-05 12:37:18 -04:00
pcs.py pcs: Split into rx/tx 2022-10-30 21:32:02 -04:00
pcs_rx.py pcs: Add false_carrier signal 2022-11-05 12:37:18 -04:00
pcs_tx.py Add phy_core 2022-11-05 12:37:18 -04:00
phy_core.py Add phy_core 2022-11-05 12:37:18 -04:00
pmd_dp83223_rx.py pmd_dp83223: Don't intentionally cause bit errors 2022-10-30 22:14:18 -04:00
scramble.py Add phy_core 2022-11-05 12:37:18 -04:00
util.py Add AXI stream replay buffer 2022-11-30 18:14:23 -05:00