Status & Support

The LUNA library is a work in progress; but many of its features are usable enough for inclusion in your own designs. More testing of our work – and more feedback – is always appreciated!

Support for Device Mode

Feature

Status

USB Communications

high-/full-speed with UTMI PHY

complete, needs testing

high-/full-speed with ULPI PHY

feature complete

full-speed using raw gpio / pull resistors

feature complete

super-speed using PIPE PHY

basic support complete; still experimental

super-speed using SerDes PHY

in progress

low speed, via ULPI/UTMI PHY

untested

low speed, using raw gpio / pull resistors

unsupported, currently

Control Transfers / Endpoints

user-defined

feature complete

fully-gateware-implemented, with user vendor request handler support

complete, could use improvements

CPU interface

working; needs more interfaces & examples

Bulk Transfers / Endpoints

user-defined

feature complete

IN stream helpers

feature complete

OUT stream helpers

feature complete

CPU interface

working; needs more interfaces & examples

Interrupt Transfers / Endpoints

user-defined

feature complete

status-to-host helper

complete, needs testing

status-from-host helper

planned

CPU interface

working; needs more interfaces & examples

Isochronous Transfers / Endpoints

user-defined

planned

IN transfer helpers

complete; needs examples and testing

OUT transfer helpers

planned

CPU interface

planned

USB Analysis

basic analysis

basic analysis working, in progress

full analysis support

planned

Support for Host Mode

The LUNA library currently does not provide any support for operating as a USB host; though the low-level USB communications interfaces have been designed to allow for eventual host support. Host support is not currently a priority, but contributions are welcome.

“Reference” Boards

The LUNA library is intended to work on any FPGA with sufficient fabric performance and resources; but testing is only performed on a collection of reference boards.

Board

FPGA Family

PHY

Status

LUNA Hardware

ECP5

ULPI x3 (USB3343)

Fully Supported

OpenVizsla USB Analyzer

Spartan 6

ULPI (USB3343)

Fully Supported

LambdaConcept ECPIX-5

ECP5

ULPI (USB3300), SerDes PHY

High-Speed Fully Supported / Super-Speed In Progress

TinyFPGA Ex

ECP5

SerDes PHY

Planned Super-Speed Device Mode

Logicbone

ECP5

SerDes PHY

Full-Speed Fully Supported / Super-Speed In Progress

Daisho

Cyclone IV

PIPE (TUSB1310A)

Planned Super-Speed Device Mode

PHYWhisperer-USB

Spartan 7

UTMI

Planned Device Mode Support

LambdaConcept USB2Sniffer

Artix 7

ULPI x2 (USB3300)

Fully Supported

OrangeCrab

ECP5

no hardware PHY

Full-Speed/Device Mode Support

ULX3S

ECP5

no hardware PHY

Full-Speed/Device Mode Support

Fomu PVT/Hacker

iCE40 UP

no hardware PHY

Full-Speed/Device Mode Support

Fomu EVT3

iCE40 UP

no hardware PHY

Full-Speed/Device Mode Support

iCEBreaker Bitsy

iCE40 UP

no hardware PHY

Full-Speed/Device Mode Support

Glasgow

iCE40 HX

no hardware PHY

Planned Full-Speed Support

TinyFPGA Bx

iCE40 LP

no hardware PHY

Full-Speed/Device Mode Support

Digilent Nexys Video (SS with add-on board)

Artix 7

FMC for PIPE (TUSB1310A) add-on boards

Super-Speed Fully Supported

Digilent Genesys2 (SS with add-on board)

Kintex 7

ULPI (TUSB1210), FMC for PIPE (TUSB1310A) add-on boards

High/Super-Speed Fully Supported