Trashernet is a very trashy Ethernet stack for FPGAs written in VHDL aiming to cover all OSI layers, including physical!
Go to file
Markus Koch 61812c133f phy: Improve header synchronization 2022-01-30 19:26:43 +01:00
bench bench: Use VUnit 2022-01-16 17:46:01 +01:00
demo/lattice_brevia2 demo: Add MAC demo design 2022-01-23 16:29:31 +01:00
design demo: Add MAC demo design 2022-01-23 16:29:31 +01:00
doc doc: Add Trashernet logo 2021-09-25 20:28:43 +02:00
trashernet phy: Improve header synchronization 2022-01-30 19:26:43 +01:00
.gitignore bench: Use VUnit 2022-01-16 17:46:01 +01:00
README.MD doc: Add Trashernet logo 2021-09-25 20:28:43 +02:00
run.py bench: Use VUnit 2022-01-16 17:46:01 +01:00

README.MD

Trashernet

Trashernet Logo

Trashernet is a very trashy Ethernet stack for FPGAs written in VHDL aiming to cover all OSI layers:

  • Layer 1, Physical: trashernet_phy
  • Layer 2, Data link: trashernet_mac

When writing it, the following were the main design philosophies:

  1. Standards are nice and all, but this, it just needs to work.
  2. Hardware is expensive, LOC are not. So let's do everything we can inside the FPGA.
  3. If there's a feature that feels optional even though it isn't, it is. See 1. if in doubt.

IMPORTANT: This code (and HW suggestions) violate the Ethernet standard in many ways. Do not use in proper (especially commercial) products.

Hardware

TBD. TL;DR:

  • RX: Use resistors behind Ethernet magnetics to reduce Ethernet RX voltage levels (0 +-2.5V) to LVPECL voltage levels (1.65V +-400mV). Or LVDS if your FPGA can't handle LVPECL.
  • TX: Meh, a series current limiting resistor is good enough.

License

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.