AI doing some teaching here

AI as a Learning Tool

The Question I Didn’t Know I Had I never fared well with the school system. Not because I lacked curiosity — if anything, I had too much of it. I always wanted the deep version of things, not the pass-the-exam version. The problem was I had no way to get there. The traditional path for that kind of depth is a PhD: years under a mentor who steers you, who knows which question to ask before you even know you need to ask it. I didn’t take that path. Instead, for years, my way of chasing knowledge was the same as most people’s — open a browser, search, read, repeat. ...

August 2, 2026 · Daniel Blackbeard
Picture a scientific paper and an Arty A7

Single Cycle RISCV32I Datapath

Introduction Perhaps it’s only me, but I believe anyone who is serious at digital design should at least try to implement a simple processor. This is the first of a series aimed to end with a usable processor for my projects, in an attempt to learn some of the concepts of computer architecture, while at the same time honing my hardware design skill. This post is a technical overview of the design choices behind it: where I made reasonable calls, where I got it wrong, and what I learned along the way. ...

July 24, 2026 · Daniel Blackbeard
Picture of some HDL code

Why I Started Learning Digital Design (After 15 Years of Waiting)

Why I Started Learning Digital Design I was ten years old when I first touched a computer. I don’t remember much of that first encounter, except one thing: I became obsessed with the idea of the Arithmetic and Logic Unit. My teacher mentioned it once, briefly, the way you mention something to a room full of ten-year-olds — no details, just the name. But in my head, the ALU became this almost mythical machine. Something that could take any calculation, any problem, and just… solve it. I didn’t know how. I just knew I wanted to. ...

July 22, 2026 · Daniel Blackbeard
Picture of the analog front end

Delay Effect Implementation

Introduction While keeping sight of my target when doing this project, there were some components on the Arty that I don’t really know how to use. One of these was the DRAM mounted on the board. Hence, I wanted to implement the most obvious effect that needs some kind of memory of previous samples. Basically, at some point in the chain, the delay will take samples at a rate of 48KHz, store them in a circular buffer in RAM, and set up a read pointer at some distance from the write pointer, such that reading yields back audio from the past. The math for this is quite simple in the end: with a sampling rate of 48KHz, every memory address of distance between read and write adds ~20.8 microseconds of delay. So let’s say I want a delay of up to ~2 seconds — we’ll need 192000 bytes of memory. It’s honestly not even that much when the mounted memory is 1GByte. ...

June 14, 2026 · Daniel Blackbeard
Picture of a PCB work for a preamplifier

Analog preamplifier for the XADC

Introduction Let me take a detour from the HDL and digital things and go back for a while into the analog domain. For this whole system I’m building to be of any use, the signal from the guitar has to have enough amplitude to: Dominate the noise of the processing chain Use as much of the XADC’s dynamic range as possible In any case, I need something simple, while also thinking I wouldn’t be able to respect myself if I built it as a circuit mounted on a breadboard. So, I also took the chance to learn PCB production in a long afternoon. ...

April 7, 2026 · Daniel Blackbeard
Picture of a verilog snippet for a FIR

Arty A7 Guitar Effect Chain - FIR Implementation

Introduction On this little project of making a guitar effect chain, the equalizer/filter will be a central component. The guitar has a particular spectrum, and not everything within the 20KHz humans can hear needs to be processed. In filtering out the unnecessary frequencies we get some benefits: All the spectral content is useful information, increasing the amount of signal we can process We are cutting noise, which is usually very wideband, often modeled as uniformly distributed All of this translates into a better signal-to-noise ratio (SNR). ...

March 15, 2026 · Daniel Blackbeard
Picture of a guitar effect chain

Arty A7 Guitar Effect Chain - Introduction

Introduction It took me a while to come up with worthy content, but here I am. I have been working on getting my FPGA board to sample analog audio with the internal ADC for a project proposed by a colleague as a way to learn the intricacies of digital design. Let me tell you straight: the documentation for the ADC on this Artix 7 device does a great job of being confusing. I’m not ashamed to say that this is the part that took me the longest to figure out, also considering my paranoia about damaging the components with non-compliant voltages. ...

December 27, 2025 · Daniel Blackbeard
Picture of a sine waveform

Sine Synthesis with FPGA

Introduction Last time, we built a circuit together using Verilog to communicate with an I2S device. But we never delved into how to make a waveform for it. Now, don’t get me wrong: if you did the blinky LED example when starting your first projects, this should be easy for you: A square pattern is just zeros and ones A saw pattern is a counter from zero to max A triangle wave is a counter that goes back after hitting max or min values A sine wave is just some CORDIC… Now, we will not be using CORDIC and will not be doing simple counters. I want to show you a couple of tricks to generate a clean sine waveform that you can later compose to create fancier sounds. ...

June 15, 2025 · Daniel Blackbeard
Picture of some HDL code

Digital audio with I2S

Introduction As you may know, I’m working on this blog also as a way to log my learning journey. So, to make up for the lack of interesting peripherals on the Arty A7, I bought a set of modules for Arduino. Most of them were quite uninteresting, but I got this I2S DAC module from Adafruit that implements the UDA1334A from NXP (datasheet). This device interests me the most among the ones I got in the assortment, because ever since I was a kid I’ve wanted to make my own guitar effects (in fact, I believe many electronic engineers are born this way, or something similar), so the end goal is quite ambitious as you can see. But let’s start with something easy. ...

June 8, 2025 · Daniel Blackbeard
Picture of the FTDI serial chip

UART: the basics after you know the very basics

Introduction So, after you’re done with the book and have implemented your first 8-bit CPU, you keep wondering ok, but now I want to do real-world stuff I’ve got you covered — when it comes to real-world stuff, nothing beats having the capability to send data to and from other devices. When I began my personal projects, right after getting my Arty A7, I thought I’d need to debug what’s happening inside the FPGA in case the internal logic analyzer wasn’t reliable (pro tip: it’s very reliable). So being able to send data to a computer using a simple protocol is a must. ...

May 28, 2025 · Daniel Blackbeard