Skip to content
Permalink

Comparing changes

This is a direct comparison between two commits made in this repository or its related repositories. View the default comparison for this range or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: timvideos/litex-buildenv
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 6ca3e953b3198e6b5607d5e180886a3eb80db0f6
Choose a base ref
..
head repository: timvideos/litex-buildenv
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 87f3d8e03efb6a3fa5f389bea27f17d31f2d387a
Choose a head ref
61 changes: 35 additions & 26 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -67,89 +67,98 @@ jobs:
# Base targets
#--------------------------------------------
# lm32 Base targets
- stage: Targets - Base
- stage: Targets
env: C=lm32 P=arty T="base net"

- stage: Targets - Base
- stage: Targets
env: C=lm32 P=atlys T="base net"

- stage: Targets - Base
- stage: Targets
env: C=lm32 P=mimasv2 T="base"

- stage: Targets - Base
- stage: Targets
env: C=lm32 P=minispartan6 T="base"

- stage: Targets - Base
- stage: Targets
env: C=lm32 P=netv2 T="base"

- stage: Targets - Base
- stage: Targets
env: C=lm32 P=nexys_video T="base net"

- stage: Targets - Base
- stage: Targets
env: C=lm32 P=opsis T="base net"

- stage: Targets - Base
- stage: Targets
env: C=lm32 P=pipistrello T="base"

- stage: Targets - Base
- stage: Targets
env: C=lm32 P=saturn T="base"

- stage: Targets - Base
- stage: Targets
env: C=lm32 P=galatea T="base"

- stage: Targets - Base
- stage: Targets
env: C=lm32 P=neso T="base"

- stage: Targets - Base
- stage: Targets
env: C=lm32 P=waxwing T="base"

- stage: Targets - Base
- stage: Targets
env: C=lm32 P=basys3 T="base"

- stage: Targets - Base
- stage: Targets
env: C=lm32 P=cmod_a7 T="base"

# or1k base targets
- stage: Targets - Base
- stage: Targets
env: C=or1k P=arty T="base net"

- stage: Targets - Base
- stage: Targets
env: C=or1k P=atlys T="base net"

- stage: Targets - Base
- stage: Targets
env: C=or1k P=mimasv2 T="base"

- stage: Targets - Base
- stage: Targets
env: C=or1k P=opsis T="base net"

- stage: Targets - Base
- stage: Targets
env: C=or1k P=pipistrello T="base"

# Linux Targets
#--------------------------------------------
- stage: Targets - Base
- stage: Targets
env: C=or1k.linux F=linux P=arty T="net"

- stage: Targets
env: C=or1k.linux F=linux P=atlys T="net"

- stage: Targets
env: C=or1k.linux F=linux P=opsis T="net"

- stage: Targets
env: C=or1k.linux F=linux P=nexys_video T="net"

#--------------------------------------------
# Video Targets
#--------------------------------------------
- stage: Targets - Video
- stage: Targets
env: C=lm32 P=atlys T="video"

#- stage: Targets - Video
#- stage: Targets
# env: C=lm32 P=netv2 T="video"

- stage: Targets - Video
- stage: Targets
env: C=lm32 P=nexys_video T="video"

- stage: Targets - Video
- stage: Targets
env: C=lm32 P=opsis T="video"

#--------------------------------------------
# HDMI2USB Targets
#--------------------------------------------
- stage: Targets - HDMI2USB
- stage: Targets
env: C=lm32 P=atlys T="hdmi2usb"

- stage: Targets - HDMI2USB
- stage: Targets
env: C=lm32 P=opsis T="hdmi2usb"
14 changes: 14 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -94,6 +94,19 @@ FULL_CPU = $(CPU).$(CPU_VARIANT)
MAKE_LITEX_EXTRA_CMDLINE += --cpu-variant=$(CPU_VARIANT)
endif

ifeq ($(CPU),lm32)
CPU_ARCH=lm32
endif
ifeq ($(CPU),or1k)
CPU_ARCH=or1k
endif
ifeq ($(CPU),vexriscv)
CPU_ARCH=riscv32-unknown
endif
ifeq ($(CPU),picorv32)
CPU_ARCH=riscv32-unknown
endif

# Include platform specific targets
include targets/$(PLATFORM)/Makefile.mk
TARGET ?= $(DEFAULT_TARGET)
@@ -412,6 +425,7 @@ env:
@echo "export PLATFORM_EXPANSION='$(PLATFORM_EXPANSION)'"
@echo "export TARGET='$(TARGET)'"
@echo "export DEFAULT_TARGET='$(DEFAULT_TARGET)'"
@echo "export CPU_ARCH='$(CPU_ARCH)'"
@echo "export CPU='$(CPU)'"
@echo "export CPU_VARIANT='$(CPU_VARIANT)'"
@echo "export FIRMWARE='$(FIRMWARE)'"
144 changes: 43 additions & 101 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,129 +1,71 @@
# HDMI2USB LiteX Firmware
# LiteX Build Environment

## Quick Links

* [HDMI2USB user documentation](http://hdmi2usb.tv/)
* [HDMI2USB Firmware documentation](https://hdmi2usb.tv/firmware-misoc)
* [Report a bug](https://github.com/timvideos/HDMI2USB-misoc-firmware/issues/new)
* [misoc + migen website](http://m-labs.hk/gateware.html)

# Table of contents

* Overview
* HDMI2USB LiteX Firmware
* Supported Boards
* In Progress Boards
* Other Boards
* Getting started
* Documentation
* License
* Contact

# Overview

**The HDMI2USB project develops affordable hardware options to record and
stream HD videos (from HDMI & DisplayPort sources) for conferences, meetings
and user groups.**

We are currently developing our own hardware (the
[Numato Opsis](https://hdmi2usb.tv/numato-opsis), and also provide firmware for
various prototyping boards.

HDMI2USB started in 2013, and is an active ongoing project in its third
iteration of hardware prototyping. Today you can download early working
firmware and have real capture happen, but we actively wish to improve and are
seeking assistance:

* **For video recording individuals+teams:** Be an early adopter; get a
board, start using it, report back to us with feedback

* **For software/FPGA developers:** Get involved in contributing code both to
the capture software + FPGA stack

Our aim is this becomes the defacto, incredibly affordable and easy to use
video recording hardware for conferences, meetings and user groups worldwide.
[The LiteX Build Environment](https://github.com/timvideos/litex-buildenv)
is a tool for easily developing
[LiteX](https://github.com/enjoy-digital/litex) based systems. It was
originally designed to make the [TimVideos' HDMI2USB](https://hdmi2usb.tv) easy
to develop, but has now expanded to support multiple projects.

**Find out more about HDMI2USB and why we're doing this in [ABOUT + FAQ](http://hdmi2usb.tv/faq)**

![HDMI2USB Diagram](https://hdmi2usb.tv/img/hdmi2usb.png "HDMI2USB Diagram")

# HDMI2USB LiteX Firmware

## Supported Boards

This firmware is supported on the following to boards for capturing
conferences;


* [Digilent Atlys](https://hdmi2usb.tv/digilent-atlys/) - `PLATFORM=atlys` - http://digilentinc.com/atlys/

The original board used for HDMI2USB prototyping.

![Digilent Atlys Picture](https://hdmi2usb.tv/img/digilent-atlys-small.jpg)

* [Numato Opsis](https://hdmi2usb.tv/numato-opsis/) - `PLATFORM=opsis` - https://numato.com/product/numato-opsis-fpga-based-open-video-platform

The first production board made in conjunction with TimVideos.us project.
## Quick Links

![Numato Opsis Picture](https://hdmi2usb.tv/img/numato-opsis-small.jpg)
* [LiteX Build Environment Wiki](https://github.com/timvideos/litex-buildenv/wiki)
* [Getting Started Guide](https://github.com/timvideos/litex-buildenv/wiki/Getting-Started)

For a comparison between the supported boards, see the
[HDMI2USB Hardware page](https://hdmi2usb.tv/hardware/).
* TBD: [LiteX Build Environment Docs](https://litex-buildenv.readthedocs.io)

## In Progress Boards
* Dependency documentation
- Migen - [[Website](http://m-labs.hk/migen/index.html)] [[User Guide](http://m-labs.hk/migen/manual/)] [[Code Repository](https://github.com/m-labs/migen)]
- [Enjoy Digital Website](http://www.enjoy-digital.fr/)
- [LiteX GitHub Repository](https://github.com/enjoy-digital/litex)

The following boards are under development for conference capture;
* Projects using LiteX Build Environment:
- [HDMI2USB](http://hdmi2usb.tv/) - The HDMI2USB project develops affordable hardware options to record and stream HD videos (from HDMI & DisplayPort sources) for conferences, meetings and user groups.
- [FuPy](https://fupy.github.io) - The aim of the FuPy project is to make MicroPython run on FPGAs using the LiteX & Migen+MiSoC technologies. This allows you to do full stack development (FPGA gateware & soft CPU firmware) in Python!

* Digilent Nexys Video
* Alphamax NeTV2
---

## Other Boards
## Important Terminology

The following boards are useful for development but *not* conference capture;
* [Gateware](https://github.com/litex-buildenv/wiki/Gateware) - The FPGA configuration.
* [Soft CPU](https://github.com/litex-buildenv/wiki/Soft-CPU) - A CPU running inside the FPGA.
* [Firmware](https://github.com/litex-buildenv/wiki/Firmware) - The software running on the `soft CPU` inside the FPGA.

* Saanlima Pipistrello - http://pipistrello.saanlima.com/
## Structure

`PLATFORM=pipistrello`
![LiteX BuildEnv Structure Image](https://docs.google.com/drawings/d/e/2PACX-1vTfB_DQ3PXJWKrERnzkGoWdKsTfuI3Kk-9rF1oBDB8NM44qZefU_O_H7rdNoN5cIWZmqzfIm1ftz52B/pub?w=419&h=485)

A small FPGA board with only one HDMI output port.
Due to the lack of video *inputs*, this board is only useful for developers.
## [Boards](https://github.com/litex-buildenv/wiki/Boards)

* ScarabHardware miniSpartan6+ - https://www.scarabhardware.com/minispartan6/
The LiteX Build Environment supports a
[large number of FPGA boards](https://github.com/litex-buildenv/wiki/Boards),
but not all boards can be used for all projects.

`PLATFORM=miniSpartan`
## [Firmware](https://github.com/litex-buildenv/wiki/Firmware)

A small FPGA board with HDMI input and HDMI output.
Due to the low speed ram and USB interface, this board is only useful for
developers who want to work on the HDMI subsystem and need a small board
that fits in their pocket.
* [HDMI2USB](https://github.com/litex-buildenv/wiki/HDMI2USB) - The firmware currently used for the HDMI2USB project.
* [Bare Metal](https://github.com/litex-buildenv/wiki/Bare-Metal) - Your own firmware running directly on the soft CPU in the FPGA.
* [Zephyr](https://github.com/litex-buildenv/wiki/Zephyr) - Support for [Zephyr RTOS](https://www.zephyrproject.org/).
* [Linux](https://github.com/litex-buildenv/wiki/Linux) - Support for Linux.

* Numato MimasV2 - https://numato.com/mimas-v2-spartan-6-fpga-development-board-with-ddr-sdram/
## [Gateware](https://github.com/litex-buildenv/wiki/Gateware)

`PLATFORM=mimasv2`
FIXME: Put stuff here.

A small, cheap FPGA board with a Spartan 6 and DDR RAM. Due to the lack of
video input and high speed data interfaces this board can't be used for
capture. It can however be used for development of non-capture related
firmware features and experimenting with FPGA development.
## [Environment](https://github.com/litex-buildenv/wiki/Environment)

# Getting started
FIXME: Put stuff here.

For **using** a HDMI2USB board, prebuilt versions of the firmware are available in
the
[HDMI2USB-firmware-prebuilt](http://github.com/timvideos/HDMI2USB-firmware-prebuilt)
repository.
## [Applications](https://github.com/litex-buildenv/wiki/Applications)

For **helping with the development**, instructions for setting up the build
environment are found in the [getting-started.md](getting-started.md) file.
FIXME: Put stuff here.

# Documentation
![LiteX Application Relationship](https://docs.google.com/drawings/d/e/2PACX-1vTLVQXwkH3p5ZvN-7nIMxRXOyFEsg2x5_yrd3wREw3vaWr3Mc-_P7kfTbeQ--BN0k5VjQgxHchliyno/pub?w=1398&h=838)

**User** documentation is found on the [HDMI2USB website](https://hdmi2usb.tv).
## [Other Topics](https://github.com/litex-buildenv/wiki/Other-Topics)

High level **developer** documentation for the firmware can be found in the
[doc](doc/) directory. More documentation is found in the source code.
FIXME: Put stuff here.

![System Diagram](doc/architecture.png)
---

# License

Loading