Patrick Pataky

FPGA & Digital Design Engineer · EPFL

About

Master student in Computer Science at EPFL, specialising in digital design and FPGA development. Currently seeking an internship in hardware design, verification, or embedded systems for Summer 2026.

Skills & Tools

Languages

  • SystemVerilog / Verilog / VHDL
  • C / C++
  • Python

Tools & Platforms

  • Vivado · Quartus · QuestaSim
  • GDB · Git · Linux
  • RISC-V · ARM

Projects

Tags
Active
None

X-HEEP RISC-V MCU — Flash Controller & Cache Design

SystemVerilog · RISC-V · FPGA · Vivado · QuestaSim · TCL Spring 2026 · EPFL ESL Lab

Semester project verifying a Flash Controller on a Xilinx FPGA for the open-source X-HEEP RISC-V MCU. Designed a Write-Back Cache (1–4 sectors) in SystemVerilog to optimise memory access latency. Used Integrated Logic Analyzers (ILA) to debug hardware/software issues across I/O operations, and developed C test applications and TCL-automated QuestaSim simulations to stress-test the controller.

cache_ext — eBPF Page Cache Policies

C · Linux Kernel · eBPF · Bash Fall 2025 · CS-477 Advanced Operating Systems

Implemented and evaluated a Linux kernel eBPF extension to customize page cache eviction and admission policies for application-specific memory constraints, directly manipulating kernel data structures and synchronization primitives.

Midgard — IOMMU via Structural Simulation Toolkit

C++ · SST Simulator · TLB/MMU Design Fall 2024 · CS-471 Advanced Multiprocessor Architecture

Designed a ring-buffer architecture enabling asynchronous I/O page-fault handling for an IOMMU, eliminating performance bottlenecks caused by synchronous DMA blocking and static memory pinning. Built on the Midgard intermediate address-space framework.

gecko5-accelerator — FPGA Hardware Accelerator

Verilog · C/C++ · Yosys · FPGA · DSP Fall 2024 · CS-476 Embedded System Design

Developed a custom RTL hardware accelerator from scratch on the Gecko 5 Education Board FPGA to offload graphical rendering from the CPU. Achieved a 50× speedup over the software baseline by profiling C code to identify critical paths and designing optimised pipelined RTL.

Bachelor Project — FPGA Side-Channel Attacks

FPGA · Xilinx Zynq UltraScale · Vivado · Python · TCL Spring 2024 · PARSA Lab, EPFL

Conducted remote side-channel power analysis on multi-tenant FPGAs using voltage-routing delay sensors to capture power consumption traces during partial reconfiguration. Analysed attacker/victim placement impact on leakage in a dynamic partial reconfiguration environment.

MIPS R10000 Out-of-Order Processor Simulator

C · Pipeline Simulation · OoO Execution Spring 2024 · CS-470 Advanced Computer Architecture

Designed and implemented a cycle-accurate simulator modelling the microarchitecture of a MIPS R10000 out-of-order processor, incorporating pipeline stages, register renaming, reorder buffer management, and exception handling.

nds-overcooked-clone — Nintendo DS Multiplayer Game

C · Nintendo DS · Embedded · DMA Fall 2023 · EE-310 Microprogrammed Embedded Systems

Developed a multiplayer “Overcooked”-style cooking game on the Nintendo DS in bare-metal C. Implemented sprite rendering, tile-based collision detection, and networked multiplayer over DS WiFi, while optimising RAM usage and handling real-time constraints on resource-limited hardware.

IoT Force-Feedback System

C++ · Arduino Nano 33 IoT · Sensor Integration Summer 2022 · Independent / Consulting

Developed embedded firmware to interface an Arduino Nano 33 IoT with a FlexiForce load-cell sensor and HX711 amplifier. Programmed custom logic to trigger micro-vibrators based on real-time weight thresholds, with a Blynk mobile GUI for remote monitoring and configuration over WiFi.

portfolio.sv
/*
* Module: portfolio.sv
* Author: Patrick Pataky
* Contact: [email protected]
*/
module patrick_pataky #(
parameter string LOCATION = "Renens, VD, Switzerland",
parameter int COFFEE_THRESHOLD = 3
) (
input logic clk,
input logic rst_n,
output logic ready_for_internship
);
// --- LIFE STATE MACHINE ---
typedef enum logic [2:0] {
SLEEP = 3'b000,
CAFFEINATE = 3'b001,
CODE_RTL = 3'b010,
WAIT_VIVADO = 3'b011, // The longest state known to mankind
DEBUG = 3'b100,
} life_state_t;
life_state_t current_state, next_state;
always_ff @(posedge clk or negedge rst_n) begin
if (!rst_n) current_state <= SLEEP;
else current_state <= next_state;
end
always_comb begin
ready_for_internship = 1'b1;
next_state = current_state;
case (current_state)
SLEEP: if (alarm) next_state = CAFFEINATE;
CAFFEINATE: next_state = CODE_RTL;
CODE_RTL: if (!syntax_err) next_state = WAIT_VIVADO;
WAIT_VIVADO: if (synth_done) next_state = DEBUG_ILA;
DEBUG_ILA: if (timing_met) next_state = SLEEP;
default: next_state = SLEEP;
endcase
end
endmodule
# Patrick Pataky (@ppataky) - GitHub Statistics
> TOP LANGUAGES
SystemVerilog [██████████████████ ] 45%
C/C++ [████████████ ] 30%
Python [██████ ] 15%
Verilog/VHDL [████ ] 10%
> RECENT HARDWARE/SOFTWARE PROJECTS
* x-heep-mcu-flash : SystemVerilog Flash Controller for open-source RISC-V
* gecko5-accelerator : Custom RTL hardware accelerator for Gecko 5 FPGA
* nds-overcooked-clone : Embedded multiplayer C game for Nintendo DS
Type :e portfolio.sv to return.
~
portfolio.sv [+]
utf-8

Vim Portfolio Commands

  • :e github.txt — Open GitHub stats
  • :github — Open GitHub profile
  • :linkedin — Open LinkedIn profile
  • :resume — Download resume
  • :help — Show this menu
  • :q — Close help / quit

Press Esc or type :q to close. Use Tab to cycle suggestions.