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;