module APPLICATION (TYPES, SIZE, CONFIGURATION) is -- application with two main tasks, each forking both 2*N_b bitstream subtasks -- and N_v+1 vector substasks (where N_b is the number of processors with -- bitstream extension, and N_v is the number of processors with vector -- extension) process EXECUTE [ST, MSG: any] (id: Pid, j: Job_Desc, in out s: Job_Desc_Stack) is case j.pc of PC in DONT_CARE_1_1 -> MASTER [ST, MSG] (DONT_CARE, DONT_CARE_1_1, BITSTREAM_1, BITSTREAM, Int (2 * NB_BITSTREAM_PROCESSORS), DONT_CARE_1_2, ID, !?S) | DONT_CARE_1_2 -> MASTER [ST, MSG] (DONT_CARE, DONT_CARE_1_2, VECTOR_1, VECTOR, Int (NB_VECTOR_PROCESSORS + 1), DONT_CARE_1_3, ID, !?S) | DONT_CARE_1_3 -> LEAF [MSG] (DONT_CARE, DONT_CARE_1_3, ID) | DONT_CARE_2_1 -> MASTER [ST, MSG] (DONT_CARE, DONT_CARE_2_1, BITSTREAM_2, BITSTREAM, Int (2 * NB_BITSTREAM_PROCESSORS), DONT_CARE_2_2, ID, !?S) | DONT_CARE_2_2 -> MASTER [ST, MSG] (DONT_CARE, DONT_CARE_2_2, VECTOR_2, VECTOR, Int (NB_VECTOR_PROCESSORS + 1), DONT_CARE_2_3, ID, !?S) | DONT_CARE_2_3 -> LEAF [MSG] (DONT_CARE, DONT_CARE_2_3, ID) | BITSTREAM_1 -> SLAVE [MSG] (BITSTREAM, BITSTREAM_1, ID, j.index) | BITSTREAM_2 -> SLAVE [MSG] (BITSTREAM, BITSTREAM_2, ID, j.index) | VECTOR_1 -> SLAVE [MSG] (VECTOR, VECTOR_1, ID, j.index) | VECTOR_2 -> SLAVE [MSG] (VECTOR, VECTOR_2, ID, j.index) | any -> null -- to avoid a warning from lnt2lotos end case end process process HOST_APPLI [HOST: any] is HOST (HOST_JOB (DONT_CARE_1_1, DONT_CARE)); HOST (HOST_JOB (DONT_CARE_2_1, DONT_CARE)); stop end process end module