SoCKET
An HDL GPU core with tile-based binning and a rasterization/shading pipeline written in SystemVerilog.
Install / Use
/learn @ParallaxError/SoCKETREADME
SoCKET
System on Chip that Kinda Etches Triangles
<img src="media/banner.png" width="100%"><br>
An HDL GPU core with tile-based binning and a rasterization/shading pipeline written in SystemVerilog.
The module is my submission for the COMP32211 (Implementing System on Chip Designs) coursework and targets a Spartan XC7S50 FPGA.
Overview
SoCKET is a fully custom 3D triangle rasterisation pipeline, designed and implemented entirely in SystemVerilog. It accepts a stream of vertices, performs perspective-correct transformation and uses tile-based binning to drive a parallel raster stage that converts triangles into pixels efficiently.
The core is built from pure RTL with zero reliance on vendor IP blocks. The individual subsystems comprising the module are designed for transparent alteration and simulation.
The design is tuned around the utilisation constraints of the Spartan-7 XC7S50, using techniques such as time-multiplexed DSP sharing and tuned datastructure widths to maximise performance on the FPGA.
The system was developed alongside a Verilator test environment, featuring a C++ harness that feeds mesh data into the pipeline and outputs a bitmap preview of the rendered frame.
Usage
The top level GPU module exposes a simple valid/ready streaming interface:
- Input: a
vertex_t - Output: a stream of
pixel_buffer_t
Details on these datatypes can be found in their respective files. An example interface adapter used in my coursework is located at gpu_top.sv.
To simulate the system using the included C++ harness, run:
./run_verilator.sh [--trace]
The testbench emits an out.bmp image showing the rendered frame.
The input vertices are located at test_data/input.verts. Its format is:
- First line: Number of vertices
- Lines 2-5: 4x4 model-view-projection matrix (row-major, real values)
- Remaining lines: One vertex per line
x y zcoordinates (real)R G Bcolour (integers 0-255)
Related Skills
node-connect
347.6kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
108.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.6kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.6kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
