Making a VGA Driver in SystemVerilog

30 pointsposted 5 hours ago
by derHackerman

6 Comments

wildzzz

3 hours ago

I remember working on a project like that in my Digital Design II class. We built a VGA driver to display a chessboard but the real challenge was that we couldn't use a framebuffer, that would have been too easy. We had to build a logic circuit to display the chessboard, a piece on the board (a bitmap), and then use inputs to move the chess piece around. We also used the ARM processor onboard the Cyclone FPGA to run Linux where we wrote a program in C to send board positions to that chessboard logic circuit.

It was kinda hard and I struggled a bit but got it working in the end.

paulryanrogers

3 hours ago

It is delightful how college can push us to explore things we might not ever do left to our own. Despite customizing my major's concentration, I still got a lot of exposure to classes and topics outside my comfort zone. It helped me with a couple crucial pivots and layed the foundation for changing my worldview.

Thanks to all the great professors, TAs, and even uni admins who make the system work (at least when it does work).

rustyhancock

3 hours ago

It's lamentable that our TVs don't come with VGA inputs or even DVI.

My first "nice" flatscren in 2012 or so had both VGA inputs and a DB9 serial port I could control the TV over!

dlcarrier

2 hours ago

HDMI accepts DVI signals; all you need is a passive adapter, to connect a DVI-D output to an HDMI input.

rustyhancock

2 hours ago

Yea I should have been more specific DVI-A is gone.

That said last year I needed HDMI output used a tang nano 9k (£10) and GOWINs free IDE and IP cores were a breeze to use.

The DVI core basically takes what I remember being a VGA signal.

Their HDMI core IIRC just took a framebuffer.

So my complaining is probably in the vein of old many yells at cloud.

dlcarrier

2 hours ago

DVI's signal is pretty similar to VGA, to the point that it has separate red, green, and blue channels, but instead of analog outputs it has LVDS serial outputs on each channel. It basically replaces each RAMDAC with the serial side of a SERDES.