Skip to content
View EdwardStables's full-sized avatar

Block or report EdwardStables

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
EdwardStables/README.md

Hi there!

I'm Ed, a hardware engineer working at Innosilicon developing GPU texture processing hardware and internal tooling. This page links to some of my personal projects.

VPU (Voxel Processing Unit)

A just-for-fun voxel based display processor. This encompasses a hardware simulation (C++), hardware design (SystemVerilog), high level algorithm test platform (Zig), DSL compiler (Zig), and various python scripts to tie everything together.

  • The hardware definitions, test programs, and assembler are found here.
  • The C++ simulation of the hardware is here.
  • A real-time simulator debugger is here, written in C++ and communicating with the simulator using gRPC to monitor the framebuffer and step the simulation.

The hardware design and compiler won't be made public until they're at least partially usable.

This also includes a VGA driver design. I put this together for fun a while ago, but only recently resurrected it for this VPU project. Currently this just sends some hard-coded text output to a 1280x1024 VGA display. It's also acting as a test-bed for accessing RAM on the FPGA board.

Wave View and VCD Parser

I've never gotten on well with GTKWave, so decided to make my own wave viewer. For rendering this uses the fantastic olcPixelGameEngine, and has a custom VCD parser using ANTLR. This has lua-based scripting using sol3, but this isn't in the public version yet. Eventually this will be embedded into a proper GUI framework and become more than just a toy.

Smaller Highlights

Game Jams

I'm not good at making games, but I do enjoy the occasional jam. These are all implemented in C++ using the olcPixelGameEngine, and my own library of utilities and extensions.

  • Drowning Isn't Fun. OneLoneCoder 2024 Code Jam Entry. My first game jam entry that is actually somewhat fun to play, if not well balanced.
  • Don't Crash!. OneLoneCoder 2023 Code Jam Entry. Avoided the bugs, but forgot to add very much gameplay.
  • The Recycling Button. GMTK 2023 Game Jam Entry. I was very squeezed for time on this one, but was pleased to get the very basics of a factory game in there.
  • The Weather Garden. OneLoneCoder 2022 Code Jam Entry. Unfinished and buggy, but lots of fun to make.

Random Stuff

University

A few interesting highlights:

Pinned Loading

  1. AoC AoC Public

    Python

  2. DirectSearch.jl DirectSearch.jl Public

    test mirror for CI deployment

    Julia

  3. VPU_ASM VPU_ASM Public

    ISA definition, assembler, and test programs for my VPU project.

    Python

  4. WaveViewer WaveViewer Public

    Looking for a better name

    C++