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).
