The CoSynth Synthesizer is a tool for the creation of FPGA-accelerated systems directly from existing software algorithms.
Once currently deployed embedded PCs do not provide enough performance anymore, there are two options: A faster, but expensive and energy-consuming CPU as replacement, or integration of coprocessors such as DSP, GPU, or FPGA. Since these special processors require a special design process, high costs for experts or ready-made solutions were required so far.
Now, FPGA development can be made in a standard software process using the CoSynth Synthesizer. Usual programs, written in C/C++, are prepared for parallel computation on FPGAs by the use of the C++ library SystemC. Everything up to this point is thus still a pure software design. It can be simulated on all PCs and developed, tested, and optimized with common software development tools. As a last step, the CoSynth Synthesizer automatically generates the hardware description required for the FPGA implementation directly from the software model. Function and timing specifications are exactly reproduced, such that the previously tested properties of the system are preserved by the hardware.
In combination with the contained IP cores, resources on the FPGAs are optimally integrated into the system. This also includes local memory and busses, interfaces to the CPUs, and other I/Os. All these components are designed at software layer and automatically mapped to the hardware.