SERVICES - Embedded Software

Embedded Software Services

FPGAs and CPUs come closer nowadays. Today often CPUs and FPGAs are combined in the same chip, either as a softcore CPU (NIOS II or Microblaze) or as a hard CPU like an ARM (Xilinx Zynq or Altera SoC). The trend is that in the future also PC or especially Server CPUs contain an FPGA fabric to accelerate specific tasks. Therefore more and more interaction between Software and FPGAs is required. With our embedded software services we focus on software interacting in one or the other way with an FPGA. This can be software running on a softcore CPU or on one of the hard CPUs in an combined chip, protocol stack development, driver development for FPGA IP cores, hardware acceleration of software parts or linking the FPGA based system with a host CPU, to just give a couple of examples. With our experience and know how we are able to cope with even the most complex designs. We set the focus in our development on modularity, reausability and testability which in the end often leads to simplicity even if the design is very large and in itself complex. This allows us to use the same development flow for simple and very complex designs. Whenever possible and useful we try to run Embedded Linux on the target systems to have maximum flexibility and reusability of the developed software components.

We use source control, ticketing and automated build systems to keep track of the development and simplify the development flow.

We can help you in every step of FPGA related embedded software development: from simple entities to complete IP core solution:

  • Design, Concept and Architecture of your system
  • Implementation of units
  • Implementation of unit tests
  • Operating system porting (Linux)
  • Linux driver development
  • Server/Client Network applications (TCP/IP, UDP/IP or Raw)
  • Low level applications without OS
  • Network stacks
  • Host applications on Windows and Linux
  • Software for hardware test platforms
  • GUIs in QT
  • Debugging on hardware
  • Regression testing
  • Deployment and continuous integration
  • Maintenance

Embedded Software Design Expertise

We have experience in a wide area of embedded software designs, this is just a short summary of the most recent designs we worked on:

  • Data aquisition system
  • Framebuffer (Display) driver for Linux
  • Ethernet (MAC) driver for Linux
  • PCIe driver for Linux
  • User interface driver for Linux
  • Multiple character device drivers (SPI, I2C, etc) for Linux
  • Power management driver for Linux
  • Linux porting to Xilinx and Altera ARM/FPGA system on chips
  • Host to FPGA data exchange solution via Ethernet and UART
  • Protocol stack for communication on Windows, Linux and "Bare metal"
  • Windows configuration Tool for NetTimeLogic IP cores
  • "Bare metal" applications on softcore CPUs and ARM/FPGA system on chips
  • Hardware test platform software for stimuli parsing and log generating

Programing LANGUAGES

  •  Embedded Software:
    • C
    • C++
    • Make
    • TCL
  • Driver Development:
    • C
    • Make
  • GUI
    •  Qt
    • C++
  • Network and Host Applications:
    • C
    • C++
    • C#
    • Make
    • TCL

Developmenet Tools

  •  Design Concept:
    • Microsoft Visio
    • Microsoft Word
  • Design entry:
    • Notepad ++
    • Eclipse
    • Microsoft Visual Studio
    • Altera SDK/EDK
    • Xilinx SDK
  • GUI
    • Qt Creator
  • Verification:
    • CppTest
  • Building:
    • Gcc
    • Make
    • Microsft Visual Studio
    • Altera SDK/EDK
    • Xilinx SDK
  • Debugging
    • GDB
    • Microsoft Visual Studio
    • Altera SDK/EDK
    • Xilinx SDK

Pricing

Contact us for our rates, rates depend on the duration and tasks to be done

contact us