Given, you have a (distributed) real-time system and you want to know about worst-case (end-to-end) timing behavior, then you can use pyCPA to obtain these bounds.
You provide your architecture in the form of resources such as busses and CPUs and the corresponding scheduling policies. In a second step, you define your task-graph which is a specification of task-communication (precedence relations) and tasks' properties (best/worst-case execution times, activation patterns).
pyCPA will then calculate the following metrics:
- worst-case response times (wcrt) of tasks
- end-to-end timing of task chains
- backlog of task activations (maximum buffer sizes)
- output event models of dependent tasks
pyCPA is a pragmatic Python implementation of Compositional Performance Analysis (aka the SymTA/S approach provided by Symtavision) used for research in worst-case timing analysis. Unlike the commercial SymTA/S tool, pyCPA is not intended for commercial-grade use and does not guarantee correctness of the implementation.
The aim of pyCPA is also to provide an analysis core that can be easily extended (e.g. schedulers, activation patterns, etc.).
- Philip Axer (TU Braunschweig, NXP)
- Jonas Diemer (TU Braunschweig, Symtavision)
- Daniel Thiele (TU Braunschweig)
- Johannes Schlatow (TU Braunschweig)
- Website: http://pycpa.readthedocs.org
- Code: bitbucket repository
Continuous release and improvement of the core.