52325f241b
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> |
||
---|---|---|
LICENSES | ||
rtl | ||
tb | ||
.gitignore | ||
4b5b.gtkw | ||
CONTRIBUTING | ||
COPYING | ||
Makefile |