HW/SW Co-Design


Modern embedded systems consist of software and dedicated hardware components that interact with each other in order to fulfill their tasks. During the development of such heterogeneous systems, both hardware and software have to be designed jointly, resulting in the discipline of hardware/software co-design. This joint design of hardware and software underlies, however, many different design constraints that are often contradicting (e.g., performance or costs) and thus have to be traded carefully against each other.

This seminar covers areas that range from the basic properties of such heterogeneous HW/SW systems to the challenges during their design, realization and operation.


Topics covered by this seminar include amonst others:

  • Design methodologies
    • System-level design (e.g., based on SystemC)
    • Automaton-based system design (e.g., based on MATLAB StateFlow)
    • Formal design processes (e.g., V-model, Gajski's Y-chart, ...)

  • Technologies
    • Integrated hardware and software systems (e.g., based on FPGAs)
    • Bus arbitration techniques
    • Parallelization approaches
    • Reconfigurable embedded systems

  • Real-time systems
    • Real-time scheduling
    • Worst-Case Execution Time analysis

  • Optimization approaches
    • Hardware/software partitioning
    • Optimization heuristics (e.g., evolutionary algorithms, greedy approaches)
    • Ideal optimization approaches (e.g., integer-linear programming)

  • Verification and simulation
    • Model checking
    • Response-time analysis
    • System-level simulation (e.g., based on SystemC, Simulink, ...)
    • Hardware simulation (e.g., based on ModelSim, ...)