THIS PROJECT IS INCOMPLETE!!! DON'T EXPECT ANYTHING HERE TO ACTUALLY WORK.
I made it public so that others can have a look at it.
Contents and current status:
- SpinalHDL ULPI seems to be working ok.
- In
./tb/cocotb
, I try to build my first cocotb testbench. It's incomplete... - The current design can receive USB packets as a device. I think it can also reply some hardcoded return packets. It's not at the point at all where a device can be enumerated.
- Further down this file, there's a pretty extensive list with open source USB resources and code.
- ULPI Specification 1.1
- Microchip/SMSC AN 19.17 - ULPI Design Guide
- Making USB Accessible @ Teardown 2019
- Raspberry Pico DAtasheet - USB Description
-
- UTMI/ULPI bridge in VHDL
- GPL2
- Limited in functionality:
- Doesn't handle register write abort
- No register read
- No support for suspend
-
usb-serial - USB data transfer in VHDL
-
USB device controller in VHDL
-
Only supports serial class
-
UTMI interface
-
GPL2
-
Relatively well documented.
-
VNA project uses usb-serial and ulpi_port.
-
-
Device controller.
Has 2 main branches:
- the default one is 'old', which is a VHDL controller. Not updated in 6 years.
- the 'master' branch has last been updated 6 months ago. Written in Verilog.
-
- USB3300 ULPI PHY
- Uses 2 PMOD connectors, as expected.
- 2 layer PCB. Gerbers are included.
- Old version of KiCAD or incomplete library. Symbols in Schematc are not resolved... PCB loads fine.
-
USB 2.0 device controller written in nMigen.
- "experimental stage and therefore incomplete."
- Has a GUI to create a configuration.
-
- USB 1.1 Device IP Core by ASICSs World Services
- No CPU required
- relies on
usb_phy
block (~poor man's UTMI block) whichi can be found on opencores.org. - "modified BSD for Resume style license"
-
- USB 2.0 Device IP Core by ASICSs World Services
- UTMI interface
- Core documentation is a very good USB introduction too.
-
- USB 1.1 device using FPGA IOs
- HW: CERN Open Hardware License v2
- FW: LGPL 3.0
-
Ultra Embedded USB 1.1 Host Controller
- UTMI interface
- AXI4-lite interface
- Not compatible with OHCI/EHCI.
- Has Linux driver
- GPL 3.0
-
Ultra Embedded ULPI Link Wrapper
- UTMI to ULPI converter
- No external register interface
- SystemC testbench (but not tests?)
- GPL 3.0
-
Digilent Genesys2 - USB Device Demo
This board has a TUSB1210.
-
Migen-based USB2 and USB3 core.