GECKO3 SoC General Purpose Co-design Environment

GECKO3 SoC General Purpose Co-design Environment


Category: System on Chip

Created: September 23, 2008

Updated: January 27, 2020

Language: VHDL

Other project properties

Development Status: Stable

Additional info: Design done, FPGA proven

WishBone compliant: Yes

WishBone version: n/a

License: Others


The GECKO system is a general purpose hardware/software co-design environment for real-time information processing and/or system-on-chip (SoC) solutions. The GECKO system supports a new design methodology for system-on-chips, which necessitates co-design of software, fast hardware and dedicated real-time signal processing hardware.

This is now the third generation of these boards, so the current project is called GECKO3.

GECKO3main HPC stack,



All GECKO3 system components can be stacked together, as they all have a common backbone bus connector and all have the size of a credit card.

Information about the whole Project, all related modules, software support, tutorials and much more can be found on the project wiki:

Get the nice GECKO3 project leaflet in pdf format with all important information about our project.

GECKO3 Modules


The GECKO system comprises hardware modules that can be readily interfaced. The GECKO3main module is the main experimental platform, offering the necessary computing power for processing intensive real-time algorithms as well as the necessary flexibility for control intensive software tasks.

Different GECKO3 modules are available to adapt the GECKO3main to the needs of different applications. An optional board, the GECKO3interface, houses a 160 x 128 pixel graphical color OLED display and a keyboard.

The autonomous GECKO3EDU robot is a composition of different modules with sensors, motors and mechanical housing. It is used for educational purposes. One of its modules, the GECKO3power board, provides the necessary power supply and, in addition, houses H-bridges to control the robot‘s motors, on-board ultrasonic sensor for measuring distances to obstacles and line sensors for line-follower applications. The GECKO3 robot is the mechanical vehicle for the robot with 2 or 4 small motors and a 3900 mAh Li-Ion battery pack.

For autonomous robots, various sensor capabilities are crucial. The GECKO3sensors board therefore houses a variety of sensors like two-dimensional magnetic field sensor for compass application, a two-dimensional acceleration sensor, digital video camera for image processing as well as a bluetooth wireless communication device.

To support autonomous navigation in outdoor environments, the robots can use the GECKO3gps module to quickly add a high sensitivity GPS receiver with an on-board antenna. The module is GALILEO aware.



The features of the Gecko3main board include:

  • FPGA with 1.5Mio. to 4Mio. gates (Xilinx Spartan3)
  • 128 Mbyte DDR SDRAM and 32Mbyte NOR Flash (Enough to support Linux)
  • USB 2.0 interface for configuration and data transfer
  • 100 Mbit/s Ethernet interface
  • Small, as size range of a credit card (85 x 54,5 mm)
  • Fully Compatible with IP-Cores from:, LEON3 (GRLIB) and Xilinx EDK

,GECKO3main bottom,GECKO3main top,

Extensibility, Scalability
The GECKO3main includes fully populated GECKO3 system bus connectors. The module can be stacked with any other GECKO3 module and also with other GECKO3main modules. We provide a fast and collision free development environment because none of the I/O Pins on the System Bus are shared with on-board peripherals.

USB 2.0 Communication and FPGA Configuration
Matlab and Labview can access the GECKO3main through the VISA API (Virtual Instrument Software Architecture) using the Instrument Control Toolbox in Matlab. The VISA API can also be used from other environments calling Windows DLLs. On Linux you can use normal file I/O with the USB-TMC driver instead of the proprietary VISA driver. The USBTMC Driver is included in every Linux Kernel >2.6.28, and you can also compile it yourself for older kernels. We use this system not only to configure the FPGA during development and for data communication, but also to configure the FPGA in stand-alone mode.

Project license


cc-license All parts of this project (including text, photograph and any other original works), unless otherwise noted is licensed under a Creative Commons License (by-nc-sa)

For more information check out the License page in our wiki.