Perhaps using drag and drop under IP-XACT/Eclipse, we generate a mixture of our components:
form_product [ fourphase; tlm1; holder8 ]
A fragment of the output code:
if (reset) state = 215; else switch(state) { case 215: //4P_state_0/PC_4P TLM1_state_0/PC_TLM1 idle/call // 634,4P_state_1/PC_4P Ack TLM1_state_1/PC_TLM1 idle/call DH : Ok E=0 A=0 Rank=-10 if ((DH==live)&&(Ack==true)&&1) { state = 634;} break; // 874,4P_state_1/PC_4P Ack TLM1_state_1/PC_TLM1 active/call DH : Ok E=0 A=0 Rank=-19 if ((DH==live)&&(call==active)&&(Ack==true)&&1) { state = 874;} break; // 646,4P_state_1/PC_4P TLM1_state_1/PC_TLM1 idle/call DH : Ok E=0 A=0 Rank=-1 if ((DH==live)&&1) { state = 646;} break; ... case 646: //4P_state_1/PC_4P TLM1_state_1/PC_TLM1 idle/call DH // 826,4P_state_1/PC_4P Ack TLM1_state_2/PC_TLM1 active/call DH : Ok E=0 A=0 Rank=-14 if ((call==active)&&(Ack==true)&&1) { state = 826;} break; // 838,4P_state_1/PC_4P TLM1_state_2/PC_TLM1 active/call DH : Ok E=0 A=0 Rank=-5 if ((call==active)&&1) { state = 838;} break; // 634,4P_state_1/PC_4P Ack TLM1_state_1/PC_TLM1 idle/call DH : Ok E=0 A=0 Rank=-9 if ((Ack==true)&&1) { state = 634;} break; // 874,4P_state_1/PC_4P Ack TLM1_state_1/PC_TLM1 active/call DH : Ok E=0 A=0 Rank=-18 if ((call==active)&&(Ack==true)&&1) { state = 874;} break; // 886,4P_state_1/PC_4P TLM1_state_1/PC_TLM1 active/call DH : Ok E=0 A=0 Rank=-9 if ((call==active)&&1) { state = 886;} break;