explaingit

mouad-tr/zynq-axi-sobel-accelerator

Analysis updated 2026-05-18

0VHDLAudience · developer

TLDR

A custom VHDL circuit that runs Sobel edge detection directly in FPGA hardware on a Zynq chip, streamed over AXI DMA.

Mindmap

mindmap
  root((Sobel Accelerator))
    What it does
      FPGA edge detection
      AXI DMA streaming
      Zynq hardware software split
    Tech stack
      VHDL
      Zynq SoC
      AXI DMA Vivado
    Use cases
      Hardware image pipelines
      Line buffer design
      DMA limit workaround
    Audience
      FPGA developers
      Embedded engineers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Study a working example of a hardware-accelerated image processing pipeline on a Zynq SoC.

USE CASE 2

Learn how to build a sliding-window convolution circuit using BRAM and shift registers.

USE CASE 3

See how AXI DMA transfer size limits can be worked around for large data streams.

USE CASE 4

Reference an 11-bit fixed-point Sobel gradient implementation designed to avoid overflow.

What is it built with?

VHDLZynqAXI DMAVivadoC

In plain English

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.

Copy-paste prompts

Prompt 1
Walk me through how the AXI DMA and the sobel_axis VHDL IP communicate over AXI4-Stream.
Prompt 2
Explain how the BRAM-based sliding-window line buffer computes a 3x3 convolution from a pixel stream.
Prompt 3
Show me how the Sobel gradient magnitude is approximated to save DSP slices on the FPGA.
Prompt 4
Help me understand how the 16KB DMA transfer limit was worked around for a full image frame.

Frequently asked questions

What is zynq-axi-sobel-accelerator?

A custom VHDL circuit that runs Sobel edge detection directly in FPGA hardware on a Zynq chip, streamed over AXI DMA.

What language is zynq-axi-sobel-accelerator written in?

Mainly VHDL. The stack also includes VHDL, Zynq, AXI DMA.

Who is zynq-axi-sobel-accelerator for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.