Let's make a Pi Pico 2 powered video card.
-
Well, it took me a bit to figure out that the 47pF capacitors right at the D-SUB connector are not optional, specifically on HSYNC. This explains why the RGB2HDMI would sync to things the real monitor wouldn't.
But hey look, FPGA CGA video!
I didn't properly reset the green switch which is why we got cyan instead of blue. lol. But they do all work.
The FPGA is being fed the 14.31818 clock from the Pico to simulate the ISA bus' OSC pin as an input to some future card. I'm going simulate the ISA bus with Picos until I have some idea how I'm going to connect all this business to an actual PC's ISA bus.
-
I didn't properly reset the green switch which is why we got cyan instead of blue. lol. But they do all work.
The FPGA is being fed the 14.31818 clock from the Pico to simulate the ISA bus' OSC pin as an input to some future card. I'm going simulate the ISA bus with Picos until I have some idea how I'm going to connect all this business to an actual PC's ISA bus.
It's a bit silly to talk about building an FPGA-based CGA card without mentioning the Graphics Gremlin, by @tubetime
GitHub - schlae/graphics-gremlin: Open source retro ISA video card
Open source retro ISA video card. Contribute to schlae/graphics-gremlin development by creating an account on GitHub.
GitHub (github.com)
He's already made such a thing.
I'm interested in writing my own Verilog implementation, and of course I want to stick a Pico 2 W on it so we can stream video to it, but it seems sensible to fork the Gremlin instead of re-inventing the entire wheel.
-
It's a bit silly to talk about building an FPGA-based CGA card without mentioning the Graphics Gremlin, by @tubetime
GitHub - schlae/graphics-gremlin: Open source retro ISA video card
Open source retro ISA video card. Contribute to schlae/graphics-gremlin development by creating an account on GitHub.
GitHub (github.com)
He's already made such a thing.
I'm interested in writing my own Verilog implementation, and of course I want to stick a Pico 2 W on it so we can stream video to it, but it seems sensible to fork the Gremlin instead of re-inventing the entire wheel.
There are some downsides, apparently this is a somewhat expensive card to build, just looking through forum discussions. But it's been five years, maybe there are better/cheaper FPGA options available today?
-
There are some downsides, apparently this is a somewhat expensive card to build, just looking through forum discussions. But it's been five years, maybe there are better/cheaper FPGA options available today?
The Gremlin uses a Lattice iCE40 HX FPGA that costs about $20. That's not outrageous.
It has 7680 LUTs.
The Cyclone V I'm using has 110,000, but then again this FPGA is massive overkill. It can emulate a Nintendo 64, after all. -
The Gremlin uses a Lattice iCE40 HX FPGA that costs about $20. That's not outrageous.
It has 7680 LUTs.
The Cyclone V I'm using has 110,000, but then again this FPGA is massive overkill. It can emulate a Nintendo 64, after all.A lot has changed in the last 5 years since the Gremlin was specc'd out.
This is a Tang Nano 9k. It's about $22 on AliExpress.
It has 8640 LUTs, onboard SPI flash, and an HDMI port (!)
It could be socketed so you could take it out and use it for something else if you got bored with your ISA GlyphBlaster.

-
A lot has changed in the last 5 years since the Gremlin was specc'd out.
This is a Tang Nano 9k. It's about $22 on AliExpress.
It has 8640 LUTs, onboard SPI flash, and an HDMI port (!)
It could be socketed so you could take it out and use it for something else if you got bored with your ISA GlyphBlaster.

There's even a Tang Nano 20K now that has 8MB (yes MB) of SRAM on-board, and an SD-card reader. It's $45.
That's like your whole ass GlyphBlaster right there, just add bus buffers and a de-9 port.
-
I'm starting to think a pico is not the appropriate thing to build a video card with.
all my fun ideas always end up with me concluding i should use an FPGA.
FPGAs are like the crabs of electronics projects. everything wants to turn into an FPGA if you give it enough time.
@gloriouscow to be honest going FPGA would kill most of the tingle that project caused in my brain.
I'm obsessed now with the idea of an IBM compatible build only out of picos.
I will follow your progress with interest anyway. I like your way to think and your presentation style. Jeep up the food work.

-
@gloriouscow to be honest going FPGA would kill most of the tingle that project caused in my brain.
I'm obsessed now with the idea of an IBM compatible build only out of picos.
I will follow your progress with interest anyway. I like your way to think and your presentation style. Jeep up the food work.

@Hackbroetchen No, I get where you're coming from. I did joke that using an FPGA makes it feel like it's no longer a hack.
I start a lot of projects - its a bad habit of mine. It often seems like I abandon things, but there's a method to my madness. Many of my "new" projects are investments in acquiring knowledge and skills to finish older projects, while still getting to do fun stuff.
I've wanted to know how to program FPGAs for a while - I need the power of an FPGA to make a version of my ArduinoX86 that can run chips at full speed.
Making a digital logic simulation of the CGA would have otherwise been a distraction project, but making the Verilog MC6845 for it was the first step in learning FPGA programming. I wouldn't be sitting here with working video if I didn't already have a Verilog MC6845 written that I could just plop in.
This has all been planned. These are all pieces of a puzzle - my ultimate goal is an art piece - a cycle-accurate IBM 5150 replicated in on an FPGA, with a real 8088 at its heart, using one of those beautiful white ceramic and gold packages. I want to mount the CPU socket in a cutout in something like polished black plexiglass. So you just see the CPU, as if it were running all on its own.
It will be my love letter and tribute to the chip that started my journey into computing.
...All that said, I think I will still finalize the original, font-ROM based GlyphBlaster PCB. It's inexpensive, easy to install, and it's funny.
Maybe I'll call the FPGA version the GlyphBlaster Pro.
-
@Hackbroetchen No, I get where you're coming from. I did joke that using an FPGA makes it feel like it's no longer a hack.
I start a lot of projects - its a bad habit of mine. It often seems like I abandon things, but there's a method to my madness. Many of my "new" projects are investments in acquiring knowledge and skills to finish older projects, while still getting to do fun stuff.
I've wanted to know how to program FPGAs for a while - I need the power of an FPGA to make a version of my ArduinoX86 that can run chips at full speed.
Making a digital logic simulation of the CGA would have otherwise been a distraction project, but making the Verilog MC6845 for it was the first step in learning FPGA programming. I wouldn't be sitting here with working video if I didn't already have a Verilog MC6845 written that I could just plop in.
This has all been planned. These are all pieces of a puzzle - my ultimate goal is an art piece - a cycle-accurate IBM 5150 replicated in on an FPGA, with a real 8088 at its heart, using one of those beautiful white ceramic and gold packages. I want to mount the CPU socket in a cutout in something like polished black plexiglass. So you just see the CPU, as if it were running all on its own.
It will be my love letter and tribute to the chip that started my journey into computing.
...All that said, I think I will still finalize the original, font-ROM based GlyphBlaster PCB. It's inexpensive, easy to install, and it's funny.
Maybe I'll call the FPGA version the GlyphBlaster Pro.
@gloriouscow looking forward to that!
-
@gloriouscow looking forward to that!
@Hackbroetchen I might revisit the PIco stuff.
... honestly I bet a lot of the issues I was having with the Pico was just that damn capacitor.
-
There's even a Tang Nano 20K now that has 8MB (yes MB) of SRAM on-board, and an SD-card reader. It's $45.
That's like your whole ass GlyphBlaster right there, just add bus buffers and a de-9 port.
Turns out the 244 buffer I pulled out of my cheapo amazon special Box o' Components was just bad, or maybe I inadvertently killed it.
In any case, I replaced it with one from the Chameleon and most of my signal issues cleared right up.
-
Turns out the 244 buffer I pulled out of my cheapo amazon special Box o' Components was just bad, or maybe I inadvertently killed it.
In any case, I replaced it with one from the Chameleon and most of my signal issues cleared right up.
Translating my digital simulation into Verilog proceeds slowly. It's nice that I can copy and paste parts of the sim and export them to Verilog in isolation, then it's a a matter of simplifying things and making connections back to the main file.
I've got the font ROM in place and the chargen serializer. To test it, I hardcoded the font ROM's upper 8 address, then I AND the serializer output directly with the color switches.
What does that all mean? We have smiley faces!

-
Translating my digital simulation into Verilog proceeds slowly. It's nice that I can copy and paste parts of the sim and export them to Verilog in isolation, then it's a a matter of simplifying things and making connections back to the main file.
I've got the font ROM in place and the chargen serializer. To test it, I hardcoded the font ROM's upper 8 address, then I AND the serializer output directly with the color switches.
What does that all mean? We have smiley faces!

Now I get to translate this hot mess into Verilog.
Yay.

-
Now I get to translate this hot mess into Verilog.
Yay.

the nice thing is i can just export things to GPIO pins, and then just look at the signal in the simulation and on my scope, and just visually check that they're doing the same thing
-
Translating my digital simulation into Verilog proceeds slowly. It's nice that I can copy and paste parts of the sim and export them to Verilog in isolation, then it's a a matter of simplifying things and making connections back to the main file.
I've got the font ROM in place and the chargen serializer. To test it, I hardcoded the font ROM's upper 8 address, then I AND the serializer output directly with the color switches.
What does that all mean? We have smiley faces!

@gloriouscow I realized I only understand about 1/8 of all the things you say here. But I'm 100% here for this content.
-
@gloriouscow I realized I only understand about 1/8 of all the things you say here. But I'm 100% here for this content.
@970uts1d3 that's fine, I understand less than 1/8 of what i post
-
@970uts1d3 that's fine, I understand less than 1/8 of what i post
-
@970uts1d3 that's fine, I understand less than 1/8 of what i post
-
the nice thing is i can just export things to GPIO pins, and then just look at the signal in the simulation and on my scope, and just visually check that they're doing the same thing
Good enough, ship it

-
Good enough, ship it

I made it worse

