Skip to content
View ArkhamKnightGPC's full-sized avatar

Block or report ArkhamKnightGPC

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.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

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

Report abuse
ArkhamKnightGPC/README.md

Hello there :) I'm Gabriel!

Student researcher at University of São Paulo (Ecole polytechnique X22)

👩‍💻 About Me

In this Github page, you'll find my more recent projects as well as university courses at both Ecole polytechnique and the University of São Paulo.

📫 Please feel free to reach out to me at gabriel.pereira-de-carvalho.2022@polytechnique.org :)

And please consider checking out my personal website at arkhamknightgpc.github.io.

gabrielcarvalho-x22 arkham_knight arkham_knight1

Table of Contents

  1. Courses at the University of São Paulo
  2. Ecole polytechnique courses
  3. Other projects
  4. Personal works in progress

📓 Courses at the University of São Paulo

This repository contains the VHDL code for HADES, a dedicated digital hardware architecture for SHA-3 extendable-output functions with decoupled I/O stages developed as part of my engineering thesis project at the University of São Paulo. Synthesis metrics are presented using the Yosys synthesis tool and the OpenSTA static timing analyser. Both 32-bit and 64-bit versions of HADES are provided.

This repository contains a NEORV32 based RISC-V System-on-Chip(SoC) integrating a customized stream-processor peripheral called HADES via the NEORV32 Stream Link Interface (SLINK) and memory-mapped control registers. In this project, 32-bit HADES is explored as a hardware accelerator for SHA-3 security primitives targeting code-based digital signature scheme CROSS presented as a candidate in the NIST Post-Quantum Cryptography (PQC) standardization process. The RISC-V system built here was developed as part of my engineering thesis project at the University of São Paulo to compare runtime metrics for the CROSS reference SHA-3 software implementation against calls to the HADES hardware implementation.

SystemVerilog implementation for the PoliLEGv8 processor presented in Digital Systems Design course at the University of São Paulo.

AI Hardware Attack Challenge for inserting and detecting hardware trojans using LLMs. The competition is a satellite event of IEEE HOST 2026.

Assignments and project for the FMCW Radar course at the University of São Paulo.

Unofficial LaTeX package for documents and presentations for EPUSP (Escola Politécnica da Universidade de São Paulo).

📓 Ecole polytechnique courses:

Assignments from the Compilation course at Ecole polytechnique. Assignements include: x86 assembly programs, an interpreter for a fragment of the Python language, a parser (made with Jflex and CUP) for a small logo language and a compiler project for a fragment of Java.

Problem sets from the Wireless Networks course at Ecole polytechnique. Topics covered include: physical modelisation of wireless signal propagation, probabilistic WiFi throughput analysis, analysis of 4G peak data rates and DL latency for different frame structures and analysis of different performance metrics for LoRa and SigFox.

Project developed for the course INF567: Wireless Networks at Ecole polytechnique. The goal of this project is to explore the zero-forcing beamforming technique proposed in a scientific paper for Physical Layer Security(PLS) to prevent both active and passive eavesdropping on VLC systems and attempt to replicate their results with Python simulations.

The goal of this project is to design an ASIC for a single-photon photodetector readout (known as SiPM or Silicon Photo-electron Multiplier). The circuit must perform high speed, low noise amplification and discrimination to allow pico-second timing measurement. The circuit was designed using Cadence Virtuoso and a library of TSMC components was used for layout.

Stepmania based group game project for PHY564A Open Electronics course at Ecole polytechnique. The project has two components: a pygame application running on a Raspberry Pi 3 Model B+, and a wireless controller based on a ESP32 microcontroller with LED buttons and a 3D case made with Autodesk Fusion. Communication between the Raspberry Pi and the controller is done via Bluetooth Low Energy using GATT notifications.

This mini project was developed on the first few weeks of the Open Electronics course at Ecole polytechnique. A ESP32 MCU captures the reading of an LDR, and communicates sensor data to a Raspberry Pi via MQTT. The Raspberry Pi uses a Fourier Transform to determine if the light readings correspond to natural light or not and sends a message back to the ESP32 via MQTT to lower/raise the blinders (controlled by a step motor).

Jupyter Notebook assignments from the course Machine and Deep learning (with PyTorch) at Ecole polytechnique. Topics covered include: SVMs, MLPs, CNNs, RNNs, Graph Neural Networks.

Assignments from the course Fundamentals of Computer Networking at Ecole polytechnique. Includes paper assignments in LaTeX with state machines for different transport layer algorithms, message charts as well as coding assignments (introductory tutorials in C, simplified wget command line application and DV routing implementation).

The objective of this experimental module was to implement the design of transistor based on carbon nanotubes. In more detail, the synthesis of carbon nanotubes by CVD(chemical vapor deposition) approach, the characterization of the latter (SEM microscopy, Raman spectroscopy) and finally the design and characterization of transistors based on these nanotubes were explored in the project.

Spice lab session from the course PHY559A (Conception of Digital and Analog Integrated Circuits) at Ecole polytechnique. The purpose of this lab is to introduce SPICE for electrical circuit simulation and study static and dynamical characteristics of the CMOS inverter.

Handwritten digit detection on FPGA project from the FPGA lab course at École polytechnique. This project implements Rosenblatt's perceptron for binary classification of 0/1 digits on FPGA using VHDL. The project was developed on a Altera DE2-115 board and includes interfaces with a VGA monitor, an LCD and a TRDB-DC2 camera.

Assignments from the Data Analysis in C++ course at École polytechnique. Includes implementations of the kd-tree data structure for KNN, Voronoi partitions and Lloyd's algorithm, hierarchical clustering, kernel density estimators, SVM and simple neural networks.

Assignments from the course 3D computer graphics at École polytechnique using C++ and OpenGL. Includes implementations of shader effects, Phong shading, procedural 3D modelisation, textures, animation and physical simulation.

Evolutionary algorithms project for an informatics course at École Polytechnique. Includes complexity proofs using fitness levels and empirical performance analysis on benchmark functions.

Jupyter notebook assignments from a numerical analysis course at École polytechnique, includes analysis of finite precision floating point calculations, polynomial interpolation algorithms, numerical integration methods, linear system solvers, numerical methods for non-linear systems, numerical methods for ODEs and parabolical EDPs.

Problem sets from a statistics course at École polytechnique. Includes theory-oriented problem sets with solutions in Latex and jupyter notebook assignments with analysis of datasets like the Titanic dataset(DM2) and the Breast Cancer Wisconsin Dataset(EN3).

A homework assignment for MAP432: Markov Chains and Martingales at École polytechnique. Explores the Metropolis-Hastings algorithm and the Doeblin criterion.

Assignments from the course PHY431: Special relativity and variational mechanics at École polytechnique. Assignments cover classical relativistic paradoxes, computations in Minkowski spacetime, Euler-Lagrange equations, Lagrangian mechanics, electromagnetic tensors, Hamiltonian mechanics and the Feynman principle.

Assignements from the course INF371: Mechanisms of Object-Oriented Programming Languages at École polytechnique. Includes OO implementations of the union find data structure, linked lists, hash tables. Graphical applications using Java AWT to explore inheritance concepts, including a calculator to explore expression parsing. And a compiler assignement for the simplified while language.

Some homework assignments for first year courses in maths and physics at École polytechnique (Analysis, Probability Theory and Quantum Mechanics). Solutions are provided in Latex. A project on spatial properties of hash tables was done in a separate repository.

💻 Other projects:

Solutions to competitive programming problems. Includes C++ implementations of Fast Fourier Transform, Wavelet Trees, the Aho-Corasick automaton, Dynamic connectivity, Reachability Trees, Heavy-Light decomposition, Manacher's algorithm, Li Chao Trees for the Convex Hull Optimization technique in dynamic programming problems, Merge Sort Trees, Persistent Segment Trees, Fast Kuhn algorithm for the maximum bipartite matching problem, Treaps (randomized binary search trees) and Tarjan's algorithm for finding bridges and articulation points in trees.

Solutions to Codechef problems! Includes topics in number theory, graphs, fenwick trees, dynamic programming, game theory, greedy algorithms and more!

Group project developed for the IP Paris Swarm Rescue Competition. The project consists of a comparative analysis of different approaches to teach a swarm of drones how to behave to save a maximum of injured people in a minimum of time on a simulated environment.

Group project for an Object Oriented Programming Lab at University of São Paulo. Web application using the Java SpringBoot framework to create personalised news feeds based on a user's preferred news websites. Bootstrap was used for the frontend and a word cloud feature was implemented using the Kumo library and the Aho Corasick automaton for pattern matching and frequency counting.

IP Tracker made using Next.js and the react-leaflet package.

Group project for a Digital Systems Lab at University of São Paulo. VHDL project for a security system using an ultrasonic sensor and a servo motor. Can be controlled using a Processing application through MQTT messaging.

Bare metal application implementing process switching in an ARM based processor emulator.

Project from a Microprocessors Lab at University of São Paulo. Simple keyboard driver built using the gcc-arm-none-eabi toolchain on the qemu-system-arm system emulator for the ARM Versatile board.

🚧 Personal works in progress

VHDL and SystemVerilog implementations of a pipelined multi-core MIPS machine.

Study repository with an implementation of a minimal subset of the RISC-V instruction set written in SpinalHDL.

Study repository with solutions to selected exercises from the book "Guide to FPGA implementation of arithmetic functions". Exercise solutions include testbenches for verification.

Pinned Loading

  1. PHY473R PHY473R Public

    Handwritten digit detection project for the FPGA lab course at École polytechnique.

    VHDL 1

  2. sistema-seguranca sistema-seguranca Public

    Forked from htafr/sistema-seguranca

    Security System project developed in the Digital Laboratory II course at the University of São Paulo using VHDL and Processing.

    VHDL

  3. PHY564A-StepmaniaIoT PHY564A-StepmaniaIoT Public

    Stepmania based game project for PHY564A Open Electronics course at Ecole polytechnique

    Python

  4. PHY581C PHY581C Public

    Project developed for the course PHY581C: Microelectronics Experimental ASIC Design at Ecole polytechnique.

    TeX

  5. AHA_Challenge_2026 AHA_Challenge_2026 Public

    AI Hardware Attack Challenge for inserting and detecting hardware trojans using LLMs. The competition is a satellite event of IEEE HOST 2026.

    Verilog

  6. fmcw-radar fmcw-radar Public

    Repository for the course PSI5844: Project and Implementation of a FMCW Radar at the University of São Paulo.