Documentation Dataflow Analysis

The work bench supports the following operations on dataflow models.

  • Repetition Vector – Determines the repetition vector of a multi-rate dataflow graph;
  • Check Deadlock – Checks if the graph deadlocks or not;
  • Throughput – Computes the maximum throughput of the graph. The result is expressed in the number of iterations per time unit. For a single-rate graph this is equal to the number of firings per time unit for each of the actors;
  • Latency – Computes the latency of the graph w.r.t. a given period μ, which needs to be provided and needs to be at least the reciprocal of the maximum throughput. The latency is reported as two matrices. One that provides the latency for every combination of input and output, and one that provides the latency for the initial state for every combination of an output and an initial token in the graph.
  • Convert to Single-Rate – Converts a multi-rate graph to a single-rate graph;
  • State-Space Matrices – Computes the max-plus state-space representation of the dataflow graph;
  • Make State-Matrix Model – Determines the max-plus state matrix that expresses the relation between the time stamps of the initial tokens between iterations of the dataflow graph. The result is created as a new (scratch) model;
  • Make State-Space Matrices Model – Determines the state-space representation in the form of a new max-plus model;
  • Gantt Chart – Create a Gantt chart of the dataflow graph for a given number of iterations, initial state and inputs. The number of iterations is mandatory, initial state and input signals are optional. If no initial state is provided, it is assumed that all initial tokens are available at time 0. The input traces can, optionally, be specified using one of the following methods. First, they can be specified explicitly as, for instance, i1=[-inf,0],i2=[-inf,-inf] Names can be omitted, in which case they will be mapped to the graph’s inputs in order of definition of the inputs. Then the specification looks like this: [-inf,0],[-inf,-inf] Assignments of the following form are also allowed: i=i1 if i1 is an event sequence defined in the model and i is an input of the model.