aboutsummaryrefslogtreecommitdiff

eboard - a SoC board with GbE Ethernet for VexiiRiscV

This repository contains the KiCad design files für a Lattice FPGA board with GbE Ethernet interface for an SoC course. The board has the following features

  • Lattice ECP5 FPGA
  • WCH CH347 based JTAG/UART programmer
  • USB-C connector for programming and serial interface
  • 32 MB SDRAM
  • 10 Switches, 4 Push-Buttons
  • 16 LEDs (10 red, 6 green)
  • 4 HEX Displays
  • HDMI Output
  • Expansion Port
  • 2 x Pmod ports
  • Powered over USB
  • Robust mechanical setup

Motivation / Use Cases / Requirements

The board is the result of running digital design courses for many years. I like the Terasic DE1 board very much. We have about 80 boards in the library available for students to use them directly. The board must allow very simple fpga experiments with switches and leds.

The DE1 board unfortunately does not have an ethernet interface. So it is difficult to show high speed data processing. For SoC this becomes a real pain. So this board has ethernet.

The DE1 board has a simple VGA with resistor based DAC. That was nice but it is difficult to have VGA monitors. So I switched to HDMI.

The board should not cost more than 100 Euro.

The board should be manufacturable at JLCPCB including assembly.

The board must have expansion port possibilites at least for low speed extensions. With the ECP5 a 40GbE port is not possible as the fpga does not have serdes at 10 Gigabit.

Tools

The design is made with KiCad 9. The KiCad project is in kicad/, see kicad/README.md. The scripts that generate the project symbol libraries need kipart (pipx install kipart). Footprints and symbols are cross-checked against the JLCPCB/LCSC (EasyEDA) data with easyeda2kicad (pipx install easyeda2kicad).

Optional: the KiCad MCP server kicad-mcp-pro lets an AI assistant such as Claude Code work with the KiCad project. Install it with pipx:

sudo apt install pipx
pipx ensurepath          # then open a new terminal
pipx install kicad-mcp-pro

The file .mcp.json in the repository root registers the server for this project, with kicad/ as the project directory. Start Claude Code in the repository root so that ${PWD} points there.

Reference designs

eboard builds on ideas from two open ECP5 boards. No files are taken from them; they served as examples for the circuits. To look at them, clone them at the given commit (e.g. into ext/, which git ignores):

Design Repository Commit Used as example for
ULX3S https://github.com/emard/ulx3s 6a92cec6 (2025-04-27) one sheet per function, power supply (TLV62569), SDRAM, HDMI output with LVCMOS33D, GPIO without series resistors
ButterStick https://github.com/butterstick-fpga/butterstick-hardware 0694ddf (2023-09-19) gigabit Ethernet (KSZ9031; eboard uses the RTL8211F), USB-C, FPGA core voltage
git clone https://github.com/emard/ulx3s.git ext/ulx3s
git -C ext/ulx3s checkout 6a92cec6

License

The hardware design files are licensed under CERN-OHL-S-2.0. The software under GPL-3.0-or-later. All documents are licensed under CC-BY-SA-4.0.

Exception: the manufacturer datasheets in datasheets/ are copyrighted by their manufacturers and are not covered by these licenses (see datasheets/README.md).