Hierarchical Design Using a Pure C++ Class-Based Approach
Untimed C++ synthesis has required the use of C-style "wrapper" functions to instantiate a design block & define its interfaces. This coding style is acceptable but limits what can be done using a pure C++ class-based design style. Class-based hierarchal design using High-level Synthesis (HLS) allows users to define and interconnect modules using C++ classes, directly leveraging the power of C++ for things such as inheritance, parameterization, and multiple instances of a class/module.