A Slim 7400 Logic VGA Board For All Your Retro Needs

Over the years we’ve seen a number of hackers generate VGA with 74xx logic chips, but they’ve generally not been the most practical of builds. Often put together as part of a competition or purely for the challenge, these circuits are usually implemented in a mass of jumper wires and often take up multiple breadboards. Not exactly something you can toss in a drawer when you’re done with it.

But the Vectron VGA Plus, created by prolific hacker [Nick Bild], manages to improve on things considerably. Designed specifically to be smaller and simpler than its predecessors, the custom PCB contains far fewer chips than we’re used to seeing for this kind of thing. At the same time it provides a handy header row along the bottom that allows the user to connect whatever they’re working on, from microcontrollers to retro computers.

When your breadboard looks like this, it’s time for a PCB.

It looks like the PCB could still be shrunk down considerably if you’re really looking to maximize desk space, but we imagine for his purposes, [Nick] felt this was more than compact enough. Especially when you look at what the same circuit looked like during the breadboard phase. Yikes.

So, what did it take to simplify this 640 x 480 VGA interface? The short answer is adding more RAM. Wherever possible, dedicated hardware was replaced with software operations that could be performed by the externally connected device. [Nick] has provided some sample code for the Arduino that lets the microcontroller push data into the board’s memory and take control.

We can trace the origins of this project back a few years, to when [Nick] was working on adding an LCD to his homebrew 6502 computer. A few months later he put together the earlier version of this board, the Vectron VGA, before switching gears and handing VGA generation duty over to a FPGA. We’re excited to see the next evolution of this project, and given the track record of this particular hacker, we shouldn’t have to wait long before it hits our inbox.

10 thoughts on “A Slim 7400 Logic VGA Board For All Your Retro Needs

  1. “………this 640 x 480 VGA interface?”

    Actually, it’s a 320 x 480 interface that complies with 640×480 VGA standard timing. As described, the pixel clock is derived from the standard 25.175 MHz master by dividing by 2. Unless you resort to more complex circuitry with interleaved address counters and RAM, you won’t reliably get 640 horizontal pixels with plain old 74HC/74LS logic. That requires a pixel out every 39.7nS and the “typical”, let alone the worst case, specified propagation delays of the cascaded logic add up to about that if not a little more.

    It doesn’t really take that much extra logic to fully decode both the sync timing and the blanking intervals in hardware and that does come with the convenience that you’ll never have to bother programming the RAM for timing.

    It doesn’t look like the blanking intervals are decoded at all in this design, so there are areas of memory corresponding to these intervals that will need to be zeroed upon initialization and then avoided thereafter.

    I guess deriving the sync signals from RAM is neat if the goal is minimal hardware, but a skim of the schematic doesn’t reveal anything obviously specific to prevent the design from putting out un-blanked video and random data streams on the sync lines after it is initially powered up, before you’ve had a chance to program it. Some of my old and dumb (analogue) CRT (S)VGA monitors would throw a tantrum if fed such a signal.

    1. Hmm, skimming the schematic a little more I notice that the data port is unidirectional – that is data can only be written to video RAM and not read.

      I get that a goal here has been minimal hardware, but that’s a simplification that might go a little too far when you realise the capabilities lost by not being able to read the video RAM – block copying part of the display to another other part, saving generated video display data and collision detection, for example.

      Screen painting routines similar to MS Paint’s bucket fill require the last one. I wrote a primitive version of such a routine to demonstrate the capabilities of my own 74-logic VGA video card design. It was used extensively in this demo (to fill the body of the vehicle being drawn):

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.