mouad-tr/zynq-axi-sobel-accelerator — explained in plain English
Analysis updated 2026-05-18
Study a working example of a hardware-accelerated image processing pipeline on a Zynq SoC.
Learn how to build a sliding-window convolution circuit using BRAM and shift registers.
See how AXI DMA transfer size limits can be worked around for large data streams.
Reference an 11-bit fixed-point Sobel gradient implementation designed to avoid overflow.
This project builds a hardware version of a common image processing step called Sobel edge detection, which finds the outlines of shapes in an image, and runs it directly on FPGA chip logic instead of in normal software. The target board is an ALINX AX7020, which combines a small ARM processor with programmable hardware logic on a single chip called a Zynq SoC. The design splits the work between the two halves of that chip. The ARM processor side runs a C program that configures a data-moving component called AXI DMA and tells it to start streaming an image from memory into the programmable hardware side. The hardware side contains a custom-built circuit, written in VHDL, that performs the Sobel edge detection calculation on the image data as it streams through, then sends the processed image back out to memory. The two sides talk to each other over a standard high-speed connection called AXI4-Stream. The repository's documentation focuses on three engineering problems the author solved. First, feeding a 3x3 calculation from a single stream of pixels required building a custom sliding-window circuit out of small on-chip memory blocks and shift registers, along with careful handling of timing delays so the pipeline does not stall or return wrong values while it is still filling up. Second, the actual edge detection math uses 11-bit signed numbers internally to avoid overflow, then approximates the final result with simple addition instead of a more expensive calculation, clamping the output so pixel values never wrap around incorrectly. Third, the software side had to work around a hardware limit that normally caps a single data transfer at 16 kilobytes, by widening a register so the whole image, just over 300,000 bytes, could be streamed in one uninterrupted transfer. This is a from-scratch hardware design project rather than a ready-to-run application, aimed at people working with FPGAs and digital circuit design. No installation steps, dependencies, or license are given in the source material, and using it would require a matching Zynq development board and the Xilinx Vivado design tools.
A custom VHDL circuit that runs Sobel edge detection directly in FPGA hardware on a Zynq chip, streamed over AXI DMA.
Mainly VHDL. The stack also includes VHDL, Zynq, AXI DMA.
Mainly developer.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.