In this blog I share my observations, thoughts and experience about computers, linguistics, philosophy and many other things that interest me.

Friday, December 05, 2025

First Light

Today I sat down and didn't get up until something worked

The first issue was embarrassingly simple: my PLL configuration specified 50 MHz as the input frequency, but the GateMate board has a 10 MHz oscillator. This is clearly visible in the board schematics, and also in Michael Schroeder's SpaceInvaders project for GateMate, which I should have looked at more carefully months ago.

Speaking of SpaceInvaders - I built and uploaded it first, just to verify the entire toolchain and hardware path was functional. The Dell monitor showed the game. Proof that the magic is possible.

Next discovery: my Dell TFT monitor apparently doesn't like 720×400 at 70 Hz. Whether it's the refresh rate or something else, I couldn't get a stable image with those timings. So I made a pragmatic decision: stick with the canonical 640×480 at 60 Hz, 25.175 MHz pixel clock. This is the most widely supported VGA mode in existence. Sometimes compatibility beats nostalgia.

Then came several hours of debugging, patching, and one commit.

And then - this:

It's not pretty. The characters are from some test pattern - card suits and symbols, repeating. The display shows two horizontal bands with the same glyphs, one inverted color scheme, one normal. There are visible timing issues, alignment problems, and the whole thing looks rather rough.

But it's my VHDL code generating this. The VGA timing module, the character lookup, the pixel generation - all of it synthesized and running on the GateMate. After four months of accumulating code and theory, something finally exists on a screen.

The real work starts now.


No comments: