Traditional RTL design flows aren’t a good fit for the rapidly changing requirements of computer vision systems.
Computer vision is one of the hottest markets in electronic design today. Digital processing of images and video with complex algorithms in order to interpret meaning has almost as many applications and markets as there are uses for the human eye.
The biggest problem that designers face is that the computer vision system requirements and algorithms change quickly and often. Even the target technology might change during the course of a project. This means that using a traditional RTL design flow is almost impossible. Starting over within a RTL flow every time there is a change causes unacceptable delays in the production schedule.
If managing change is not enough of a challenge, there are technical challenges as well. Many computer vision systems need real-time speed. For example, the radar and LiDAR sensor analysis system in a car cannot tolerate delays in decision making. Real-time speed can mean billions of calculations per second, yet designers are also trying to keep power consumption to a minimum. And to make matters even more difficult, camera resolutions and frame rates are expected to double every few years.
A look at CNNs
Computer vision systems must understand what they are “seeing” in order to make correct decisions. This understanding comes from deep learning which is commonly implemented using convolutional neural networks (CNNs). CNNs are first used for training the system by feeding in massive amounts of images that are processed on GPU farms in a lab or data center in order to tune the weights of the network. This iterative process provides many images of the same types of objects with different attributes like orientations, aspect ratios, and clarity, to allow the network to “learn” how to detect and classify these objects.
A CNN that is designed for hardware in the field uses inferencing to identify images. It runs convolutions using the weights identified from the training in order to detect and classify objects in any image. Because many computer vision systems are deployed in cars, industrial equipment, or consumer products, which cannot depend on a lab full of computers, inferencing solutions are the focus of hardware designers. A typical CNN architecture consists of layers of convolutional filters, pooling, and fully connected layers whose lowest levels of implementation are matrix multiplication and dot-product functions, which are a very good fit for high-level synthesis (HLS).
Getting to hardware
High-level synthesis, such as the Catapult HLS Platform, allows hardware design teams to quickly synthesize computer vision algorithms written in C++ code into RTL. This provides a solution for hardware designers that generates high-quality RTL from C++ descriptions that target ASIC, FPGA, and embedded FPGA solutions. The platform delivers the ability to check the design for errors before simulation, provides a seamless and reusable testing environment, and supports formal equivalence checking between the generated RTL and the original source. This ensures fast design and verification and delivers power-optimized RTL ready for simulation and RTL synthesis. By employing HLS, teams can:
Addressing the challenges
Perhaps computer vision design teams are initially drawn to HLS because the Catapult HLS Platform generates correct-by-construction RTL from C++ descriptions. The tool builds concurrent RTL modules from C++ classes and functions that are synthesized into concurrent, clocked processes (no need for multi-threaded design and debugging). But, a closer look at the tool demonstrates why it is so useful for computer vision design:
The world of computer vision design is constantly changing, which means traditional RTL flows cannot keep up with schedules. In order to quickly respond to changes and to accelerate design and verification, high-level synthesis offers a path to synthesizing computer vision designs to hardware.
To learn more about computer vision and HLS, view our new whitepaper here.
Leave a Reply