Let’s Build a Video Card
eater.net
eater.net
His videos are interesting and informative, and while he does offer kits to build all this stuff from his site, the part lists are there should you want to source your own (not always easy if you try to do it on the cheap and get your parts from the likes of Ali Express and Ebay).
Overall his projects are fascinating for anyone with interest in retro computing or learning how computers work at the lowest level, and the videos are easy to follow and more than just a "how to put this together" tutorial.
I'm on the RAM-building portion of the 8-bit breadboard computer for exactly this reason. I wanted to bridge the gap between (this is an electric circuit that lights an LED) and (this is how you can take a simple inverter and a logic gate to build a D flip flop, which can power registers, SRAM, and more) and (this is an 8-bit example of a Von Neumann Architecture computer).
His videos are perfect for that. Very well made and I don't have to take classes in circuit design or digital logic control & design at a college to learn the high level of how this works.
tl;dr is what the sibling comment already explained: low clock rates.
Previous thread for those who are curious: https://news.ycombinator.com/item?id=20614129
It's pretty neat that we now have microcontrollers that are fast enough to drive VGA at decent resolutions.
The FabGL library: http://www.fabglib.org/
https://www.youtube.com/watch?v=2iURr3NBprc
I highly recommend his videos and kits. He's a great teacher.
DisplayPort is packetized, but not in a 100% sane way. You would expect that clean slate purely digital interface designers would at least optionally allow sending whole screen update at a time. Alas you are still sending same VGA formatted pixel stream (Hsync/Vsync/blanking), just chopped into TUs (32-64 symbol Transfer Units) with stuffing (aka never used garbage) between them, even when connected to eDP display supporting Panel Self-Refresh (own frame buffer inside display).
The timings aren't 100% vga anymore. DVI and HDMI support reduced blanking mode, which shortens vblank to lower the wasted time lower the dotclock requirements for a given resolution.
Also, lcd panels are still scanned out pixel by pixel, line by line. There is no reason to put a much wider interface between the panel and the LCD controller.
HDMI signalling is actually extension of DVI, it embeds TERC4 data islands containing extra metadata and PCM audio during blanking interval. (yes, I was surprised at beginning but HDMI/DVI also have blanking periods just as VGA)
https://warmcat.com/hardware%20design/hdmi/fpga/2015/10/21/h...
It doesn't have any error detection or correction. The timing of the signal is still based on CRT TV's.
Really the whole lot should be done away with and replaced with something properly bidirectional, and preferably IP based so it can be routed anywhere.
https://web.archive.org/web/20120813201146/http://www.ddwg.o...
https://web.archive.org/web/20190520020308/http://hamsterwor...
https://web.archive.org/web/20190520020602/http://hamsterwor...
edit: as pointed in other comment, lowest bit clock is 250MHz, which might be a problem, it seems fastest discrete logic chips are topping out at ~150MHz
https://en.wikipedia.org/wiki/MOS_Technology_6502#Technical_...
I guess Ben knows this, but avoided it for some reason. Perhaps interleaving the timing on a breadboard isn't that easy? Never tried it myself.
I've also noticed that he'll start simple and then layer on more complex things as the series progresses. No idea if he's planning on doing that here, but a good example was with the 6502 computer where he implemented it out of the gate with no RAM so that the video could focus on getting things up and running.
Yes! Connected to this, he uses approaches that are biased toward simple implementation that 'mere mortals' can actually get working.
The videos are well explained and the kits are a really easy way to follow along.
> You need to enable JavaScript to view this site.
And mine was a joke about trying to browse the web with javascript turned off.