GithubHelp home page GithubHelp logo

splinedrive / my_hdmi_device Goto Github PK

View Code? Open in Web Editor NEW
85.0 5.0 12.0 1.84 MB

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!

License: ISC License

Makefile 0.12% Verilog 3.94% SystemVerilog 1.02% Shell 0.03% GLSL 94.89%
hdmi dvi ice40 ulx3s ddr sdr tmds verilog icoboard icestick

my_hdmi_device's Introduction

my_hdmi_device is an implementation based of reading fpga4fun, ulx3s dvi (vga2dvi) examples and larries hdmi blackicemx example. I learned from reading the code, but I haven't understood too much. That is why I rewritten the tmds encoder directly from dvi standard, Page 29. without any problems. And to learn about tmds encoding and why we have lvds and what are the problems in general, why we have 8b10b and more. The idea to shift and to have faster clock I have seen in all implementations. I learned about DDR and SDR transmission :) Howto do it on ice40k I learnd from mystrom and larries example hdmi code. The technic of vga, balls and stars I have learned from Steven Hugg (Designing Video Game Hardware in Verilog). I used the parts for calculating the vga timings from ulx example code, because normally you see the stupid values fixed in tables. I have written all from scratch over the christmas days and I used the hdmi pmod from Luke Wreen as a gift from ultraembedded. I want to share what I figured out and works. Maybe the code could be a new base for other projects. Just use tmds_encoder, hdmi_device.h and learn from top module and you are prepared for the next project.

This code runs on blackicemx and ulx3s-85F (but you are able to adjust the Makefile and generating lesser balls). I don't want to go deep in thing, because I want to learn many fpga designs in the future. But you have to start with the basics first.

I have used this pmod for ice40 based fpgas: https://github.com/Wren6991/DVI-PMOD

Todo: hdmi-audio (island)

ulx3s: make prog

blackicemx:

make -f Makefile.blackicemx prog

icoboard:

make -f Makefile.icoboard prog

icestick: cd icestick__hack make prog

arty7: make -f Makefile.arty7 prog But doesn't work, just use vivado SDR/DDR is working just use `define ARTY7 in vivado

colorlighti5: make -f Makefile.colorlighti5 prog

tangnano4k: `define NANO_4K
open prj file nano4k/my_hdmi_nano/my_hdmi_nano.gprj \

Have fun!

Hirosh

hdmi

my_hdmi_device's People

Contributors

hansfbaier avatar splinedrive avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

my_hdmi_device's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.