For System Architects working with software models, or Developers working with in-house, open source, commercial source and binary code, the traditional methods of software optimization are not scalable for multicore systems anymore.
To fully understand the application behavior on a multicore system, a full and precise analysis of software interdependencies is required. In order to understand system behavior and explore opportunities for performance gains and power saving, a tool is needed to provide deep insights into the software interdependencies that occur during execution.
SLX is a multicore development tool that provides software execution insights into hardware and software interdependencies. It allows for code architecting and refactoring to achieve the most efficient utilization of CPU, DSP, FPGA and other acceleration engines on multicore systems.
SLX combines a deep understanding of legacy source code, how it is executed and the implications of a system that enables the partitioning of applications into software to run on several processors, and hardware to be mapped to an FPGA. It gives comprehensive processor modeling, and characterization of the timing and resource capabilities of the FPGA. SLX searches for parallelism patterns from static and dynamic information.
The design space is explored to fully optimize hardware/software partitioning. Pragmas are automatically inserted based on the optimization decisions for the parallelization of the software and for guiding the High Level Synthesis (HLS) process for the hardware implementation. SLX uniquely connects its analysis and advice to your source code, simplifying your task of understanding the opportunities for, or blockers of, parallelism and hardware acceleration.
Static and Dynamic Source Code Analysis
Automatic SW/HW Partitioning
Automatic insertion of pragmas (OpenMP, HLS)