PACKAGE exo5 PUBLIC DATA my_data END my_data; THREAD a_thread FEATURES input : IN DATA PORT my_data; output : OUT DATA PORT my_data; PROPERTIES Period => 100 ms; Deadline => 100 ms; Dispatch_Protocol => Periodic; END a_thread; PROCESS my_source FEATURES input1 : IN DATA PORT my_data; input2 : IN DATA PORT my_data; input3 : IN DATA PORT my_data; output : OUT DATA PORT my_data; END my_source; PROCESS my_sink FEATURES input1 : IN DATA PORT my_data; input2 : IN DATA PORT my_data; output : OUT DATA PORT my_data; END my_sink; PROCESSOR cpu PROPERTIES Scheduling_Protocol=>HPF; END cpu; SYSTEM dataflow END dataflow; PROCESS IMPLEMENTATION my_source.impl SUBCOMPONENTS T1 : THREAD a_thread { Compute_Execution_Time => 3 ms .. 20 ms; Priority => 10;}; T2 : THREAD a_thread { Compute_Execution_Time => 3 ms .. 20 ms; Priority => 20; }; T3 : THREAD a_thread { Compute_Execution_Time => 3 ms .. 20 ms; Priority => 30;}; T4 : THREAD a_thread { Compute_Execution_Time => 3 ms .. 10 ms; Priority => 40; }; CONNECTIONS C0 : PORT input1 -> T1.input; C1 : PORT input2 -> T2.input; C2 : PORT input3 -> T3.input; C3 : PORT T1.output -> T4.input; C4 : PORT T2.output -> T4.input; C5 : PORT T3.output -> T4.input; C6 : PORT T4.output -> output; PROPERTIES Timing => immediate applies to C0, C1, C2, C3, C4, C5, C6; END my_source.impl; PROCESS IMPLEMENTATION my_sink.impl SUBCOMPONENTS T7 : THREAD a_thread { Compute_Execution_Time => 3 ms .. 40 ms; Priority => 30; Dispatch_Offset => 70; }; T6 : THREAD a_thread { Compute_Execution_Time => 3 ms .. 50 ms; Priority => 20; Dispatch_Offset => 70; }; T5 : THREAD a_thread { Compute_Execution_Time => 3 ms .. 10 ms; Priority => 10; Dispatch_Offset => 70; }; CONNECTIONS C0 : PORT input1 -> T5.input; C1 : PORT input2 -> T6.input; C2 : PORT T5.output -> T6.input; C3 : PORT T6.output -> T7.input; C4 : PORT T7.output -> output; PROPERTIES Timing => immediate applies to C0, C1, C2, C3, C4; END my_sink.impl; SYSTEM IMPLEMENTATION dataflow.impl SUBCOMPONENTS process1 : PROCESS my_source.impl; process2 : PROCESS my_sink.impl; my_platform1 : PROCESSOR cpu; my_platform2 : PROCESSOR cpu; PROPERTIES Actual_Processor_Binding => ( reference(my_platform1) ) applies to process1; Actual_Processor_Binding => ( reference(my_platform2) ) applies to process2; END dataflow.impl; END exo5;