Sitemap
A list of all the posts and pages found on the site. For you robots out there, there is an XML version available for digesting as well.
Pages
Posts
Future Blog Post
Published:
This post will show up by default. To disable scheduling of future posts, edit config.yml
and set future: false
. Read more
Blog Post number 4
Published:
This is a sample blog post. Lorem ipsum I can’t remember the rest of lorem ipsum and don’t have an internet connection right now. Testing testing testing this blog post. Blog posts are cool. Read more
Blog Post number 3
Published:
This is a sample blog post. Lorem ipsum I can’t remember the rest of lorem ipsum and don’t have an internet connection right now. Testing testing testing this blog post. Blog posts are cool. Read more
Blog Post number 2
Published:
This is a sample blog post. Lorem ipsum I can’t remember the rest of lorem ipsum and don’t have an internet connection right now. Testing testing testing this blog post. Blog posts are cool. Read more
Blog Post number 1
Published:
This is a sample blog post. Lorem ipsum I can’t remember the rest of lorem ipsum and don’t have an internet connection right now. Testing testing testing this blog post. Blog posts are cool. Read more
portfolio
Portfolio item number 1
Short description of portfolio item number 1 Read more
Portfolio item number 2
Short description of portfolio item number 2 Read more
publications
Exploring Zynq MPSoC: With PYNQ and Machine Learning Applications
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
Control and visualisation of a software defined radio system on the Xilinx RFSoC platform using the PYNQ Framework
Published in IEEE Access, 2020
A novel software-defined radio environment for interactive prototyping and active teaching. Read more
On Applications of Dependent Types to Parameterised Digital Signal Processing Circuits
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
Low-cost, high-speed parallel FIR filters for RFSoC front-ends enabled by CλaSH
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
Heron: Modern Hardware Graph Reduction
Published in Symposium on Implementation and Application of Functional Languages, 2024
The first HAFLANG paper, discussing our single-core graph reduction processor. Read more
Toatie: Functional Hardware Description with Dependent Types
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
Cloaca: A Concurrent Hardware Garbage Collector for Non-strict Functional
Published in Haskell Symposium', 2024
A simple yet effective hardware garbage collector from the HAFLANG project. Read more
From Haskell to a New Structured Combinator Processor
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
talks
TEMPEST Attacks Against AES
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
PYNQ RFSoC Workshop
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
PYNQ Bootcamp
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
On Applications of Dependent Types to Parameterised Digital Signal Processing Circuits
Published:
Conference presentation for the paper accepted at MWSCAS 2021. Read more
Low-cost, High-speed Parallel FIR Filters for RFSoC Front-Ends Enabled by CλaSH
Published:
Conference presentation for the paper accepted at Asilomar 2021. Read more
Heron: Modern Hardware Graph Reduction
Published:
Conference presentation for the paper accepted at IFL 2023. Read more
Revisiting hardware architectures for lazy functional languages with Heron
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
Cloaca: A Concurrent Hardware Garbage Collector for Non-strict Functional Languages
Published:
Conference presentation for the paper accepted at the Haskell Symposium 2024. Read more
Once Bittern, Twice Shy
Published:
HAFLANG presentation at the 20th anniversary edition of SPLS. Read more
teaching
AMD/Xilinx PYNQ RFSoC Workshop
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
AMD/Xilinx PYNQ Bootcamp
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
EE269: Electronic and Electrical Principles 2
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
EE315: Analogue And Digital System Design
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