• Stars
    star
    168
  • Rank 218,603 (Top 5 %)
  • Language VHDL
  • Created almost 9 years ago
  • Updated about 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Receiving and processing 1080p HDMI audio and video on the Artix 7 FPGA
README file for Artix 7 HDMI processing
=======================================
Hi! 

This is my design for receiving HDMI input, then extracting the video data, the
Video Inforframe and audio samples, then using that to display audio db meters 
on the top corner of the screen. Currently for simplicity the output is only DVID.

Features
--------
Supports HDMI formats:
  -720p@50
 - 720p@60, 
 - 1080i (with a bug)
 - 1080p@50
 - 1080p@60
 and others....

Colourspaces / formats:
 - RGB 444
 - YCbCr 444
 - YCbCr 422

New feature 10-AUG-2015!
-----------------------
Switch 0 will turn real-time edge detect off and on.

New feature 6-AUG-2015!
-----------------------
Switch 1 will turn guidelines off and on. Will only show in 1080p 1080i and 720p resolutions.

Supported Boards
----------------
 - Digilent Nexys Video 

Sources tested with:
 - Western Digital HD Live
 - HP Laptop

Sinks tested with:
 - Viewsonic Monitor
 - AOC Monitor
 - Vivo TV
 
Known issues:
 - Currently extracts only two channels of audio 

 - Does not adjust PLL settings for input clock, so the PLL is run slightly out
   of spec.

 - Image may re-sync once after a few seconds if symbol errors are seen.

 - There are timings errors, as generating 148.5MHz HDMI using the Artix-7 chip
   is actually out of spec. Expect seven failing paths and about 20ns of negative 
   slack.

------------------------------------------------------------------------------------
-- The MIT License (MIT)
-- 
-- Copyright (c) 2015 Michael Alan Field
-- 
-- Permission is hereby granted, free of charge, to any person obtaining a copy
-- of this software and associated documentation files (the "Software"), to deal
-- in the Software without restriction, including without limitation the rights
-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-- copies of the Software, and to permit persons to whom the Software is
-- furnished to do so, subject to the following conditions:
-- 
-- The above copyright notice and this permission notice shall be included in
-- all copies or substantial portions of the Software.
-- 
-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-- THE SOFTWARE.
------------------------------------------------------------------------------------
----- Want to say thanks? ----------------------------------------------------------
------------------------------------------------------------------------------------
--
-- This design has taken many hours - with the industry metric of 30 lines
-- per day, it is equivalent to about 6 months of work. I'm more than happy
-- to share it if you can make use of it. It is released under the MIT license,
-- so you are not under any onus to say thanks, but....
-- 
-- If you what to say thanks for this design how about trying PayPal?
--  Educational use - Enough for a beer
--  Hobbyist use    - Enough for a pizza
--  Research use    - Enough to take the family out to dinner
--  Commercial use  - A weeks pay for an engineer (I wish!)
--
----------------------------------------------------------------------------------

More Repositories

1

FPGA_Webserver

A work-in-progress for what is to be a software-free web server for static content.
VHDL
782
star
2

IntroToSpartanFPGABook

A book on using the Spartan 3E FPGA with VHDL, using the Papilio One or Digilent Basys2 boards
Shell
271
star
3

FPGA_DisplayPort

An implementation of DisplayPort protocol for FPGAs
VHDL
269
star
4

DisplayPort_Verilog

A Verilog implementation of DisplayPort protocol for FPGAs
Verilog
205
star
5

Full_Stack_GPS_Receiver

A Software GPS decoder, going from raw 1-bit ADC samples to position fix
C
141
star
6

Rudi-RV32I

A rudimental RISCV CPU supporting RV32I instructions, in VHDL
VHDL
106
star
7

ProgrammingPosters

C code that make nice posters
C
48
star
8

second_order_sigma_delta_DAC

A comparison of 1st and 2nd order sigma delta DAC for FPGA
VHDL
44
star
9

FPGA_GigabitTx

Sending UDP packets out over a Gigabit PHY with an FPGA.
VHDL
41
star
10

emulate-risc-v

A very simple RISC-V ISA emulator.
C
36
star
11

MMCM_GPSDO

An all-digital GPS disciplined oscillator using MMCM phase shift.
VHDL
27
star
12

ArtyEtherentTX

Sending raw data from the Digilent Arty FPGA board
VHDL
21
star
13

simple-riscv

A simple three-stage RISC-V CPU
VHDL
19
star
14

lfsr_scramblers

Experiments with self-synchronizing LFSR scramblers
C
16
star
15

esp32_serial_log_to_sd

A serial data logger for ESP32, used for logging GPS NMEA data
C
16
star
16

PiPico_Drummer

A simple loop drum machine for the Raspberry Pi Pico,
C
15
star
17

miniweb

A small, lightweight web server
HTML
13
star
18

falcon9_pipeline

A software pipeline to decode the Falcon 9 telemetry from the 6MS/s baseband file.
C
12
star
19

thingspeak-esp32-dht11

A ThingSpeak client for the ESP32 + DHT11 sensor
C
12
star
20

simple_gps_decode

A C module to decode raw GPS NMEA data
C
10
star
21

fft_three_ways

FFT in 'double', 'float' and fixed-point integer.
C
10
star
22

FPGA_Mandelbrot

A real-time Mandelbrot fractal viewer for FPGAs
VHDL
10
star
23

risc-v_decode_generator

Automated generator for a 32-bit instruction decoder.
C
10
star
24

audio_distortion

Measure the THD+Noise for your default audio device.
C
8
star
25

enhanced_CORDIC

A variation on the CORDIC algorithm, for enhanced performance in an FPGA
C
8
star
26

hdmi2usb_designs

Various HDL designs for the Numato Labs/Timvideos HDMI2USB FPGA board
VHDL
8
star
27

LDPC_demo

A interactive LDPC decoder, written as a proof-of-understanding of the Product/Sum algorithm.
C
7
star
28

ascii_clock

Print out the a simple ASCII art clock.
C
7
star
29

maix_guitar_tuner

A DSP Guitar tuner for the Sipeed MAiX Dock
C
7
star
30

jpeghunt

Hunt out JPEG (JFIF/EXIF) files in hard disk images and extracts them
C
7
star
31

esp32_powermon

Adding a web front end to your household power meter.
C
7
star
32

Direct_Stream_Digital_Signal_gen

Streaming bits to a FPGA pin, to generate a 1kHz test signal
VHDL
6
star
33

mypdf

A proof of concept for writing standards compliant PDF-1.7 files with minimal code (e.g. for microcontrollers)
C
6
star
34

detape

Decode IBM PC cassette audio files.
C
6
star
35

em6502

A simple 6502 emulator
C
6
star
36

GPS_IQ_Scan

Scan I/Q data for GPS space vehicle signals
C
6
star
37

bitstream_filter

VHDL to filter a bit stream into samples for SDR.
VHDL
5
star
38

esp32_led_strip

Driving a 12V RGB Strip using the ESP32's MCPWM component
C
5
star
39

barrel_shifter

A VHDL clocked 32-bit barrel shifter
VHDL
5
star
40

my_fft

Implementing DFT & FFT as a self-learning project
C
5
star
41

DesertIslandAlogorithms

Imagine you are stuck on a Desert Island, with just a simple development board and an IDE.
C
4
star
42

drummer

Prototyping a drum machine for an embedded project
C
3
star
43

write_random

Program to write a large amount of uncompressable, undeduplicatable data,
C
3
star
44

synchro_sim_for_c

A framework for simulating simple CPU designs in C rather than a HDL.
C
3
star
45

my_bmp

A utility for writing out RGB pixel data as BMP files.
C
2
star
46

microbit_maze

A maze game for the BBC micro:bit
Python
2
star
47

Logi-loader

Loader code for each platform
C
1
star
48

metastability

A test design to observe metastability
1
star