Edge Detection Walkthrough Video Series

The following 9-part video series provides a step-by-step walkthrough of what is needed to take a C++ floating-point algorithm all the way to optimized RTL using Catapult High-Level Synthesis.

The video modules are broken down into the following nine categories: We start first with a basic overview of the Catapult flow using a simple design. Module 1 provides an overview of the edge detection algorithm. In module 2 we convert the floating-point algorithm to use bit-accurate data types. Module 3 then makes the algorithm synthesizable. Module 4 uses a sliding window memory architecture in order to improve performance. In module 5 we add multi-block concurrency to achieve the highest performance. Module 6 consists of converting from a dual port to a single port memory architecture. Module 7 involves making the hardware more configurable. In module 8 we finish up by converting the memory architecture to use a circular buffer memory architecture to reduce power.

If you would like to step through this design you can do so by downloading the this file HERE: https://github.com/hlslibs/hls_tutorials/tree/master/WalkThroughs/EdgeDetect/src