Window Multicasting - 2022.2 English

AI Engine Kernel and Graph Programming Guide (UG1079)

Document ID
UG1079
Release Date
2022-10-19
Version
2022.2 English

The aiecompiler is not limited to a one to one connection of windows. In certain circumstances the same output window might be used by multiple other kernels to perform various tasks. You can connect a producer to as many consumers that are needed. The aiecompiler will automatically infer a MM2S DMA to read the output window and as many S2MM DMAs as there are consumers to write to their respective input windows.

private:
  adf::kernel mk;
  adf::kernel tk0,tk1,tk2,tk3;
...
connect < window<128>    > net0 ( mk.out[0] , tk0.in[0] );
connect < window<128,32> > net1 ( mk.out[0] , tk1.in[0] );
connect < window<128,64> > net2 ( mk.out[0] , tk2.in[0] );
connect < window<128>    > net3 ( mk.out[0] , tk3.in[0] );

All the takers are served at the same time because the output window of the maker is read only once. The slight delay variation is only due to the different AXI4-Stream path taken to route from the maker to the various takers in the AI Engine array.