Hardware Description Language (HDL) Design Expertise with self-developed Interface Soft-IP
- FPGA Design and Synthesis
- Testbench Design and Simulation
- Intel® Nios® II Soft-Core Processor
- Intel® FPGA Memory (SDRAM) Optimization
- Partial Reconfiguration
- HDL Soft-IP Timing Analyzation
Used HDL Design and Verification Tools
- SystemVerilog, VHDL
- Intel® Quartus® Prime
- MentorGraphics® (Siemens® EDA) ModelSim™
- cocotb (for Python-based Testbench Design and Simulation)
- Intel® External Memory Interface Toolkit (for the Intel® Arria® 10 SX)
- TCL- and Python-Scripts (for system verification, build automation,...)
- MathWorks® MATLAB™ (for Simulation input file generation)
Arm®-based SoC FPGA Software Design to fulfill Customer-specific Requirements
- FPGA Project Integration for Arm®-based Application Processor Systems
-
Bootloader Development
-
Embedded Linux Development
-
SoC FPGA Automation Design with Scripts to enable for instance:
Used SoC FPGA Design Tools
- OpenEmbedded Yocto Project
- Intel® Embedded Development Suite (SoC EDS)
- Arm® Development Studio (DS-5)
- Arm® Streamline
- HTML5, CSS, JavaScript and Django (for Web Interface Design)
- cmake, C++, gcc, Arm® Assembly, ...
Design of Interfaces between the FPGA Soft-IP, (HPS / PS) Hard-IP on the Hardware and Software side.
- Low Speed Hard-IP (e.g. SPI, CAN,...)
- PCIe Hard-IP for PCIe Root-Complex End-Points (e.g. for FPGA PCIe Accelerator Cards)
- FPGA Transceiver Design (e.g. SFP+ 10Gbit Ethernet Interfaces)
-
FPGA and HPS/PS Shared-memory SDRAM (DDR3, DDR4) Design
with memory Optimization (SDRAM Calibration, SDRAM pre-loading, SDRAM Bank Interleaving, ...)
- Tightly Coupled Memory (TCM) Interfaces
- Soft-IP Interface Development with Arm® AMBA® AXI or Intel® Avalon® Bus Interfaces
Software Development to connect the SoC FPGA with the Microsoft® Windows™ Desktop World
- Windows Kernel Mode Driver (KMDF) Development for PCIe Drivers
- PCIe, Network and USB Interface Design to the Embedded Hardware
- Microsoft® Windows™ high-performance Service development
- Microsoft® Windows™ Desktop Software engineering
Used Tools for Microsoft® Windows™ Development
- Microsoft® Visual Studio™
- Microsoft® Windows™ Driver Development Kit (WDK)
- Microsoft® Windows™ Presentation Foundation (.NET C# WPF)
- Microsoft® Windows™ Communication Foundation (.NET WCF) (for Network Interfaces)
- Google® high performance Remote Procedure Call (gRPC) (for Network Interfaces)
Design to process latency and real-time critical Data by using one of the following Concepts:
- Running real-time critical Tasks only in Hardware
- Using a self-contained real-time Microcontroller (MCU) together with Embedded Linux
- Running a real-time OS (RTOS) on a Hypervisor (Arm®v8-A) simultaneously with Embedded Linux
- Writing a Linux Kernel Mode Application (Driver) for pseudo real-time critical Tasks
- Writing a Windows™ Kernel Mode Application (Driver) for pseudo real-time critical Tasks
- Writing a Linux/Windows™ Service for pseudo real-time critical Tasks
Some Tools that can be used:
High-level Experience in Hardware and Software with the following Arm®-based Microcontrollers
Experience in Software with the following Arm®-based Microcontrollers
High-level Experience with NarrowBand-IoT (LTE-NB1) 4G/LTE-based cellular Radio in all Fields