Stats

3
Projects
13
Devlogs
20
Votes
1
Ships

Coding Time

All Time: 45h 16m
Today: 0h 20m

Member Since

June 16, 2025

Badges

1
🚢
Maiden Voyage
you shipped your first project! the journey begins...

Projects

3
Custom Hardware GPU
1 devlog about 22 hours ago
🚀
3 devlogs about 2 months ago
Hardware SPI implementation
9 devlogs about 2 months ago

Activity

First devlog!!! The functional model of the GPU works! Basically, before going straight to hardware, I wanted to make a simple python implementation to actually understand the algorithms, and this is the semi-complete version of that.
Although it doesn't support stuff like shading and texturing yet, I think I'll just go with this and put it into hardware for now since the SoM deadline is creeping ever closer...
There are some visual bugs, but I think (for the most part) they are caused by floating point errors and no pixel subsampling, which will not be the case in hardware.

Shoutout LonePi for making music to keep me sane while making this

Update attachment
Nicholas West
Nicholas West created a project
22h ago

Custom Hardware GPU

A fixed-function GPU running on custom hardware using an FPGA! Very work in progress, but the end goal is to have it be capable enough for video games.

Custom Hardware GPU
1 devlog 0 followers

Finally updated the other pages, and added all the images with new formatting!

Update attachment

I made the background less nauseating, added button looking things, and updated some of the text!

Update attachment

Added a nice skeumorphic-ish background and re-learned css because it's been a while...

Update attachment
Nicholas West
Nicholas West created a project
45d ago

Website refresh

My website hasn't been updated in a while, time to fix that! More content will be added, the design will be changed, and I might even try some WASM (maybenoguarantees)

3 devlogs 0 followers

Updated the docs even more!

Update attachment

Documentation is started! I've made some improvements to master and slave mode, and I've documented how master can be used. Although writing documentation sucks... I think I'll choose not to write it for the slave mode.

Either way, soon I should have a video demo ready, and it can be shipped!

Update attachment

I've made some improvements to the master implementation, now you can select the SPI speed with the switches. Although for some reason the 7 segment display glows now... doesn't change the fact that it works.

Tomorrow I'll try to improve the slave module. I don't think I'll add support for the other SPI modes before shipping I'm afraid, since I want to move on to my next project sooner rather than later.

Update attachment

Master mode works! It's both transmitting and receiving correctly. This demo is running pretty slowly, but that's an issue of the code I wrote to drive it, and could totally be improved in an actual non-test implementation. Either way, with a few improvements I'll ship this!

Update attachment

The master mode implementation is almost done! Now it's on to verification and running it in hardware. After that, it's probably ship time!

Update attachment

FIFO version works! I've managed to get it to speeds of 480 kB/s running a simple echo (see screenshot), and that's just on the base 100 MHz system clock. In an actual implementation, it could probably go quite a bit higher, as I have a good amount of slack on the timing reports. From here, I'll probably try to clean up the organization a bit and separate the modules out a little more as to make them a bit more interchangeable, before adding AXI bus support then adding a master mode version. Who cares about supporting SPI mode 1, 2, and 3 after all...

Update attachment

Making lots of good progress on the version with FIFOs, now on to the debugging step!

Update attachment

I've finally added the repo and made it all public! Along with that, I've started to focus in on what I want this project to be. Since I want to make a custom SoC over the summer (and probably longer who am I kidding), I now want to provide myself some useful tools for when I do. Both in the form of learning and because SPI is a pretty important format to support. Because of that, I'll next try to focus on making a mode 0 slave with FIFOs, then a master, hopefully capable of supporting all modes. Only time will tell!
For the actual code, I've made some improvements, made the modules more flexible, and added reset support where it's needed.

Update attachment

It works! This is just a mode zero slave for now, but hopefully I can extend the functionality and add stuff like FIFOs and other modes soon. I'll also upload it to GitHub soon, once I figure out a way to make it play nicely with Vivado

Update attachment
Nicholas West
Nicholas West created a project
55d ago

Hardware SPI implementation

A fully custom HDL description of an SPI core. Can be used for communication, hopefully will have more features soon!

Hardware SPI implementation
9 devlogs 2 followers Shipped
Nicholas West
Nicholas West joined Summer of Making
56d ago

This was widely regarded as a great move by everyone.