Hacker News new | ask | show | jobs
by jaak 2540 days ago
Not to take away from Quinn Dunki's accomplishments, one big difference is the Veronica used an ATmega 324PA - basically an 8 bit 20 MIPS RISC CPU.

Generating a VGA signal is trivial for this powerful chip. Entire retro game consoles have been built with similar ATmega chips alone

Ben Eater is building a VGA card from discrete components, a somewhat more difficult task. The first part covers building the H/V timing sync circuit (no programmable clock source here!). It's worth taking a look if you're into this kind of thing.

4 comments

Even more amazing, after watching Ben's video, I was thinking too myself "That wasn't so hard". Other than a few Arduino projects I've never used an IC, but I was able to follow along with Ben completely.

In fact, I think that a tutorial dedicated just to explain the VGA standard, the same length as Ben's tutorial, would have been less clear and informative.

Generating a VGA signal is trivial for this powerful chip. Entire retro game consoles have been built with similar ATmega chips alone

For comparison, a slightly less powerful microcontroller can do this:

https://www.linusakesson.net/scene/craft/

>Ben Eater is building a VGA card from discrete components

From 7400 series devices, which are very simple integrated circuits by modern standards, but still integrated circuits.

"From 7400 series devices, which are very simple integrated circuits by modern standards"

So it's clear, a 74xx is just a bunch of NAND gates. Nothing at all higher level than that.

Except they're not. He's using 74161 counters; that's a MSI device, not just primitive combinatorial logic and flip flops.
Ahh, good catch. I was distracted with the 7400 description. Though a 4 bit counter isn't terribly high level either.
Counters are a series of flip-flops anyway, right? And a few latches for reset and load.

https://easyeda.com/normal/74161X2-4qkCwOIZh.png

Although NAND gates are universal gates (any combinatorial boolean logic function can be built from nothing but NAND gates), in practice it's usually more space efficient to use a mixture of different gates.
And usually more power-efficient and faster in execution speed.
Among my group of SW engineering circle, we had a running joke that software is a series of 1s and 0s, it is the sequence that is important.
To be fair, it's almost impossible to build anything out of fully discrete components these days. If you use a TO series transistor, you could argue those are also ICs and vacuum tubes/relays aren't cheap or too easily accessible.
Chip photography site zeptobars.com has some photographs of modern transistors, and while some have interesting geometry, I didn't see anything that I'd consider an integrated circuit, i.e. something that would be drawn as more than a single transistor symbol on a schematic.

https://zeptobars.com/en/read/NXP-PMST3904-NPN-BJT

https://zeptobars.com/en/read/NXP-MMBT3904-npn-bjt

https://zeptobars.com/en/read/NXP-2N7002-TrenchMOS-N-Channel...

There are some "discrete" transistors with built-in ESD protection, e.g. NCV8440A, but those are unusual, and under normal operating conditions they work just like a normal transistor so I'd still count them as discrete components.

Transistors in individual packages are called discrete components. Even if they use the same technology as ICs, they're still discrete. You can certainly build useful analog and power circuits with only discrete components. Somebody even made a CPU from them [1] which was a much bigger circuit than TFA's IC video card will be so it's worth distinguishing truly discrete from simple ICs.

[1] https://monster6502.com/

Similar to the difference between asm (discrete), C (low level logic ICs), and Python (ATmega).
Also, his video makes it seem rather easy aswell. The scanline circuitry is quite simple.
>Also, his video makes it seem rather easy aswell. The scanline circuitry is quite simple.

Making it seem easy != easy

Generating a completely given digital signal should be easy, no?