Hotline
+49 9132 733400

Click here

Fax orders
+49 9132 733 401

CESYS GmbH
Zeppelinstrasse 6A
D-91074 Herzogenaurach
Germany
E-Mail: sales@cesys.com

Unified Development Kit: UDK

The UDK is a comprehensive concept to access CESYS FPGA boards with different host interfaces (USB, PCI or PCIe) using unique function calls.

Actually supported Operating Systems: Windows 7, Windows XP, Windows Vista and LINUX. A LabView Interface is also part of the UDK.

Please contact us if you need information about adaption and licensing of the UDK to non-CESYS hardware.

FPGA Entwicklungskit mit Wishbone Schnittstelle unter XP und Linux

On the host-side, there is a standardized API "udkapi_vc[ver]_[arch].lib". On the FPGA-side a standardized 32-bit Wishbone-Bus interface is used.

FPGA-designs and their associated PC-software run on all supported operating systems and all supported Cesys FPGA boards with no or minimal code changes.

For customer specific developments we also use the UDK.
This way, we do not only achieve a significant reduction of development costs but also a great freedom when choosing operating systems or host interfaces.

Code Example:

#include "udkapi.h"
using namespace ceUDK;

void TransferSomeData(ceDevice *pDev){

   // declare some variables
   unsigned int uiBaseAddress = 0x0;
   unsigned int uiWriteVal = 0x11111111;
   unsigned int uiReadVal = 0x0;

   // write, read and compare some values
   for(unsigned int i=0; i<4; ++i){
			
      pDev->WriteRegister(uiBaseAddress, uiWriteVal);
      uiReadVal = pDev->ReadRegister(uiBaseAddress);
		
      if(uiWriteVal != uiReadVal){
         throw ceException(0x80000000, "Register test failed due to data inconsistence.");
      }

      uiWriteVal <<= 1;
   }
}

int main(){

   // begin of exception catch area
   try{
	
      // initialize API and enumerate EFM01 boards.
      ceDevice::Init();
      ceDevice::Enumerate(ceDevice::ceDT_USB_EFM01);

      // check if any device is detected
      if(0!=ceDevice::GetDeviceCount()){

         // access first device
         ceDevice *pDev = ceDevice::GetDevice(0);

         // open device for usage
         pDev->Open();

         // program the FPGA
         pDev->ProgramFPGAFromBIN("AnyUserDesign.bin");

         // do some data transfer
         TransferSomeData(pDev);

         // device not needed anymore, close it
         pDev->Close();
}else{ cout << "No device detected." << endl; }
}catch(ceException &e){ cout << e.GetErrorText() << endl; } // deinitialize API ceDevice::DeInit(); return 0; }

For further information on Cesys FPGA boards or if you have questions, please visit our FPGA-Forum, send an E-Mail or call us: +49 9132 733 400.
You can order Cesys FPGA boards in our online-shop.
To get a written quote, please contact us or fill out the enquiry form.