You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
CMSIS-DSP/ComputeGraph/examples/example10/README.md

69 lines
1.5 KiB
Markdown

# Example 10
Please refer to the [simple example](../simple/README.md) to have an overview of how to define a graph and it nodes and how to generate the C++ code for the static scheduler. This document is only explaining additional details
This example is implementing a [dynamic / asynchronous mode](../../Async.md).
It is enabled in `graph.py` with:
`conf.asynchronous = True`
There is an option to increase the FIFO size compared to their synchronous values. To double the value (increase by `100%`) we write:
`conf.FIFOIncrease = 100`
The graph implemented in this example is:
![graph10](docassets/graph10.png)
There is a global iteration count corresponding to one execution of the schedule.
The odd source is generating a value only when the count is odd.
The even source is generating a value only when the count is even.
The processing is adding its inputs. If no data is available on an input, 0 is used.
In case of FIFO overflow or underflow, any node will skip its execution.
All nodes are generating or consuming one sample but the FIFOs have a size of 2 because of the 100% increase requested in the configuration settings.
Thus in this example :
* A sample is not always generated on an edge
* A sample is not always available on an edge
The dataflow on each edge is thus not static and vary between iterations of the schedule
## Expected outputs
```
Schedule length = 9
Memory usage 34 bytes
```
```
Start
0
0
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
```