RAD C++ Source
class IRVector { public: int Size; int *Indexes; double *Elements;
radram bool ComputeDot( radram radresult IRDotResult &ResultVector, radram radglobal IRVector &WithVector) { int lIndex = 0, gIndex = 0, rIndex =0; ResultVector.Elements = new double[max(Size, WithVector.Size)]; radram_cycle while ((lIndex<Size)&&(gIndex<WithVector.Size)) { if(Indexes[lIndex]<WithVector.Indexes[gIndex]) { ++lIndex; continue; }
The keyword radram is used to mark data objects which are manipulated by the reconfigurable logic, as well as functions which must be synthesized into logic.
The raddata, radresult, and radglobal keywords are storage type modifiers which distinguish between the current sub-page memory groupings within the RADram system.
The radram_cycle keyword is used within RADram functions which are synthesized. This instructs the C++ front end on VHDL code generation.