Skip to content
View DavidRichardson02's full-sized avatar

Highlights

  • Pro

Block or report DavidRichardson02

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.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. 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
DavidRichardson02/README.md

FPGA Banner

David Richardson

Computer Engineering • FPGA/RTL Systems • Physics-Driven Simulation • Automated Data Analysis

physics → RTL math models analysis & visualization

Structured. Physics-driven. Bottom-up engineering.

I like taking ideas from first principles and building systems around them from the ground up — physical theory → mathematical models → algorithms → RTL/C/C++/assembly → instrumentation tools → analysis and visualization.
My work lives at the intersection of physics, mathematics, and computation — spanning real-time FPGA sensing and control systems, high-performance numerical simulation engines, and robust C data-analysis + modeling pipelines, unified by a focus on correctness, timing, structured dataflow, and rigorous documentation.


🧭 Navigation

OverviewSkills & ToolsArchitecture & Featured WorkResultsLanguages & Technical EcosystemRepositories


📑 Table of Contents

  1. Overview
  2. Skills & Tools
  3. Architecture & Featured Work
  4. Results & Project Gallery
  5. Languages & Technical Ecosystem
  6. Highlighted Repositories

🔍 Overview

A snapshot of the systems I like to build:

  • Real-time FPGA sensor fusion and mixed-signal control
  • High-performance N-body gravitational simulation (2D & 3D)
  • Telemetry pipelines from UART/FPGA → MATLAB/Python → visualization
  • Deeply documented engineering flows (RTL, C/C++, math, LaTeX)

My engineering approach is bottom-up and physics-aware: start from the system model, formalize it mathematically, then carry it through algorithms, code, hardware, verification, and visualization.


🛠️ Skills & Tools

Core Domains

  • Digital design & FPGA/RTL – synchronous design, CDC handling, fixed-point arithmetic, timing closure
  • Embedded & low-level systems – register-level work, bare-metal flows, peripheral bring-up
  • Numerical methods & simulation – N-body gravity, spatial data structures, stability and error analysis
  • Data analysis & modeling – structured datasets, telemetry decoding, algorithmic post-processing

FPGA / RTL & Embedded

  • Designing CDC-safe Verilog modules (UART, I²C, PWM, VGA, XADC front-ends)
  • Building hardware-only pipelines for sensing, control, and visualization (no soft CPU)
  • Implementing ready/valid datapaths, state machines, and hierarchical module partitioning
  • Working with Vivado: non-project flows, Tcl-based regeneration, XDC constraints, timing reports

Algorithms, Simulation & Data

  • Barnes–Hut N-body engines using quadtrees and Morton-encoded hashed octrees
  • Q1.15 fixed-point control logic and mapping between physical units and digital representations
  • Telemetry chains: FPGA → UART → CSV → MATLAB/Python visualization
  • Designing automated generators (e.g., C tools that emit LaTeX quizzes and answer keys) to convert structured models into polished documents

Tooling & Workflow

  • Versioned, documented flows – READMEs, diagrams, and LaTeX reports alongside code
  • Instrumentation-aware design – logic-analyzer traces, scope captures, and bench correlation
  • Repeatable builds – Tcl for Vivado, structured directory layouts, and scripted regeneration
  • Focus on explainable engineering – every major block has a theory-of-operation and dataflow story behind it

🏗️ Architecture & Featured Work

⚡ FPGA_Signal_Control_System (Artix-7)

A hardware-only physics control laboratory with live visualization.

  • Real-time Time-of-Flight distance mapping
  • VGA HUD with framebuffer plots and status widgets
  • Temperature telemetry → PWM fan control (Q1.15 fixed-point)
  • PIR-based occupancy sensing
  • Rotary encoder-driven manual and automatic surveying modes
  • Structured UART telemetry (timestamp, θ, distance, temp, duty, CRC)
  • Clean CDC boundaries, ready/valid datapaths, disciplined module partitioning

VGA Output


🌌 Barnes–Hut Simulation Engines (2D & 3D)

High-performance gravitational modeling built around:

  • Adaptive quadtrees & Morton-encoded hashed octrees
  • O(N log N) multipole approximations
  • Stable symplectic integration (leapfrog, velocity Verlet)
  • Real-time visualization, energy tracking, and parameter exploration

Quadtree Octree Bounds


🎛️ Results & Project Gallery

Click to expand project visuals

FPGA Vivado Implementation

Device Implementation

Top-Level RTL Schematic

RTL Schematic

Hardware Bench Setup

Hardware Bench

MATLAB Telemetry + Vivado View

MATLAB Models 1 MATLAB Models 2

Showcase Setup

Showcase Setup

VGA Real-Time HUD Output

VGA HUD

🧰 Languages & Technical Ecosystem

This combines badges, short descriptions, and direct mapping to projects.


🔤 Badges

C C++ Verilog Assembly MATLAB Python LaTeX Tcl Markdown


📚 Ecosystem Summary

Programming & HDL

  • 💠 C — embedded utilities, telemetry decoders, dataset tools
  • 💠 C++17 — Barnes–Hut engines, Morton-ordered spatial structures
  • 🔧 Verilog RTL — VGA pipelines, UART/I²C/PWM, XADC front-ends, fixed-point logic
  • 🧩 Assembly (HCS12 / ARM) — register-level microcontroller work

Scientific Computing

  • 📐 MATLAB — numerical modeling, telemetry analysis, real-time plotting
  • 🐍 Python — scripts, CSV ingestion, visualization helpers

Documentation & Build Infrastructure

  • ✍️ LaTeX — engineering reports, posters, derivations
  • 🔗 Markdown — GitHub docs & READMEs
  • 🛠️ Tcl — Vivado non-project builds, automated regeneration

🧬 Language → Project Mapping

Language FPGA_Signal_Control_System N-Body Barnes–Hut Engines CSV Analysis Pipeline MCU / Embedded Work Documentation
C UART log decoders, MATLAB bridge, tools Dataset modeling, parsers Sensor utilities
C++17 Host-side visualizers Full Barnes–Hut engines, Morton grids
Verilog RTL VGA engine, HUD overlay, I²C, UART, PWM, XADC
Assembly HCS12/ARM register-level labs & drivers
MATLAB Telemetry decoding, range plots Stability & energy sweeps Figures & analysis
Python CSV ingestion, log tooling Visualization helpers Automation scripts
LaTeX FPGA project reports Simulation write-ups Data pipeline theory Coursework
Tcl Vivado automation, project regeneration Build scripts
Markdown Repo docs, root README Repo docs Data documentation All repos

📦 Highlighted Repositories

Click to expand repository summaries

FPGA_Signal_Control_System

Integrated FPGA sensing/control system with ToF mapping, VGA HUD, mixed-signal telemetry, and fan/PIR/rotary control.

Generic_Quadtree_BarnesHut_Simulator

2D gravitational engine with adaptive quadtree refinement and interactive visualization.

Hashed_Octree_3D_BarnesHut

3D N-body simulation using Morton-encoded hashed octrees for scalable spatial subdivision.

Automated_CSV_Data_Analysis

C pipeline for structured dataset modeling, transformations, and diagnostics.


Pinned Loading

  1. Automated_CSV_Data_Analysis Automated_CSV_Data_Analysis Public

    This project provides a robust, standardized pipeline for data extraction, processing, analyzing, and modeling. The user only needs to hand off the file’s pathname, run the program, and then find t…

    C 5 2

  2. FPGA_Signal_Control_System FPGA_Signal_Control_System Public

    Real-time FPGA system integrating ToF sensing, temperature/PIR-based fan control, rotary encoder surveying, dual-buffer VGA graphics, and high-speed UART telemetry. Fully hardware-driven mapping, c…

    Verilog 3

  3. OpenFrameworks_User_Interface_Library OpenFrameworks_User_Interface_Library Public

    A lightweight, header‑only collection of reusable UI widgets designed for rapid prototyping and scientific visualisation inside an openFrameworks application.

    C++ 3

  4. Serial-Hashed-Octree-Barnes-Hut-N-Body-Simulator-0_3 Serial-Hashed-Octree-Barnes-Hut-N-Body-Simulator-0_3 Public

    The Hashed-Octree approach is developed as an improvement to the standard octree data structure made suitable for parallel processing. This variant of the octree data structure attempts to parallel…

    C 4

  5. Generic-Quadtree-Barnes-Hut-N-Body-Simulator-0_1 Generic-Quadtree-Barnes-Hut-N-Body-Simulator-0_1 Public

    Real-time Interactive Barnes-Hut N-Body Simulator. Create galaxies, apply forces, visualize spatial partitioning, parameterize simulation physics and entities, etc.

    C++ 9

  6. MATLAB_Programmatic_Calculator_App MATLAB_Programmatic_Calculator_App Public

    A calculator app made programmatically in MATLAB. A fully modular, grid-based scientific calculator. UI components append tokens to an editable input, live-mirror updates, validate expressions thro…

    MATLAB 1