projf / display_controller

FPGA display controller with support for VGA, DVI, and HDMI.
MIT License
205 stars 29 forks source link

Consider collaboration with the TimVideos / HDMI2USB project? #7

Open mithro opened 5 years ago

mithro commented 5 years ago

Hi!

My @TimVideos group has a project called HDMI2USB.tv which aims to produce open source gateware, firmware and hardware for recording user groups and conferences. For this reason we have FPGA gateware for decoding TMDS signals which I gave a talk about here. As part of that talk, I put together a Python repository around TMDS Decoding but never got around to finishing it.

It seems like we could potentially collaborate together? I have also given a talk with @bunniestudios about our collaboration with him on the NeTV2 project. What are you goals for this project?

I have a long term goal of creating a thing called "PixelBone" but I only as far as starting a design document.

We mostly use a technology called Migen for writing our gateware. I have found it a very productive way to do FPGA development which I've talked about here. The core we use for our video is called LiteVideo and can be found here. Migen can interface pretty easily with Verilog.

If you want to chat with us, you can join us on irc.freenode.net on the #timvideos IRC channel.

Thoughts?

WillGreen commented 5 years ago

Hi Tim,

Always good to hear from a fellow FPGA graphics enthusiast.

Your project looks interesting, but is more video focused than I am right now.

My main projects at the moment are 2D graphics related, including a custom riscv co-processor for racing-the-beam effects. You can see crude early output at https://twitter.com/WillFlux/status/1125158026485403654. It will be possible to write graphics or video filters in software that run in realtime on the FPGA. I'm also working on other basic 2D functionality, such as sprites and bitmaps.

Once I have the 2D work in good shape I'm looking at full HDMI source support, including data islands. Eventually I want to add HDMI sink & decoding functionality, but that is some way off.

I am aware of minigen, but have stuck to plain old Verilog for now, despite using Python a fair bit. It's one of those things I mean to look at properly, but never quite get around to.

Cheers, Will

mithro commented 5 years ago

I think the most interesting area for collaboration would be around developing a PixelBone standard. Wishbone and AXI have been big parts of enabling reuse and it would be awesome to have something similar focused on graphics / pixel related topics.

As you are writing a tutorial around doing graphics processing it could be a good way to get new developers to think about the different ways pixel data and things like timing, resolution, etc are connected.

WillGreen commented 5 years ago

PixelBone is an interesting idea. I'll have a proper read of your doc and give it some thought.

mithro commented 5 years ago

BTW Most of my thinking around PixelBone is capture in this document.