Close

VGA is Up - VexRiscV CPU - Text Mode

A project log for Pano Logic Zero Client G1

Documenting the internals of the first gen for hobby use

tom-verbeureTom Verbeure 06/04/2018 at 07:070 Comments

PCB Reverse Engineering Progress

The most important resource are the connections between the FPGA and its surroundings. That information is captured in the top.ucf file.

Right now, I have the following interface have been completed:

VGA Bringup

With everything in place to create video signals, and some pretty simply RTL code, you can now see the following:

Under the Hood: VexRiscV CPU

With video figured out, it’s time to move to bring up other interfaces. Audio is quite simple, so that’s high on the list.

But we really need a CPU to make that kind of bringup easy. For example, the Wolfson CODEC is configured through I2C. I’m already using a bit-banged I2C master on a Nios2 for my eeColor Color3 project. I want to do the same here.

That’s why the project now also has a VexRiscV!

A seperate post will go into the details about the specifics of this RISC-V core, but the most important reasons to choose this one over the ubiquitous PicoRV32 are:

At this time, the CPU is only used to blink the LEDs (yay!). That’s because some other infrastructure is necessary to really start using it: as way to tell the user what’s going on. That’s why the following was developed:

Text Mode Output

And as of today, there is also a character generator:

Hello World!

The GitHub repo is always in a state of flux, but that example can be generated by syncing to this commit.

The screen buffer hasn’t been connected to the CPU yet, but once that’s done, everything will be in place to start driving other parts of the PCB.

(Sadly, the Commodore 64 font will be replaced by the vintage IBM 8x12 character set, since the latter is ASCII mapped out of the box.)

Conclusion

Lots of progress. More to come!

Next step: getting audio-out to work.

Original version of this log.

Discussions