This core is a customization of the LUNA project, which is a USB analyzer.
The aim of this project is to strip down the original project to its USB2 highspeed-capable core which is easy to integrate into your own FPGA project.
- USB MIDI is broken upstream, and is working here
- USB Audio is impossible upstream, because the isochronous endpoints are missing (see below)
This project implements stream based isochronous in and out endpoints:
This project includes the following examples:
This project includes the following additional platform files:
- Terasic/Arrow DECA configuration tested working on the FPGA
This project is broken down into several directories:
luna
-- the primary LUNA python toolkit; generates gateware and provides USB functionalityluna/gateware
-- the core gateware components for LUNA; and utilities for stitching them together
examples
-- simple LUNA-related examples; mostly gateware-targeted, currentlydocs
-- sources for the LUNA Sphinx documentationapplets
-- pre-made gateware applications that provide useful functionality on their own (e.g., are more than examples)
LUNA's documentation is captured on Read the Docs. Raw documentation sources
are in the docs
folder.
- jt51-synth, a FM synthesizer, based on jotego's open source implementation of the Yamaha YM2151. The project uses this core as USB MIDI interface.
- adat-usb2-audio-interface, an USB2 high speed audio interface with ADAT inputs and outputs
- deca-usb2-audio-interface, an USB2 high speed audio interface with analog inputs and outputs
- deca-mandelbrot, a mandelbrot accelerator connected with a USB2 high speed interface
- Cynthion: an open source hardware USB test instrument
- Apollo: the firmware that runs on Cynthion's debug controller and which is responsible for configuring its FPGA
- Saturn-V: a DFU bootloader created for Cynthion
- Packetry: software for USB analysis
- Facedancer: software to create USB devices in Python