PaulZC / XLR8_VGA_HDMI_XB

An XLR8 XB which will run on the Alorium Technology Sno FPGA board and produce a VGA text display over HDMI. Includes dual-port video memory.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

XLR8 VGA HDMI XB

An XLR8 XB which will run on the Alorium Technology Snō board and produce a VGA text display over HDMI. Incorporates dual-port video memory.

random_pattern.gif

clock_demo.gif

game_of_life.gif

breakout.gif

tetris_time.gif

u-blox.gif

hardware

Overview

This Xcelerator Block will run on the Alorium Technology Snō FPGA board and will produce a configurable VGA text display over HDMI at 640x480 pixels (60Hz). Two dual-port RAM blocks act as video memory for the character codes and attributes.

The dual-port video memory was added by Paul.

The Verilog for the HDMI video, audio and VGA text generator is a remix of the HDL Utils written by Sameer Puri:

CLKDivider and DifferentialSignal are taken from the KAMAMI maXimator HDMI Test example by Michał Kozioł:


INSTALLATION.md contains abbreviated instructions on how to install the XLR8Build bootloader on the Snō.

Once you have programmed the Snō with the XLR8Build 'bootloader', the blue status LED (D13) will blink a heartbeat at 1Hz and your screen will display a blank VGA image.

The examples folder contains example Arduino code which will display:

  • random character codes and attributes
  • a digital clock with chasing graphic surround
  • an alignment pattern
  • Conway's Game of Life
  • slow row shifting (using video memory reads and writes)
  • fast row shifting (using the new set_row_offset function)
  • Breakout (based on the Atari game from the 1970s)
  • Tetris Time (based on Tobias Blum's Tetris Animation)
  • GNSS latitude, longitude and altitude using the SparkFun u-blox library over I2C
  • print and println examples

Also included is an example which demonstrates the XB's sound-making capabilities.

Resources

The Intro to OpenXLR8 webinar contains a lot of useful information. You will need to watch that if you are using Snō and XBs for the first time.

Connections

You will need a suitable HDMI Breakout or cable to connect the Snō pins to the HDMI port on your TV/Monitor, e.g.:

Signal HDMI Pin Snō Pin
TMDS D2+ 1 D28
TMDS D2S 2 GND
TMDS D2- 3 D34
TMDS D1+ 4 D35
TMDS D1S 5 GND
TMDS D1- 6 D22
TMDS D0+ 7 D23
TMDS D0S 8 GND
TMDS D0- 9 D29
TMDS CLK+ 10 D30
TMDS CLKS 11 GND
TMDS CLK- 12 D36
Shield GND

Sameer recommends adding 100nF capacitors to the LVDS signals for TMDS.

The Snō is a 3.3V device. Connecting 5V to the FTDI interface will cause damage. Please make sure you are using one of the recommended FTDI cables when programming the board.

LICENSE

Sameer Puri's HDL Utils are dually-licensed under the MIT and Apache 2.0 licenses

The parts written by Alorium Technology are licensed under the MIT license

The parts written by Paul are licensed under the MIT license

Enjoy!

Paul

About

An XLR8 XB which will run on the Alorium Technology Sno FPGA board and produce a VGA text display over HDMI. Includes dual-port video memory.

License:Other


Languages

Language:SystemVerilog 31.1%Language:C++ 30.8%Language:Verilog 25.5%Language:C 7.9%Language:HTML 4.7%Language:Scheme 0.1%Language:Standard ML 0.0%