top of page

These are the archives of the MicroZed Chronicles, a weekly blog exploring aspects of FPGA design. Check out to the Adiuvo Engineering Blog for the latest MicroZed Chronicles posts as well as other embedded design topics. 

Access code examples from most of the chronicles here. 

See more in depth projects here 

Issue 399 A Blast from the past - Clock switching

Issue 398 A Blast From the Past - Non Integer Clock, with no PLL

Issue 397 Designing in DDR to a Custom Design

Issue 396 Estimating FPGA Development Times 

Issue 395 Multi Gigal Bit Transceivers 

Issue 394 Kria SoM Applications 

Issue 393 RFSoC Studio PYNQ

Issue 392 Hands on with the KRIA SoM

Issue 391 Custom Board Bring up, What to do if it does not work

Issue 390 Pynq Register Maps

Issue 389 KRIA SoM 

Issue 388 Fun with the Basys 3 Development board

Issue 387 Custom Zynq Development I2C, Petalinux in PS and AXI

Issue 386 Custom Zynq Development USB validation

Issue 385 MIPI Imaging on Zynq 7000 Part Two

Issue 384 MIPI Imaging on Zynq 7000 Part One

Issue 383 Validating Custom Zynq DDR Implementations

Issue 382 Configuring a Custom Zynq Design 

Issue 381 What to do when your Zynq does not boot

Issue 380 Versal Hello World 

Issue 379 TYSoM and PYNQ 

Issue 378 OpenCL Host Kernel Integration

Issue 377 Getting Started with OpenCL

Issue 376 Setting Up Alveo U50

Issue 375 GHDL and UVVM Framework 

Issue 374 Installing and Working with GHDL for Verification

Issue 373 Vitis HLS and Silexica's SLX Plugin

Issue 372 Implementing Safe State Machines with Vivado

Issue 371 ZynqBerry Zero

Issue 370 Taking a Look Inside the Tektronix TBS1052C

Issue 369 Using Analysis View in Vitis and Vivado HLS

Issue 368 Vivado / Vitis / Pynq / Arm Design Start Free Online Virtual Workshops

Issue 367 Verifying AXI Stream Peripherals 

Issue 366 Verifying AXI Peripherals 

Issue 365 A look at the Trenz TE0802

Issue 364 Using C Test Benches with XSIM

Issue 363 Introduction to RTL and XSIM

Issue 362 RTL Design Verification Techniques 

Issue 361 UltraFast Design Methodologies

Issue 360 Quality of Result Report

Issue 359 Design Analysis Report

Issue 358 How do you architect your system

Issue 357 Back to Basics in Vivado 2020.1 SW Debugging 

Issue 356 Back to Basics in Vivado 2020.1 SW Creation in Vitis

Issue 355 Back to Basics Zynq Project Creation in Vivado 2020.1

Issue 354 Debugging Arm M1 / M3 Cores 

Issue 353 HLS Focusing on Timing and II Violations

Issue 352 Vivado Waivers 

Issue 351 PetaLinux Image Processing Part 2

Issue 350 PetaLinux Image Processing 

Issue 349 Device Trees

Issue 348 Creating PYNQ for MicroZed

Issue 347 PYNQ Features 

Issue 346 Arm M1 Timing 

Issue 345 Arm M1 from Scratch SW

Issue 344 Arm M1 from Scratch 

Issue 343 HLS Delays and Triggers 

Issue 342 High Speed Imaging with HLS 

Issue 341 Vivado HLS Image processing Heads Up Display

Issue 340 Image processing on the SP701 Board 

Issue 339 HLS Advanced Image Processing and PYNQ

Issue 338 Creating Video Streams with Vivado HLS 

Issue 337 SP701 Sensor Application

Issue 336 Spartan 7 and the SP701

Issue 335 Upgrading projects from SDK to Vitis

Issue 334 PYNQ in Development

Issue 333 Sensor Demosaic and Gamma LUT Deep Dive

Issue 332 UltraRAM 

Issue 331 Vitis Emulation

Issue 330 MicroBlaze and Vitis 

Issue 329 Vitis platform creation for Zynq7000 devices 

Issue 328 RFSoC Explorer 

Issue 327 Vitis Application Deep Dive

Issue 326 Vitis Acceleration Flow – Software Platform Creation

Issue 325 Vitis Acceleration Flow – Hardware Platform Creation 

Issue 324 Vitis Creating a Linux VM

Issue 323 Vitis HLS

Issue 322 Vitis Libraries

Issue 321 Getting started with Vitis – Embedded Flow 

Issue 320 Getting Up and Running with RTEMS on the Ultra96

Issue 319 Power Analysis with PYNQ and PMBus

Issue 318 Accessing PMBus using PYNQ

Issue 317 PYNQ IOP Deep Dive

Issue 316 XDF and VITIS

Issue 315 HLS Optimization & Analysis 

Issue 314 Working with HLS Loops

Issue 313 Updating Block RAM with out Re Implementation

Issue 312 Alveo 

Issue 311 Ultra96 Click Mezzanine, SPI and I2C

Issue 310 Working with industrial Interfaces

Issue 309 Rapid Wright an introduction 

Issue 307 PYNQ, RFSoC & SDFEC

Issue 306 Accelerating IP Creation with Model Composer

Issue 305 Display Port Controller Part 2

Issue 304 Display Port Controller Part 1

Issue 303 NEON & SIMD

Issue 302 Error Correction and BRAM

Issue 301 PYNQ Edition! Creating your own overlay

Issue 300 Inter Processor Communication Part 3

Issue 299 Inter Processor Communication Part 2

Issue 298 Mailboxes and MUTEX for Inter Processor Communication

Issue 297 PYNQ Edition! Creating FSMs in the PL with Python

Issue 296 Clock Monitoring

Issue 295 Ultra96 and the Click Mezzanine board

Issue 294 MicroBlaze, Linux, MQTT and IoT Frameworks

Issue 293 Using Cortex-M1 and Cortex-M3 with Arm DesignStart

Issue 292 PYNQ Edition! Interfacing with Pmods, Arduino and R Pi

Issue 291 FPGA MultiBoot and update in the field 

Issue 290 Zynq Multiboot and in the field update

Issue 289 Petalinux, the XADC and Industrial Input Output (IIO)

issue 288 PYNQ Edition! Signal Generation and Logic Tracing

Issue 287 Petalinux, MicroBlaze and Ethernet

Issue 286 Understanding HLS Interfacing Options 

Issue 285 PYNQ Edition! Building PYNQ Images

Issue 284 Deep Dive of the Deep Learning Processor Unit 

Issue 283 Building PetaLinux for the MicroBlaze Part 2  SW Build 

Issue 282 Building PetaLinux for the MicroBlaze Part 1 HW build

Issue 281 PYNQ Edition! Introduction to PYNQ

Issue 280 Working with SDK Repositories and Modifying Drivers 

Issue 279 Deep Dive of the RFSoC Data Converter

Issue 278 RFSoC & Pynq 

Issue 276 Pin Planning using Vivado

Issue 275 Using SPIDev in Petalinux 

Issue 274 Building Petalinux with no BSP

Issue 273 Working with the Zynq MPSoC PS FPD & LPD DMA

Issue 272 Designing with Power Constraints

Issue 271 Running MicroBlaze from a Zynq or Zynq MPSoC PS DDR

Issue 270 Deephi – DNNDK – Deep Learning Acceleration

Issue 269 Using xfOpenCV in Standalone mode

Issue 268 Connecting to AWS IoT with FreeRTOS

Issue 267 Working with QSI / SPI with Serial Flash Libraries

Issue 266 Working with I2C

Issue 265 Working with MIPI

Issue 264 HLS Tips and Tricks Part Two

Issue 263 HLS Tips and Tricks Part One 

Issue 262 SDSoC and C Callable Libraries 

Issue 261 Working with source control

Issue 260 Pynq on the Ultra96

Issue 259 Building PetaLinux for the MiniZed 

Issue 258  Zynq MPSoC & Inter Processor Interrupts

Issue 257 XDF and Versal 

Issue 256 RFSoC and the ZCU111

Issue 255 Using Isolation Flow in Vivado

Issue 254 Trigger State Machine and the ILA 

Issue 253 Zynq MPSoC EV Video Codec Unit 

Issue 252 Triple Modular Redundancy & MicroBlaze

Issue 251 Using SDSoC with MicroBlaze

Issue 250 Ultra96 creating webapps and projects

Issue 249 MPSoC Leveraging the Configuration Security Unit

Issue 248 DSP48 SIMD for power and area optimisation

Issue 247 Machine Learning on the Ultra96 

Issue 246 Creating PetaLinux for the Ultra96

Issue 245 BRAM Optimisations

Issue 244 A look at the Ultra96 Board

Issue 243 HLS Sobel implementation 

Issue 242 Xilinx Parameterized Macros

Issue 241 HLS for Image Processing

Issue 240 Creating a Zynq or FPGA-Based, Image Processing Platform

Issue 239 Vivado HLS and DDR Access

Issue 238 FSM Tips 

Issue 237 Pynq Computer Vision Overlay

Issue 236 Maximising Reuse in Vivado Designs 

Issue 235 XADC AXI Streaming and Multi Channel DMA 

Issue 234 MPSoC UltraZed Edition – OpenAMP Between A53 & R5

Issue 233: XDAC AXI Streaming and DMA

Issue 232: Cross Triggering between PS and PL when Debugging

Issue 231: How to create Embedded Vision – 45 Minute Video

Issue 230: Tips for better AMS

Issue 229: Tips for an Image Processing System 

Issue 228: Verifying Video Images in PS DDR – Creating BMP 

Issue 227: A look at Blue Pearl 

Issue 226: JTAG to AXI Bridge 

Issue 225: Advanced System Debugging with Micrium’s μC/Probe

Issue 224: System Debugging with Micrium’s μC/Probe

Issue 223: Video Mixing 

Issue 222: MPSoC UltraZed Edition – Watchdogs

Issue 221: MicroBlaze Booting from NV RAM 

Issue 220: HDMI TMDS Direct Decoding in FPGA 

Issue 219: MPSoC UltraZed Edition – Building PetaLinux

Issue 218: MPSoC UltraZed Edition – PL to PS VDMA

Issue 217: Answering SPI questions on the Zynq & Zynq MPSoC

Issue 216: HDMI Rx using ADV7611 & HDMI FMC App SW 

Issue 215: HDMI Rx using  ADV7611 & HDMI FMC Vivado Build

Issue 214: How to address VDMA Issues

Issue 213: MiniZed, FLIR Lepton & 7-Inch touch display

Issue 212: MiniZed, FLIR Lepton & IOT

Issue 211: HDMI Sink and Source 

Issue 210: MPSoC UltraZed Edition – Xilinx Power Management Framework Library

Issue 209: MPSoC UltraZed Edition – Platform Management Unit 

Issue 208: MiniZed WIFI,  Bluetooth & First program

Issue 207: MiniZed Intro and WIFI bring up

Issue 206: Diligent Nexys Video SW – Microblaze

Issue 205: FLIR Lepton Part 2 

Issue 204: Diligent Nexys Video HW – MicroBlaze

Issue 203: FLIR Lepton & Zynq 

Issue 202: SDK AXI performance monitoring 

Issue 201: SDK Performance Analysis and Profiling 

Issue 200: MPSoC UltraZed Edition – PS, PL Interfacing 

Issue 199: AD9467 SDSOC Platform 

Issue 198: Sampling at 250 MSPS AD9467

Issue 197: MPSoC UltraZed Edition – Real Time Processing Unit Modes

Issue 196: SDSoC and Levels of Abstraction 

Issue 195 : PCAP and DevC  Interface 

Issue 194: MPSoC UltraZed Edition – Interrupt Example 

Issue 193: Answering a question on EMIO and the PL

Issue 192: Pmod what if there is no driver

Issue 191: MPSoC UltraZed Edition – Interrupts 

Issue 190: Booting from TFTP 

Issue 189: XADC Simultaneous Conversion 

Issue 188: Pmods and how to use them 

Issue 187: MPSoC UltraZed Edition – Real Time Clock

Issue 186: TySOM Face Detection – SDSoC

Issue 185: MPSoC UltraZed Edition – PS RTC 

Issue 184: TySOM Face Detection HW Deep Dive

Issue 183: TySOM and Face Detection

Issue 182: XADC External Multiplexing

Issue 181: MPSoC UltraZed Edition – PS Clocking 

Issue 180: reVision Stack Machine Learning Introduction

Issue 179: MPSoC UltraZed Edition – AMS PL Sysmon

Issue 178: MPSoC UltraZed Edition – AMS PS Sysmon R5 & A53

Issue 177: reVision Stack Intorduction

Issue 176: Video Timing Controller Synchronization

Issue 175: MPSoC UltraZed Edition – Sysmon and AMS Introduction 

Issue 174: MPSoC UltraZed Edition – Memory Map

Issue 173: TTC Event Timers

Issue 172: MPSoC UltraZed Edition – Hello World 

Issue 171: OpenAMP Part 2 Example & PetaLinux Build

Issue 170: MPSoC UltraZed Edition – Vivado Build 

Issue 169: OpenAMP Introduction

Issue 168: MPSoC UltraZed Edition Part 1 

Issue 167: PWM and RC Servo SW 

Issue 166: PWM and RC Servo 

Issue 165: Power Management Part 3

Issue 164: Power Management Part 2

Issue 162: Power Management Part 1

Issue 161: Pynq (Python + Zynq) SDSoC Integration 

Issue 160: Pynq (Python + Zynq) SDSoC Platform 

Issue 159: Pynq (Python + Zynq) SDSoC and Python

Issue 158: Pynq (Python + Zynq) Creating your own overlay 

Issue 157: Pynq (Python + Zynq) Exploring the Base Overlay

Issue 156: Pynq (Python + Zynq) Hardware Overlays

Issue 155: Pynq (Python + Zynq) Dev Board

Issue 154: SDSoC Tracing Performance

Issue 153: SDSoC Performance Profiling 

Issue 152a: ZynqBerry Getting the Raspberry Pi Camera up and running – Video

Issue 152: ZynqBerry SDSoC Example

Issue 151: ZynqBerry SDSoC Hello World

Issue 150: ZynqBerry

Issue 149: Camera Link

issue 148: Cracking Open HLS Part 5

Issue 147: Cracking Open HLS Part 4

Issue 146: Cracking Open HLS Part 3

Issue 145: Cracking Open HLS Part 2

Issue 144: Cracking Open HLS part 1

Issue 143: Getting Down with Embedded Vision Algorithms

Issue 142: OpenCV and Object Tracking Part 2

Issue 141: OpenCV and Object Tracking Part 1

Issue 140: Zedboard Single Board Computer & Installing OpenCV

issue 139: Linux and File Systems

Issue 138: Linux, Device Tree and Zynq SoC PL

Issue 137 : Snickerdoodle – Hello World & Wireless Transfer

Issue 136: Snickerdoodle – Getting it up and running and connected to WIFI

Issue 135: Snickerdoodle – Introduction 

Issue 134: LabVIEW FPGA – Test Bench Overview

Issue 133: LabVIEW FPGA – First Project 

Issue 132: LabVIEW FPGA Using Eclipse and C 

Issue 131: LabVIEW FPGA & NI RIO Part 2 

Issue 130: LabVIEW FPGA & NI RIO

Issue 129: Incremental Compilation

Issue 128: Out Of Context Synthesis

Issue 127: Deep Dive of the EVK Control Interfaces

Issue 126: EVK looking at the status of the Camera Receiver

Issue 125: Creating the EVK Camera Software

Issue 124: Creating the EVK Camera Hardware Build

Issue 123: Using the Returned  Peripheral Status 

Issue 122: Embedded Vision Kit 7 Inch Display Software Build

Issue 121: Embedded Vision Kit 7 Inch Display Hardware Build

Issue 120 Embedded Vision Kit 7 Inch Display Introduction

Issue 119: VDMA and Test Pattern SDK Software

Issue 118: VDMA and Test Pattern Vivado Hardware

Issue 117: Hardware in the loop –  ILA and SDK 

Issue 116: Test Pattern Generation

Issue 115: Embedded Vision Kit – Deep Dive

Issue 114: Embedded Vision Kit – Initial Power Up

Issue 113: SDSoC FIR Filters – High Pass / Band Pass and Band Stop 

Issue 112: SDSoC FIR Filter PL

Issue 111: SDSoC FIR Filter PS

Issue 110: SDSoC Coherent Sampling and FFT Size

Issue 109: SDSoC Creating your own Platform Part 2 – Pre 2015.4 Versions

Issue 108: SDSoC Creating your own Platform – Pre 2015.4 Versions

Issue 107: XADC, Interrupts & Real Signals

Issue 106: Interrupt Latency Part 2

Issue 105: Interrupt Latency

Issue 104: XADC in the Real World

Issue 103: SDSoC and ADC

Issue 102: SDSoC AES FreeRTOS Example – Includes how to run FreeRTOS on the MicroZed

Issue 101: SDSoC AES Bare Metal

Issue 100: 100th Blog

Issue 99: SDSoEstimation 

Issue 98: SDSoC AES Example Part 5 

Issue 97: SDSoC AES Example Part 4

Issue 96: SDSoC AES Example Part3

Issue 95:  SDSoC AES Example Part 2

Issue 94: SDSoC AES Example Part 1 

Issue 93: SDSoC Part 9

Issue 92: SDSoC Part 8

Issue 91: SDSoC Part 7

Issue 90: SDSoC Part 6 

Issue 89: SDSoC Part 5

Issue 88: SDSoC Part 4

Issue 87: SDSoC Part 3

issue 86: SDSoC Part 2 

Issue 85: SDSoC Part 1

Issue 84: SPI Part 4

Issue 83: SPI Part 3

Issue 82: SPI Part 2

Issue 81: SPI Part 1

Issue 80 : lwIP Stack 

Issue 79 : Ethernet Part 3 

Issue 78 : Ethernet Part 2

Issue 77 : Ethernet Part 1

Issue 76: Constraints RPM

Issue 75: Physical Constraints – PBlocks

Issue 74: Physical Constraints 

Issue 73: Using boards other than the MicroZed

Issue 72: Multi Cycle Paths 

Issue 71: Clock Constraints Relationships and Metastability

Issue 70: Constraints Part Two, Clock Relationships and Metastability 

Issue 69: Constraints Part One

Issue 68: AXI DMA Part Three

Issue 67 : AXI DMA Part Two

Issue 66: AXI DMA Part One 

Issue 65: SDK Profiling Applications Part 2

Issue 64: SDK Profiling Applications Part 1

Issue 63: SDK Debugging Applications

Issue 62:  XADC AXI and DevC Interfacing 

Issue 61: PicoBlaze Part Six

Issue 60: PicoBlaze Part Five 

Issue 59: PicoBlaze Part Four

Issue 58: PicoBlaze Part Three

Issue 57: PicoBlaze Part Two

Issue 56: PicoBlaze Part One 

Issue 55: Linux on the Zynq

Issue 54: PetaLinux on the Zynq

Issue 53: Linux and SMP

Issue 52: One Year and free EBook

Issue 51: SW Interrupts between Cores 

Issue 50: Communicating between Cores using OCM AMP

Issue 49: Communicating between cores OCM

Issue 48: Bare Metal AMP

Issue 47: AMP on the Zynq

Issue 46: Using both Cores on the Zynq

Issue 45: FreeRTOS Task Creation

Issue 44: FreeRTOS on the Zynq

Issue 43: XADC and Alarms

Issue 42: Zynq Operating Systems Part Four – uc/OS-III

Issue 41: Zynq Operating Systems Part Three 

Issue 40: Zynq Operating Systems Part Two

Issue 39: Zynq Operating Systems Part One

Issue 38: Interrupt PL to PS

Issue 37: NeoPixel Demo Part Eight

Issue 36: NeoPixel Demo Part Seven

Issue 35:  NeoPixel Demo Part Six

Issue 34: NeoPixel Demo Part Five

Issue 33: NeoPixel Demo Part Four

Issue 32: NeoPixel Demo Part Three

Issue 31 NeoPixel Demo Part Two

Issue 30: NeoPixel Demo Part One

Issue 29: PS DMA Part Two

Issue 28: PS DMA Part One

Issue 27: Creating a PL Peripheral Part Seven

Issue 26: Creating a PL Peripheral Part Six

Issue 25:  Creating a PL Peripheral Part Five

Issue 24: Creating a PL Peripheral Part Four

Issue 23: Creating a PL Peripheral Part Three

Issue 22: Creating a PL Peripheral Part Two

Issue 21: Creating a PL Peripheral Part One

Issue 20: Triple Timer Counter Part Four

Issue 19: Triple Timer Counter Part Three

Issue 18: Triple Timer Counter Part Two

Issue 17: Triple Timer Counter Part One

Issue 16: Private Watchdog

Issue 15: Private Timer 

Issue 14: Timer, Clocks & Watchdogs

Issue 13: Interrupts Part Two

Issue 12: Interrupts Part One

Issue 11: GPIO Example

Issue 10: PS GPIO

Issue 9: Zynq MIO

Issue 8: XADC SW

Issue 7: XADC HW

Issue 6: Bootloader Part Two

Issue 5: Bootloader Part One

Issue 4: Running Programmes on the Zynq

Issue 3: Hello World

Issue 2: The SW Environment 

Issue 1: The Board Bring Up

bottom of page