What is ROCCC 2.0
ROCCC 2.0 (Riverside Optimizing Compiler for Configurable Computing) is a C to HDL compilation framework specifically focused on FPGA-based code acceleration from a subset of the C language. Unlike similar tools designed for high-level synthesis, ROCCC 2.0 does not focus on the generation of arbitrary hardware circuits. Rather, its focus is on compile time transformations and optimizations aimed at providing an application substantial speedup by replacing regions in software with a dedicated hardware component.
Its objectives are to maximize parallelism within the constraints of the target device, optimize clock cycle time by efficient pipelining, and minimize the area utilized. It uses extensive and unique loop analysis techniques to increase the reuse of data fetched from off-chip memory. ROCCC 2.0 intends on making it simple and intuitive to be able to transfer the same hardware component to various platforms with minimal effort.
ROCCC 2.0 supports the bottom-up construction of hardware systems through the support of modular design. Users code hardware modules in C and then use these modules in larger programs, automatically integrating the modules into larger pipelines.
All available modules are stored in a database that is displayed inside the GUI, allowing for the addition of preexisting IP cores or netlists to be integrated with ROCCC 2.0 code.
ROCCC 2.0 generates platform independent VHDL code from C descriptions. This code assumes a platform interface abstraction layer and does not interface with specific platforms directly. This allows for much easier porting of a particular circuit from one platform to the next without having to modify the C source. The suite of optimizations supported by ROCCC 2.0 can be controlled by the user, resulting in the generation of hardware optimized in a variety of ways to fit individual platforms.
ROCCC 2.0 comes equipped with a full GUI that integrates into the free Eclipse IDE. This allows for development in a widely used and familiar environment with added extensions specific to ROCCC 2.0. With these controls users can create new components, manage their modules database, and even have testbenches and platform interfaces automatically generated.
Make sure you have all of the requirements necessary to be able to run ROCCC 2.0 on your system. All requirements are free and readily available.
The available distribution comes with the ROCCC 2.0 compiler, GUI plugins, documentation, and examples. ROCCC 2.0 will update itself with any new versions that come available once it has been installed.
Check out our examples of modules and systems with descriptions of how they work and what syntax is necessary. These are bundled with the ROCCC 2.0 distribution.
ROCCC 2.0 also has an extensive set of free online tutorials that visually and descriptively guide you through all the elements of ROCCC 2.0 from installation to advanced uses.