Loading Via an FPGA

Top  Previous  Next

Diamond loads a Sundance system by considering it as a tree of processors.  The whole of the application file is sent to the root of the tree (the root processor) which takes the data it requires and passes the rest over links to its child processors. These in turn take what they need and pass the rest to their children, and so on. This procedure stops at processors that have no children (known as leaf processors to complete the tree analogy).  Diamond has to arrange for any processor that is not a leaf to be able to load its children.  This is simple for a DSP but more difficult for an FPGA.

 

In the following example, FPGA F2 is a leaf and does not need to load any other processors, but FPGA F1 is responsible for loading F2.

 

 

Diamond copes with this situation by including extra logic in the non-leaf FPGA (F1). The amount of logic added is approximately 300 flip-flops and 500 LUTs and is only activated during the loading of the application; it is deactivated once the application starts running.

 

Some limitations apply to applications that use FPGAs to load other processors:


The application must not check for processor types during loading. Add the line 'option noloadcheck' in the configuration file or tick the corresponding option in the IDE;

All processors loaded via an FPGA can execute only standalone tasks