amaranth-farm / usb2-highspeed-core

a USB2 highspeed device core, written in amaranth HDL

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LUNA: an Amaranth HDL library for USB Simulation Status Documentation Status

USB2 High Speed Core

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.

Notable differences to the LUNA 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:

Project Structure

This project is broken down into several directories:

  • luna -- the primary LUNA python toolkit; generates gateware and provides USB functionality
    • luna/gateware -- the core gateware components for LUNA; and utilities for stitching them together
  • examples -- simple LUNA-related examples; mostly gateware-targeted, currently
  • docs -- sources for the LUNA Sphinx documentation
  • applets -- pre-made gateware applications that provide useful functionality on their own (e.g., are more than examples)

Project Documentation

LUNA's documentation is captured on Read the Docs. Raw documentation sources are in the docs folder.

Related Projects

  • 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

About

a USB2 highspeed device core, written in amaranth HDL

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Python 99.8%Language:Dockerfile 0.2%Language:Shell 0.1%