IP cores

[ Jump to english part ]

Für spezifische Zwecke setzen wir gerne FPGAs ein:

  • Schnelle synchrone Bild-Vorverarbeitung, Videokompression
  • Spezielle DSP-Anwendungen, Rechenbeschleuniger
  • Komplett anpassbare SoC-Designs (embedded Videoprocessing)
  • Reliable Computing / Safety (verifizierbare State machines)

Im Laufe diverser Kundenentwicklungen sind folgend aufgelistetet IP-Cores (nur englische Dokumentation) entstanden, die für andere Anwendungen weiterverwendet werden können.

Eigene Prozessoren entwickeln? Ein Ding der Unmöglichkeit?

Wir haben es trotzdem getan. Die nach einigen Anläufen 2014 neuentwickelte ZPUng-Architektur zeichnet sich durch Kompabilität zur bestehenden ZPU (mit Debugger, GCC-Support, usw.) aus und kann mit der bestehenden Toolchain verwendet werden. Die ZPUng-Architektur ist dank ihrer höchst einfachen Opcode-Struktur komplett verifizierbar. Korrekte Funktion von Programmcode ist somit beweisbar und kann komplett mit Anwendungsszenarien in die Simulation gesteckt werden.

Die 32-Bit ZPU-Architektur hat sich im Vergleich mit klassischen CPU-Ansätzen (Microblaze, lm32, avr) als höchst kompakt erwiesen: Ein komplettes Bare-Metal-System mit UDP/IP-Networking passt in ca. 10kB RAM, der CPU-Kern konsumiert unter 800 LUT-Elementen auf dem FPGA. Dafür ist die ZPU mit dem Minimal-Opcode-Set (konfigurierbar) etwas langsamer.

Momentan sind folgende System-On-Chip Referenzdesigns auf Anfrage verfügbar:

  • agathe: OpenSource-SoC mit Zealot CPU: Einfache Soft-CPU für FPGAs für Konfigurationsaufgaben
  • beatrix: SoC mit ZPUng core: Schnelle Soft-CPU mit Beschleuniger-Optionen
  • cranach: IoT-Lösung für kleine FPGAs (netpp-on-FPGA), optionaler Support für GigE

IP cores

Cottonpicken Engine

The Cottonpicken Engine is an in-house micro coded engine that has the following functionality:

  • Bayer pattern decoding into various formats (YUV 4:2:2, YUV 4:2:0, RGB, programmable delays)
  • 3×3, 5×5 filter kernels
  • Specific matrix operations, cascadeable

It is capable of running at full data clock (pixel clock) up to 150 MHz, typically (platform dependent).

The engine is only available as a closed source netlist object as part of a development package.

JPEG Encoder IP

We have developed our own, machine vision proof JPEG encoder which is now available for third parties with source code licensing options (VHDL only, Verilog under evaluation). The supported pixel depth is up to 12 bits. For JPEG header generation, a SoC and DMA engine is typically required. The JPEG IP is available in two variants:

  • L1 monochrome multiplexed pipeline (150 MHz pixel clock on Spartan6)
  • L2 dual pipe simultaneous encoding (up to 1280×720@60 fps supported)

Available for: Spartan6 LX9 and larger, Lattice ECP3-70

Board supply packages for eval kits:

  • Spartan6 Gigabee module from Trenz electronic
  • HDR60 from Lattice semiconductor (license required)

Also, we can provide a simulator package as Linux Container or virtual machine on request. It can be used to test the virtualized encoder HDL with existing PNG images.

Announcement post: [ Link ]

Documentation: [JPEG encoder IP PDF  – currently available on request only ]

SoC Reference designs

These System on Chip designs consist of a fully configureable CPU plus standard peripherals and can be customized with special interfaces. The CPU can be programmed with GCC and is accessed via ICE JTAG during development.

The MaSoCist build environment is a GNU make based toolchain to generate hardware, software, FPGA firmware and documentation using one make call. It makes heavy use of our in-house netpp-Technology powered gensoc  utility to create SoC designs using IP-XACT alike approaches.

It allows vendor specific designs and extensions without the need to OpenSource, therefore it is available in two license variants:

  • OpenSource GPL alike
  • Custom Vendor license under NDA

Feel free to visit the SoC reference designs overview.

Simulation models

Full simulation models are available for these IP cores that can be co-simulated with custom IP.

Examples can be found on the VirtualChip page.