Portfolio item number 1
Short description of portfolio item number 1 Read more
Short description of portfolio item number 1 Read more
Short description of portfolio item number 2 Read more
Published in Strathclyde Academic Media, 2019
This book aims to demystify a complex heterogeneous system-on-chip (Zynq MPSoC), covering system architecture, design tools and method, and hardware/software co-design. Read more
Published in IEEE Access, 2020
A novel software-defined radio environment for interactive prototyping and active teaching. Read more
Published in IEEE International Midwest Symposium on Circuits and Systems, MWSCAS 2021, 2021
We advocate for the use of dependently typed languages in hardware description, leaving an implementation later (See totaie) Read more
Published in IEEE International Midwest Symposium on Circuits and Systems, 2021
An exploration of a family of filtering circuits, challenging to express in many hardware description languages, using a Haskell-based toolchain. Read more
Published in Symposium on Implementation and Application of Functional Languages, 2024
The first HAFLANG paper, discussing our single-core graph reduction processor. Read more
Published in University of Strathclyde, 2024
PhD thesis discussing the design and application of a combinatorial hardware description language with dependent types and staging Read more
Published in Haskell Symposium', 2024
A simple yet effective hardware garbage collector from the HAFLANG project. Read more
Published in Trends in Functional Programming (accepted; awaiting publication)', 2025
A new hardware architecture and compiler back-end for a structured combinator-based graph reduction machine Read more
Published:
Side-channel attacks can recover secret keys from cryptographic algorithms (including the pervasive AES) using measurements such as power use. However, these previously-known attacks on AES tend to require unrestricted, physical access to the device. Using improved antenna and signal processing, Fox-IT and Riscure show how to covertly recover the encryption key from two realistic AES-256 implementations while: Read more
Published:
An workshop exploring system design with the Xilinx RFSoC devices, delivered in an hands-on session with Jupyter Notebooks running on RFSoC development boards. Materials cover direct RF sampling, digital up/down conversion, hardware error correction, and fundamental DSP topics. First delivered at Xilinx’s xSight 20 conference to approximately 80 attendees over two days. Read more
Published:
A week-long embedded systems bootcamp for 8th–12th grade students, delivered with a mix of talks, hands-on tutorials with Jupyter Notebooks, and specialised breakout sessions. Topics included microprocessors, FPGAs, basic I/O, audio processing, computer vision, robotics, and Python. The students then completed their own hackathon projects on the theme of sustainability. One system was an autonomous janitor that used computer vision techniques to identify trash and clean it up! Read more
Published:
Conference presentation for the paper accepted at MWSCAS 2021. Read more
Published:
Conference presentation for the paper accepted at Asilomar 2021. Read more
Published:
Conference presentation for the paper accepted at IFL 2023. Read more
Published:
A presentation covering the HAFLANG project’s single-core processor for a lazy functional language. Details the surface language, hardware graph reduction, and concurrent hardware garbage collection. Read more
Published:
Conference presentation for the paper accepted at the Haskell Symposium 2024. Read more
Published:
HAFLANG presentation at the 20th anniversary edition of SPLS. Read more
Training/Workshop, AMD/Xilinx Labs, 2019
An workshop designed to give developers rapid, hands-on experience with Xilinx’s RFSoC devices. These devices have a high barrier-to-entry since the developer traditionally needs knowledge across many domains — software for embedded processors, hardware design, digital signal processing, and radio frequency signals. This workshop massively lowers this barrier by offering a single Python-based interface to control aspects of each domain. Read more
Training/Workshop, AMD/Xilinx Labs, 2019
A week-long embedded systems bootcamp for students aged 13–18, delivered with a mix of talks, hands-on tutorials with Jupyter Notebooks, and specialised breakout sessions. Topics included microprocessors, FPGAs, basic I/O, audio processing, computer vision, robotics, and Python. The students then completed their own hackathon projects on the theme of sustainability. Read more
Teaching Assistant, University of Strathclyde, 2019
Teaching Assistant role for electronic fundamentals including analogue circuit analysis & design, switching operations, frequency-domain analysis, amplifiers, feedback, and oscillators. Read more
Teaching Assistant, University of Strathclyde, 2019
Teaching Assistant role for Digital System topics including FPGAs, hardware description, fixed point arithmetic, digital signal processing, system-on-chip. Read more