ParC Home

Methodology

Verification

In a typical HDL based flow, a high level description is converted by synthesis tools into a low level (logic cell) representation. For ESL this will often also involve a transition from SystemC to Verilog, in which case it is highly likely that any verification environment that exists for the SystemC won't work with the Verilog. Because ParC can be used for the high level representation as well as the low level representation, any verification tools that work with the high level code will work with the low level version too.

Compilation & Synthesis

In general synthesis or code morphing with ParC should be done so that the result of translation is also ParC, but that ParC has a simple 1-to-1 mapping to the target hardware.  This allows verification of the ParC description on a platform that supports debugging prior to deployment on a platform that doesn't, i.e. FPGAs and GP-GPUs usually have poor debugging support, so being able to debug the same code description on an SMP desktop machine is important. ParC can be used to model the target hardware, so the final code mappings can also be tested in the same environment (using ParC virtual machines).

Runtime Management

Since FPGA and GP-GPU support is unlikely to be consistent (different capacity/vendor on different platforms), it's useful to be able to load up the code on a general purpose machine first and then move parts of it on and off whatever accelerating hardware is available. In the case of a program being swapped in and out one would expect the program to be loaded as any other would by the OS and then the runtime management would migrate all or part of it onto available accelerators, when the program needs to be swapped out it would first transfer back off the accelerators so that it is running like a normal program. In a demand based (event driven) computing environment this means that a program can easily surrender hardware it doesn't need while still running, and in a power sensitive environment an application can shrink it's usage of hardware to the minimum necessary to maintain required performance.

ParC Home