# Transforming Group Codes in Mealy Finite State Machines with Composite State Codes
## 5 Example of Synthesis of Mealy FSM \(U_{3}\)
 \tag{24}\]  
In these systems, variables \(F_{h}^{k}\) are product terms created from the lines, \(h\), of tables representing blocks LUTer1-LUTerKC. We hope there is a transparent connection between SBFs (23) and (24) and Tables 2-4. **Step 9. ** To obtain the final values of both the IMFs and FSM outputs, it is necessary to create a table for the function assembler. This is a table for the block \(LUTerY\tau\). The table contains \(R_{CC}+N\) rows. This table provides information about the disjunctions of PBFs. Using this information, the final values of the FSM outputs and IMFs are obtained. There are the following columns in this table: \(f_{i}\), \(1\), \(\ldots\), \(KC\). The row number \(i\) includes the function \(f_{i}\in D\cup Y\). The column number \(k\) corresponds to the partial function \(f_{i}^{k}\in D^{k}\cup Y^{k}\). If the function \(f_{i}\in D\cup Y\) is generated by the block \(LUTerk\), then there is a value of \(1\) at the intersection of the column \(k\) and row \(i\). Otherwise, the symbol \(0\) is written at this intersection. In the discussed case, the block \(LUTerY\tau\) is represented by Table 5.  
**Step 10. ** Using Table 5 allows us to obtain a system of disjunctions representing functions \(f_{i}\in D\cup Y\). In the discussed case, some IMFs are represented by SBF (25), and some outputs are represented by SBF (26):  
\[D_{1}=D_{1}^{1}\lor D_{1}^{2}\lor D_{1}^{3};\quad\ldots\ ;\quad D_{4}=D_{4}^{1} \lor D_{4}^{2}\lor D_{4}^{3}; \tag{25}\]  
\[y_{1}=y_{1}^{1}\lor y_{1}^{2}\lor y_{1}^{3};\quad\ldots\ ;\quad y_{7}=y_{7}^{1} \lor y_{7}^{2}\lor y_{7}^{3};\quad y_{8}=y_{8}^{3} \tag{26}\]  
Obviously, using a similar approach, we can obtain the SOPs of all the functions from SBFs (19) and (20). **Step 11. ** To construct SBF (21), it is necessary to create a table for the block \(LUTerOH\). This table includes the columns \(G^{k}\), \(CG(G^{k})\), \(OCG(G^{k})\), \(\tau_{0}\) and \(k\). In the discussed case, the code transformer is represented by Table 6.  
The following SBF is derived from Table 6:  
\[g_{1}=\tau_{1}\tau_{2};\quad g_{2}=\tau_{2};\quad g_{3}=\tau_{1}. \tag{27}\]  
As follows from SBF (27), there is only a single LUT in the circuit of \(LUTerOH\). The variables \(g_{2}\) and \(g_{3}\) are exactly the same as group variables \(\tau_{2}\) and \(\tau_{1}\), respectively. \begin{table}
\begin{tabular}{c c c c c c} \hline \hline \(\mathbf{G^{k}}\) & \(\mathbf{CG(G^{k})}\) & \(\mathbf{OCG(G^{k})}\) & \(\mathbf{\tau_{0}}\) & \(\mathbf{k}\) \\ \hline \(G^{1}\) & 00 & 100 & \(g_{1}\) & 1 \\ \hline \(G^{2}\) & 01 & 010 & \(g_{2}\) & 2 \\ \hline \(G^{3}\) & 10 & 001 &  
**Step 12. ** To implement the FPGA-based circuit, it is necessary to apply some industrial CAD tools. These tools are necessary to execute the technology mapping [3,35]. The most popular tools are Vivado [36] and Quartus [37]. We do not discuss this step for our example. To analyse the efficiency of the proposed approach compared to some other known methods, we conducted a lot of experiments. We compared the characteristics of \(U_{3}\)-based FSMs with the characteristics of their counterparts based on maximum binary state codes, one-hot state codes and composite state codes. In the next section, we show the results of our experiments and their analysis.