Features & Specifications
- Xilinx Spartan‑6 S6LX45T
- 256 Megabytes of DDR3-1600 RAM
- inputs: 2
- outputs: 2
- resolution: 720p or 1024 x 768
- inputs: 1
- outputs: 1
- resolution: up to 4096 × 2304 × 30 bpp @ 30 Hz
- compatible with dual-mode DisplayPort / DisplayPort++ protocol
- microSD card holder
- 128-Mbit SPI flash for configuration data
- USB 2.0 Device:
- Cypress FX2 chipset supported by fully FOSS toolchain
- real-world transfer rates of 30-40 Megabytes/second
- serves also as a USB JTAG programmer and a USB UART adapter
- USB 2.0 OTG:
- supports both host and device operation
- compatible with many USB devices (e.g. keyboards and flash drives)
- Gigabit Ethernet:
- unique MAC address
- PCI-Express connector (not signal-compatible)
- 19 differential, length-matched pairs
- 3.3V and 12V power rails
- I2C interface for expansion board auto-detection and configuration
- dedicated I/O bank on FPGA reduces peripherals conflict
- access to global clock signals
- standard mini ITX mounting
- Default Firmware:
- demo functionality; USB controller set to be a USB JTAG programmer
The Opsis is flexible and powerful enough to have a large number of use cases, many of which we probably haven’t considered. That said, we had certain use cases in mind when we designed the system.
Running HDMI2USB.tv Firmware
The diagram below shows one such simple scenario. The HDMI output from the laptop is fed into the Opsis, which forwards it to an external monitor and simultaneously allows another computer to capture the output via the USB 2.0 interface. The HDMI2USB.tv firmware emulates a standard UVC webcam, allowing any video software, such as Skype, Google Hangouts, or WebRTC, to then send it to an online audience.
A simple setup
A more complex scenario is shown below. The Opsis is used to feed the output from a presenter’s laptop onto both a large projection screen and a private “confidence screen” for the speaker (probably at the foot of the stage). The speaker’s dramatic facial expressions are also captured by a HDMI camera. Using the USB interface, a capture computer is able to switch between the two inputs and rebroadcast online.
A setup for recording a conference or user group
The HDMI2USB.tv firmware project has experimental support for using the Gigabit Ethernet interface as an alternative capture interface and is developing algorithms for hardware-based mixing and scaling, such as picture-in-picture.
General-purpose FPGA Development Platform for Video
In addition to running the HDMI2USB firmware, the Opsis can be used as a powerful FPGA development platform. The Xilinx Spartan-6 LX45T FPGA on this board can hold extremely large designs and can be used with the free Xilinx ISE Webpack software. The 2 Gbits (256 Megabytes) of onboard DDR3 SDRAM allow ample data storage accessible at high speeds. Onboard USB 2.0 and Gigabit Ethernet controllers allow high-speed, high-bandwidth connectivity to workstations and the network. With a USB host stack, the built-in USB OTG controller can connect to a wide variety of peripherals, such as keyboards, mice, cameras, and other USB devices. The programmable USB device controller can act both as a JTAG programmer and as a serial converter to be used as a debug console to assist development and debugging.
- A: HDMI Out 1
- B: HDMI Out 2
- C: HDMI In 1
- D: HDMI In 2
- E: DisplayPort Out
- F: DisplayPort In
- G: USB 2.0 Device / JTAG Programmer / UART Adapter
- H: Expansion Port (TOFE, not PCI-Express compatible)
- I: microSD (underside of board)
- J: USB 2.0 OTG
- K: Gigabit Ethernet
Fun with High-Speed Transceivers
Opsis has four high-speed transceivers (officially known as GTP transceivers in Xilinx’s documentation) capable of running up to 3.2 Gb/s per transceiver. Opsis provides an aggregate bandwidth of slightly more than 12Gb/s when the four transceivers are combined. These transceivers can be used to implement a variety of high-speed serial protocols such as Serial ATA, Aurora, Gigabit Ethernet, PCI Express, DisplayPort, and XAUI. The FPGA on Opsis (XC6SLX45T) has one built-in PCI Express endpoint block that allows easy implementation of a PCI Express endpoint using Xilinx’s Spartan-6 FPGA Integrated Endpoint Block for PCI Express IP.
The high-speed transceivers are broken out into two dual-mode compatible DisplayPort connectors. This makes implementation of both DisplayPort sink and source easy without external adapters. The dual-mode compatibility also allows the implementation of high-speed HDMI with cheap, readily available adapters. Other protocols, such as PCI-Express, may be implemented by using appropriate high-speed transceiver breakout solutions.
The transceivers can also be used as a high-speed communication method between multiple Opsis boards (in a daisy chain configuration) allowing the possibility for the creation of large matrix configurations using cheap and readily available DisplayPort cables.
The dual-mode DisplayPort interface enabled by the high-speed transceivers nicely compliments the already extensive video support and extends the reach of the Opsis into some of the highest resolution video formats previously unavailable on an open platform.
Video DJing, Video Art Installations, and Live Video Effects
The same features which make the Numato Opsis an excellent platform for video development and an essential part of the TimVideos capture system also make the board awesome for anyone doing video-based art or live video effects such as Video DJing.
When in 2010, the Milkymist project launched the Milkymist One (M1) hardware platform and Flickernoise software, a system for visual effects with the ability to power high-definition video DJ projects, video art installations and live video effects projections was finally available! The Milkymist hardware did all the processing with the powerful onboard FPGA, processing every pixel, giving exceptional control and customization possibilities. Sadly, with the M1 hardware is no longer available and the second generation Mixxeo hardware was not turned into a finished product. With M-labs now concentrating on advanced quantum physics it seemed that the promise of an open, advanced, video mixing platform had ended.
The Numato Opsis hardware has a large amount in common with the Milkymist developed hardware, being built around the same FPGA core and designed for high-speed video manipulation. With support for the Opsis board currently being added to the MiSoC firmware, the Opsis makes a great candidate to fulfil the vision of the original Milkymist platform.
Free as in Freedom
This board is designed for users who care about free and open source software and hardware development, and/or want to modify and extend their hardware. The schematics and PCB layout are designed using KiCad, a set of free and open source tools for creating PCBs.
The HDMI2USB firmware, which includes code for the FPGA and the Cypress FX2, is free and open source. Code samples for the FPGA are under development and there is a very good library for developing code for the FX2 firmware that can be used in conjunction with a free and open source compiler.
The latest HDMI2USB firmware is built around the MiSoC firmware. We are also working on adding support to MiSoC for the Opsis board upstream. MiSoC provides truly open source implementations of essential functionality, such as high-speed memory controllers, central processing units, and much more without using any restrictive third party IP blocks normally required even by open source firmware. MiSoC is a high performance, flexible and lightweight solution to build system-on-chips for various applications, and is based on Migen. Migen is a Python-based tool that helps automate the VLSI design process.
Unfortunately, development on the Opsis, as with all other FPGA boards, requires the use of proprietary tools for programming the FPGA. In this case, the tools are the free (as in beer) Xilinx ISE Webpack software.