All Projects → ultraembedded → FPGAmp

ultraembedded / FPGAmp

Licence: Apache-2.0 license
720p FPGA Media Player (RISC-V + Motion JPEG + SD + HDMI on an Artix 7)

Programming Languages

c
50402 projects - #5 most used programming language
Verilog
626 projects
python
139335 projects - #7 most used programming language
assembly
5116 projects
objective c
16641 projects - #2 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to FPGAmp

getting-started
List of ideas for getting started with TimVideos projects
Stars: ✭ 50 (-73.68%)
Mutual labels:  fpga, mjpeg, hdmi, risc-v
QNICE-FPGA
QNICE-FPGA is a 16-bit computer system for recreational programming built as a fully-fledged System-on-a-Chip in portable VHDL.
Stars: ✭ 51 (-73.16%)
Mutual labels:  fpga, sd-card, vga
Riscv Cores List
RISC-V Cores, SoC platforms and SoCs
Stars: ✭ 471 (+147.89%)
Mutual labels:  fpga, risc-v
Platformio Core
PlatformIO is a professional collaborative platform for embedded development 👽 A place where Developers and Teams have true Freedom! No more vendor lock-in!
Stars: ✭ 5,539 (+2815.26%)
Mutual labels:  fpga, risc-v
Ustc Rvsoc
FPGA-based RISC-V CPU+SoC.
Stars: ✭ 77 (-59.47%)
Mutual labels:  fpga, risc-v
Riscv
RISC-V CPU Core (RV32IM)
Stars: ✭ 272 (+43.16%)
Mutual labels:  fpga, risc-v
Cores Swerv
SweRV EH1 core
Stars: ✭ 406 (+113.68%)
Mutual labels:  fpga, risc-v
Core jpeg
High throughput JPEG decoder in Verilog for FPGA
Stars: ✭ 64 (-66.32%)
Mutual labels:  fpga, mjpeg
Icestation 32
Compact FPGA game console
Stars: ✭ 93 (-51.05%)
Mutual labels:  fpga, risc-v
Riscboy
Portable games console, designed from scratch: CPU, graphics, PCB, and the kitchen sink
Stars: ✭ 103 (-45.79%)
Mutual labels:  fpga, risc-v
Neorv32
A small and customizable full-scale 32-bit RISC-V soft-core CPU and SoC written in platform-independent VHDL.
Stars: ✭ 106 (-44.21%)
Mutual labels:  fpga, risc-v
my hdmi device
New clean hdmi implementation for ulx3s, icestick, icoboard, arty7, colorlight i5 and blackicemx! With tmds encoding hacked down from dvi standard. Supports DDR and SRD tranfser!
Stars: ✭ 66 (-65.26%)
Mutual labels:  hdmi, vga
simple-riscv
A simple three-stage RISC-V CPU
Stars: ✭ 14 (-92.63%)
Mutual labels:  fpga, risc-v
Firesim
FireSim: Easy-to-use, Scalable, FPGA-accelerated Cycle-accurate Hardware Simulation in the Cloud
Stars: ✭ 415 (+118.42%)
Mutual labels:  fpga, risc-v
super-miyamoto-sprint
Homebrew game for homebrew FPGA game console
Stars: ✭ 48 (-74.74%)
Mutual labels:  fpga, risc-v
Darkriscv
opensouce RISC-V cpu core implemented in Verilog from scratch in one night!
Stars: ✭ 1,062 (+458.95%)
Mutual labels:  fpga, risc-v
KyogenRV
The Simple 5-staged pipeline RISC-V written in chisel3 for intel FPGA.
Stars: ✭ 37 (-80.53%)
Mutual labels:  fpga, risc-v
Biriscv
32-bit Superscalar RISC-V CPU
Stars: ✭ 208 (+9.47%)
Mutual labels:  fpga, risc-v
Cores Swerv El2
SweRV EL2 Core
Stars: ✭ 79 (-58.42%)
Mutual labels:  fpga, risc-v
Tang e203 mini
LicheeTang 蜂鸟E203 Core
Stars: ✭ 135 (-28.95%)
Mutual labels:  fpga, risc-v

FPGA Media Player

This project is a FPGA based media player which is capable of playing Motion JPEG encoded video over HDMI or VGA on commonly available FPGA boards.

Features

  • 1280x720 [720p50 / 'standard HD'] 25fps video (also supports 24fps)
  • 44.1KHz stereo audio (I2S or SPDIF)
  • Hardware accelerated JPEG decoding
  • SD/MMC card interface (FAT16/32 support)
  • MP3 playback (SW codec)
  • JPEG stills display
  • IR remote control

Rationale

Why? For the fun of it!
This project was an interesting test case for a number of my open-source digital IPs (RISC-V CPU, audio+video controllers), and also brings together various SW projects that I had written in years past (RTOS, FAT32 library).

Supported Hardware

ArtyA7

Cloning

This repo contains submodules.
Make sure to clone them all with the following command;

git clone --recursive https://github.com/ultraembedded/FPGAmp.git

Block Diagram

Block Diagram

Project Files

The FPGA gateware for this project is constructed from various sub-projects;

On the firmware side, this project uses;

Getting Started

The firmware needs to be built with the 32-bit RISC-V (RVIM) GCC;

# 1. Build firmware
cd firmware/app
make

# 2. Copy firmware/app/build.riscv.boot/boot.bin to a FAT32 SD card

The bootROM in the FPGA fabric will automatically load 'boot.bin' from the SD card root directory.
NOTE: The SD card must be formatted as FAT16 or FAT32 and not EXFAT!

Debug messages will be comming out of the ArtyA7 USB-UART @ 1M baud (8N1).

IR Remote

The project can be controlled via an IR remote (NEC protocol, currently).
The IR codes are device-specific but can be changed here;

// firmware/app/ir_decode.h
#define IR_CMD_RIGHT    0x20df609f
#define IR_CMD_LEFT     0x20dfe01f
#define IR_CMD_DOWN     0x20df827d
#define IR_CMD_UP       0x20df02fd
#define IR_CMD_BACK     0x20df14eb

Handily, the UART outputs any received IR codes so it is relatively straight forward to tune the controls to a new remote.

IR Connection

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].