Next Article in Journal
Presurgical Orthopedic Interventions in Cleft Lip and Palate: A Scoping Review of Current Approaches and Evidence Distribution
Previous Article in Journal
AI-Based Automated Scoring Layer Using Large Language Models and Semantic Analysis
Previous Article in Special Issue
A Secure Authentication Scheme for Hierarchical Federated Learning with Anomaly Detection in IoT-Based Smart Agriculture
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Reducing LUT Counts in Moore FSMs with Twofold State Assignment

by
Alexander Barkalov
1,*,
Larysa Titarenko
1,2 and
Kazimierz Krzywicki
3,*
1
Institute of Metrology, Electronics and Computer Science, University of Zielona Gora, ul. Licealna 9, 65-417 Zielona Gora, Poland
2
Department of Infocommunication Engineering, Faculty of Infocommunications, Kharkiv National University of Radio Electronics, Nauky Avenue 14, 61166 Kharkiv, Ukraine
3
Department of Technology, The Jacob of Paradies University, ul. Fryderyka Chopina 52/b.7, 66-400 Gorzow Wielkopolski, Poland
*
Authors to whom correspondence should be addressed.
Appl. Sci. 2026, 16(7), 3540; https://doi.org/10.3390/app16073540
Submission received: 1 March 2026 / Revised: 23 March 2026 / Accepted: 2 April 2026 / Published: 4 April 2026

Abstract

In this paper, we propose a new synthesis method for LUT-based Moore finite state machines (FSMs) with twofold state assignment (TSA). The method introduces an additional core of partial input memory functions (IMFs), resulting in an architecture with two IMF cores. The first core is based on structural decomposition using additional partial state variables, whereas the second uses maximum binary state codes. Both cores are implemented as single-level circuits. We formulate the conditions under which the proposed method can be applied and show that it improves both the area and timing characteristics of the resulting FSM circuits. The method exploits pseudoequivalent state classes to reduce the number of literals in sum-of-products describing partial IMFs. The developed FSM architecture is organized into three logic stages. At the first stage, two dedicated blocks generate partial IMFs. At the next stage, these intermediate functions are merged and used to form the maximum binary state code. The final stage produces both the output signals and the partial state encoding. The proposed method is illustrated by a synthesis example and validated using standard benchmark FSMs. The obtained results indicate that the method is particularly suitable for larger and more complex Moore FSM implementations.

1. Introduction

Modern digital systems include many and various sequential blocks [1]. Very often, these blocks are used as control units [2,3,4,5,6,7]. Many other examples could be added [8,9,10,11,12,13,14,15,16,17]. For example, efficient digital control is very important in advanced energy systems [18]. The behavior of sequential blocks can be described using the Moore finite state machine (FSM) model [19,20]. When an FSM is used as a control unit, the quality of its implementation strongly affects the quality of the overall system. In this paper, we propose a method for optimizing spatial characteristics of Moore FSMs [21,22] implemented using field-programmable gate arrays (FPGAs) [23,24].
Our choice is supported by the fact that FPGAs are the most popular modern tools for implementing digital systems [23,25]. Leading logic design experts predict that FPGAs will remain in use for at least the next three decades [26]. In this article, we discuss a case where logic circuits of Moore FSMs are implemented with look-up table (LUT) elements, programmable flip-flops, dedicated multiplexers, programmable interconnections, and a synchronization tree.
A LUT is a single-output logic element with S L inputs [24]. It contains SRAM cells to keep a truth table of an arbitrary Boolean function with up to S L arguments [22,27]. A key feature of a LUT is its very small number of inputs (typically about six) [28,29,30]. This necessitates the use of functional decomposition (FD) methods in LUT-based design. These methods transform initial systems of Boolean functions (SBFs) into compositions of partial functions. As a result, FSM implementations often become multi-level circuits with highly complex interconnection structures [1].
Among the key challenges in LUT-oriented FSM synthesis is the reduction of the hardware resources required for circuit implementation, in particular the chip area occupied by the resulting controller [31,32]. This issue is closely related to power efficiency, since smaller implementations are generally associated with lower energy demand [33]. Such optimization is especially relevant in embedded and autonomous applications, where both silicon resources and energy budgets are limited [34]. In this work, we focus on a synthesis method that decreases the implementation cost of Moore FSMs while preserving the clock-cycle time. This objective is important because aggressive area optimization often causes noticeable performance degradation [35].
For LUT-based FSM circuits, the implementation cost is influenced not only by the number of LUTs, but also by the organization of signal routing between them. Hence, area reduction should be considered together with interconnection optimization. As pointed out in [27], the routing structure has a strong impact on the quality of the final circuit, since signal propagation through interconnects frequently contributes more to delay than the logic itself [36,37]. In addition, routing resources may be responsible for a dominant share of total energy usage, reaching about 70% in some cases [37]. For this reason, a synthesis method that simultaneously lowers LUT demand and simplifies routing can improve both energy efficiency and operating speed.
As shown in [25], the value S L = 6 is optimal. It provides the best trade-off between the occupied chip area, the performance, and the consumed energy of such element. Therefore, this value is unlikely to increase in the near future. But modern FPGA-based projects are becoming more and more complex [16,38]. This requires the permanent development of new, more efficient, logic design methods aimed at improving the basic characteristics of LUT-based FSM circuits.
In this paper, we propose a novel design method aimed at reducing LUT counts in circuits of LUT-based Moore FSMs with twofold state assignment [1]. The method exploits the presence of pseudoequivalent states, which is a characteristic feature of Moore FSMs. Its main idea is to use two cores of partial input memory functions (IMFs). One core contains partial Boolean functions (PBFs) that depend on state variables and FSM inputs, whereas the second core is based on structural decomposition with partial state codes. The experimental results show that the proposed double-core architecture requires fewer LUTs than architectures based solely on twofold state assignment, while maintaining the maximum operating frequency.
The rest of the paper is organized as follows. Section 2 includes necessary background information. Section 3 is devoted to the discussion of related works. The main ideas of the proposed method are shown in Section 4. Section 5 contains an example of FSM synthesis using the proposed method. Section 6 includes the presentation and analysis of results of conducted experiments. A brief conclusion sums up the results obtained in the paper.

2. FPGA-Based Design of Moore FSMs

Among other internal resources, modern FPGAs include configurable logic blocks (CLBs) and a matrix of programmable interconnections [24,28,29,39]. To design an FSM circuit, a designer may use CLBs including such internal resources as LUTs, dedicated multiplexers, and programmable flip-flops. The LUT output is permanently connected with the input of a flip-flop. Using multiplexers allows the CLB output to be made either combinational (the output of the LUT) or registered (the output of the flip-flop). The flip-flops are combined into a state code register of Moore FSM [19].
As noted above, the main feature of a LUT is its limited number of inputs, S L . In modern FPGAs, S L does not exceed 6 [24,28,29,39]. Therefore, functional decomposition methods must be used for Boolean functions that depend on at least 1 + S L arguments [22]. Using FD-based methods results in creating multi-level FSM circuits with complex systems of “spaghetti-type” interconnections [1].
The abstract Moore FSM is represented by a vector S = < A , X , Y , δ , λ , a 1 > [19], where A = { a 1 , , a M } is a set of internal states, X = { x 1 , , x L } is a set of FSM inputs, Y = { y 1 , , y N } is a set of outputs, δ is a transition function, λ is an output function, and a 1 A is an initial state. All these sets are finite. A Moore FSM can be represented using a variety of tools [40]. In this paper, we use the apparatus of state transition tables (STTs) [19].
An STT can be viewed as a tabular representation of the corresponding state-transition graph. Each row of an STT represents a single interstate transition. An STT has the following columns [19]: a m (the current state), a s (the next state), X h (the input signal determining the transition a m , a s ), and h (the transition number, where h { 1 , , H } ). The input signal X h is represented by a conjunction of inputs (or their complements) determining a particular transition. The collection of outputs Y q Y ( q Q = { 1 , , Q } ) generated in state a m A is shown in the current-state column ( a m ).
To design an FSM circuit, a designer should execute three preliminary steps [19]: 1) the state assignment; 2) the construction of a direct structure table (DST); 3) the derivation of SBFs representing the FSM circuit.
The state assignment is reduced to encoding each state a m A by a binary code K ( a m ) . One of the most popular encoding schemes is the maximum binary code (MBC) [41,42,43,44]. Such codes are created using R A state variables. The value of R A is determined as
R A = l o g 2 M .
To transform an STT into a DST, it is necessary to determine the sets of state variables T = { T 1 , , T R A } and input memory functions (IMFs) D = { D 1 , , D R A } . The DST consists of all columns of the STT and the additional columns K ( a m ) , K ( a s ) , and D h . In column D h , the symbol D r is written if T r = 1 ( r { 1 , , R A } ) in code K ( a s ) . State codes are stored in a state register (RG). This register consists of R A flip-flops with common synchronization (Clock) and reset (Start) inputs. In FPGA-based design, D flip-flops are used in LUT-based FSMs [1]. Input memory functions D r D may change the state code stored in RG.
The DST is a base for deriving the following SBFs:
D = D ( T , X ) ;
Y = Y ( T ) .
SBFs (2) and (3) are used for designing a logic circuit of a Moore FSM. In the simplest case, this circuit includes two combinational blocks and the state register [45]. One block generates IMFs, another block generates FSM outputs. If LUTs are used for implementing the logic circuits of these blocks, then the blocks are named L U T e r D and L U T e r Y , correspondingly [1]. In the case of LUT-based design, the state register is distributed among the CLBs of L U T e r D . So, the state register is hidden.
The model of Moore FSMs possesses two important properties [46]. First of all, the set of states includes classes of pseudoequivalent states (PESs). The pseudoequivalent states have the same systems of interstate transitions but different collections of outputs. The second property follows from (3): the FSM outputs do not directly depend on the FSM inputs. The first property allows for minimization of the number of literals in sum-of-products (SOP) representing SBF (2). The second property allows for minimization of the number of literals in the SOP representing SBF (3). Using these properties may result in reducing the number of LUTs used and their levels in the circuits of blocks L U T e r D and L U T e r Y .

3. Related Works

At the technology-mapping stage, the designer must account for several competing implementation objectives [47]. For LUT-based FSM circuits, these objectives mainly concern the silicon area, achievable clock frequency, and power consumption of the final design [1]. In the present work, we concentrate on reducing the hardware overhead in Moore FSM implementations, with particular emphasis on lowering the number of LUTs and limiting inter-CLB routing. These two factors have a major influence on the implementation cost of LUT-based circuits [1]. In addition, a reduction in area-related overhead may also lead to lower power dissipation [35].
Let N L ( f i ) be the number of literals [40] in a SOP of some function f i D Y . This value influences the number of levels in LUT-based circuits. Let the following condition hold for at least a single function f i D Y :
N L ( f i ) S L .
In this case, to implement an FSM circuit, the methods of FD are used [2,22,48]. The idea of FD is as follows. If condition (4) holds, then a function f i D Y is decomposed into smaller sub-functions containing fewer literals than the initial SOP. These sub-functions are partial Boolean functions (PBFs). The decomposition process ends when each PBF depends on no more than S L arguments. Functional decomposition is a powerful tool in FPGA-based technology mapping [48,49]; however, it usually leads to multi-level circuits.
In multi-level circuits, the same inputs x l X and state variables T r T may appear at more than one logic level [1]. This complicates the interconnection structure and results in circuits with spaghetti-type interconnections. To optimize the spatial characteristics of such a circuit, it is necessary to regularize the interconnections. As shown in [50], circuits with a regular interconnection structure consume less power than their counterparts with spaghetti-type interconnections.
To obtain a regular interconnection structure [1], methods of structural decomposition (SD) may be applied [1,50,51]. These methods are based on eliminating the direct dependence of functions f i D Y on inputs x l X . To eliminate the direct dependence, some additional functions are introduced. Each system of new functions determines a separate block L U T e r possessing unique sets of input and output variables. The classical SD methods are [19] the replacement of logical conditions and encoding of the collections of outputs. These methods are thoroughly discussed, for example, in [51].
In Moore FSMs, area reduction can be achieved by exploiting pseudoequivalent states [50]. Two states a m and a s are pseudoequivalent when δ ( a m , X h ) = δ ( a s , X h ) for h { 1 , , H } . This relation makes it possible to partition A into classes of pseudoequivalent states, Π A = { B 1 , , B I } . To optimize SBF (2), the state assignment should be chosen so that each class B i Π A is represented by the minimum possible number of generalized intervals in R A -dimensional Boolean space [1]. Such an assignment can be executed using, for example, the methods in [52]. However, minimizing SBF (3) requires a different assignment. Therefore, separate state variables are needed to optimize both systems simultaneously.
This can be achieved using the twofold state assignment (TSA) [50]. This approach can be used if the following condition holds for all FSM states:
L ( a m ) < S L .
In (5), the symbol L ( a m ) stands for the number of inputs determining transitions from the state a m A .
The term “twofold state assignment” means that each state a m A is encoded by two codes: the maximum binary code K ( a m ) and the partial state code P C ( a m ) . To create partial state codes, the additional variables τ r τ are used.
The TSA is based on finding a partition Π A T = { A 1 , A K } of the set A by the classes of compatible states. A class A k Π A T includes M k states. Each state is encoded by codes K ( a m ) and P C ( a m ) . The code P C ( a m ) includes R k bits, where
R k = log 2 ( M k + 1 ) .
To create partial codes of states a m A k , the variables τ r τ k = { τ 1 , , τ R k } are used. The variables τ r τ k are combined into a single set τ containing R T F elements. The variables τ r τ create extended state codes (ESCs) E C ( a m ) . The value of R T F is determined as
R T F = R 1 + R 2 + + R K .
Each class A k Π A T determines a block L U T e r k , generating the PBFs
D k = D k ( τ k , X k ) .
In (8), the symbol D k stands for a set of partial IMFs generated during the transitions from the states a m A k , and the symbol X k stands for a set of FSM inputs causing transitions from the states a m A k . These K blocks create the first level of the FSM circuit.
A block L U T e r D creates the final values of the IMFs:
D = D ( D 1 , , D K ) .
This block is a functional assembler forming the second logic level.
The third logic level includes the blocks LUTerY and L U T e r τ . The first of these generates FSM outputs represented by SBF (3). The second block transforms maximum binary codes into extended state codes. Therefore, block L U T e r Y τ implements SBF (3) and
τ = τ ( T ) .
The architecture of Moore FSM U 1 is shown in Figure 1.
The block L U T e r D includes R A master–slave flip-flops combined into the state register. The flip-flops of this register are distributed among the CLBs of L U T e r D . The pulses Start and Clock control the operation of RG.
A comparison of SBFs (2), (8) and (9) shows that the state variables T r T are replaced by partial state variables τ r τ . The partial IMFs D r k are used as inputs of the block L U T e r T . De facto, these functions are used as additional variables replacing inputs x l X .
Now, it is possible to create codes K ( a m ) , minimizing the numbers of literals in SBF (3). The partial codes P C ( a m ) are created in a way that minimizes the number of literals in SBFs (8). Now, different variables are used for optimizing SBFs (3) and (8). Therefore, the contradiction mentioned above is eliminated.
The greedy algorithm [50] creates the classes of compatible states. Let the symbol L k stand for the number of elements in the set X k . As shown in [1], the compatible states a m A k satisfy the condition
R k + L k S L .
As shown in [1], this approach allows for designing FSM circuits with better characteristics than their FD-based counterparts. This model cannot be applied if condition (5) is violated for at least a single state a m A .
In this paper, we discuss a case where condition (5) holds for all states of a particular Moore FSM. We propose a design method which allows the use of two cores of PBFs. One core is based on the twofold state assignment for some part of the FSM circuit. The second core generates partial IMFs depending on the state variables creating the maximum binary state codes. We denote these cores as SDC and MCC, respectively.

4. The Essence of the Proposed Method

The core MCC exists if there is a set A M C satisfying the following condition:
L M C + R M C S L .
In (12), the symbol L M C stands for the number of FSM inputs determining transitions from states a m A M C . The symbol R M C stands for the number of state variables representing states a m A M C . The following condition holds:
R M C R A .
The relation R M C < R A takes place if states a m A M C are encoded in such a way that some state variables T r T are insignificant. This can be achieved using the approach discussed in [52]. To satisfy (13), it is necessary to find the partition Π A = { B 1 , B I } , where B i Π A is a class of PES.
Obviously, the set A M C includes all states for which L ( a m ) = 0 . These states should be encoded in a way that minimizes the number of generalized intervals covering their codes. After that, the value of R M C can be determined. Next, states with L ( a m ) = 1 should be considered for inclusion in the set A M C . All states from a particular class B i Π A should be added together. If all such states from all classes have been included in the set A M C , then states with L ( a m ) = 2 should be considered. This process is terminated when no state can be included in the set A M C without violating condition (12).
It should be noted that it is possible to create J M C sets satisfying condition (12). Therefore, the MCC core may include several LUT blocks. However, the case discussed in this paper is limited to J M C = 1 . Other cases require additional research. In this paper, we only aim to show the main idea of the proposed method without considering all possible variants. The set A M C determines the sets X M C and T M C . The first set includes FSM inputs determining transitions from states a m A M C . The second set consists of state variables used for encoding states a m A M C , where A M C A .
Once the set A M C has been determined, the set A can be partitioned into two disjoint subsets: A M C and A S D ( A M C A S D = A ; | A S D A M C | = 0 ). Next, we should execute TSA for states a m A S D . As a result, the partition Π A S D = { A 1 , , A K } of the set A S D into K classes of compatible states is obtained. This can be achieved using the greedy algorithm discussed in [50]. The states a m A k are encoded by partial codes using elements of the set τ k τ = τ 1 τ 2 τ K . The set A S D determines the core SDC with the set of inputs X S D .
Next, it is necessary to create a table of the core MCC. This table includes the same columns as any DST. Using it, we can derive the following SBF:
D M C = D M C ( T M C , X M C ) .
After executing the partial state assignment, it is necessary to create tables for each block L U T e r k . Using these tables, it is possible to find SBF (8). Next, the partial IMFs should be combined into their final forms. This is achieved by a functional assembler generating the following SBF:
D = D ( D M C , D 1 , , D K ) .
Finally, we should find an SBF representing the dependence of variables τ r τ on the state variables T r T . SBF (10) gives this dependence.
Systems (8)–(10), (14) and (15) determine the architecture of Moore FSM U 2 with two cores of partial Boolean functions. The LUT-based architecture of FSM U 2 is shown in Figure 2.
The architecture (Figure 2) includes three levels of logic blocks. The first level includes two cores of PBFs. The core M C C is represented by L U T e r M C . This block generates partial IMFs (14). The LUTs of the core S D C generate partial IMFs (8). This core is represented by blocks L U T e r 1 , …, L U T e r K . Both cores are represented by single-level circuits. So, each PBF is generated by a single LUT.
The second logic level consists of the functional assembler L U T e r T . Its LUTs generate functions (15). Each function D r D is represented by N F ( D r ) partial functions. The corresponding circuit is single-level if the following condition holds for each IMF:
N F ( D r ) S L .
If (16) is violated, then this circuit includes at least two levels of LUTs. The block hides a distributed register RG. Therefore, the pulses Start and Clock enter the functional assembler.
The code transformer L U T e r τ Y represents the third logic level. Its LUTs generate SBFs (3) and (10). This block is single-level if the following condition holds:
R A S L .
In this paper, we propose a synthesis method for Moore FSM U 2 . We assume that an FSM is represented by its STT. If an FSM is represented using some other form, then it is necessary to transform this form into the equivalent STT. The proposed method includes the following steps:
1.
Finding the partition Π A = { B 1 , B I } .
2.
Dividing the set of states into the subsets A M C and A S D .
3.
Encoding of states a m A in a way that minimizes SBF (3).
4.
Splitting the set A S D into K classes of compatible states.
5.
Encoding of states a m A k by partial state codes P C ( a m ) .
6.
Constructing the table of L U T e r M C and finding SBF (14).
7.
Constructing the tables of blocks L U T e r k and finding SBFs (8).
8.
Constructing the table of the functional assembler and finding SBF (15).
9.
Constructing the table of L U T e r τ Y and finding SBFs (3) and (10).
10.
Implementing the FSM logic circuit using the internal resources of a particular chip.

5. Example of Synthesis

Let us discuss an example of synthesis of some FSM E1 using the model U 2 . The FSM is represented by Table 1. To implement the FSM circuit, we could use LUTs with S L = 5 .
Analysis of Table 1 shows that Moore FSM E1 is characterized by the sets A = { a 1 , , a 12 } , X = { x 1 , , x 8 } , and Y = { y 1 , , y 7 } . This gives the following values: M = 12, L = 8, and N = 7. This STT consists of H = 28 rows. Using (1) gives the number of bits in MBCs: R A = 4 . This value determines the sets T = { T 1 , , T 4 } and D = { D 1 , , D 4 } . Using Table 1 and the value of S L = 5 , we should divide the set A by two disjoint sets. We should start from finding the partition Π A = { B 1 , B I } . This can be achieved using the interstate transitions shown in Table 1.
Step 1. Using the definition of PESs [1], we can find the partition Π A with eight classes of PES: B 1 = { a 1 } , B 2 = { a 2 } , B 3 = { a 3 , a 4 } , B 4 = { a 5 , a 6 } , B 5 = { a 7 , a 8 } , B 6 = { a 9 } , B 7 = { a 10 , a 11 } , and B 8 = { a 12 } . Thus, there is I = 8 .
Step 2. We start this step by finding the set A M C . There is R A = 4 . The difference S L R A = 1 shows that the set A M C may include states with L ( a m ) = 0 and L ( a m ) = 1 . Table 1 does not include states with L ( a m ) = 0 . It includes 8 states with L ( a m ) = 1 . These states are candidates to be included into the set A M C . We start from the state a 1 . This gives the set A M C = { a 1 } and X M C = { x 1 } . Obviously, adding states from the class B 4 = { a 5 , a 6 } does not change the set X M C = { x 1 } .
The state a 1 is the initial FSM state [19]. So, its code should include only zeros: K ( a 1 ) = 0000 . Accordingly, this state is placed in the cell 0000 (Figure 3a). To reduce the value of R M C , we treat the assignment 0001 as insignificant. Therefore, the symbol “*” is placed in the corresponding cell. Thus, three state variables are sufficient to identify state a 1 , and the variable T 4 is insignificant.
The transitions from states a 5 , a 6 B 4 depend on input x 1 . So, we can include these states in the set A M C . This leads to the set A M C = { a 1 , a 5 , a 6 } . We should place these states in some generalized interval of 4-dimensional Boolean space with the insignificant variable T 4 . One of the possible variants is shown in Figure 3b.
There is T M C = { T 1 , T 2 , T 3 } . So, there is S L R M C = 2 . Thus, we can include in A M C some other states with L ( a m ) = 1 . Let us choose the class B 3 = { a 3 , a 4 } . Including these states leads to the set A M C = { a 1 , a 3 , a 4 , a 5 , a 6 } . The state codes for states a 3 , a 4 B 3 are shown in Figure 3c. Obviously, including states a 3 , a 4 B 3 in the set A M C does not change the set T M C . But now, there is the set X M C = { x 1 , x 2 } .
Analysis of Table 1 shows that it is not possible to include more states in the set A M C without violating (12). Thus, the set A M C has been determined. To obtain the set A S D , it is necessary to compute the set difference of A and A M C . Obviously, this difference yields A S D = { a 2 , a 7 , , a 12 } .
Step 3. The states a m A M C are encoded in a way that minimizes SBF (14). The codes of states a m A S D should be selected in a way that minimizes SBF (3). To achieve this, the FSM outputs should be represented by the minimum possible number of generalized intervals in R A -dimensional Boolean space. Obviously, to create the proper state codes it is necessary to use “free” state assignments. Using the approach from [52], the codes shown in Figure 4 are obtained.
Step 4. To find the partition Π A T = { A 1 , A K } , we can use the method discussed in [1]. The algorithm in [1] is based on the greedy algorithm proposed in [50]. This algorithm tries to include as many states as possible into each class of Π A T . The main rule of this method is the following: a state could be included into a particular class A k if it leads to a minimal increase in the number of elements in the set X k .
As follows from [1], there are the same transitions from all PESs a m B i , where B i Π A . So, in the case of Moore FSMs, all pseudoequivalent states a m B i should be placed into the same class A k Π A T .
In the discussed example, all classes of PES have been shown during the discussion of Step 1. Using greedy algorithm [50] gives the following partition of the set A S D : Π A T = { A 1 , A 2 } with K = 2. This partition includes the classes A 1 = { a 2 , a 7 , a 8 , a 10 , a 11 } and A 2 = { a 9 , a 12 } . So, the class A 1 Π A T includes classes of PES B 2 , B 5 , B 7 ; the class A 2 Π A T includes PESs from the classes B 6 , B 8 .
Step 5. In the discussed case, we can find that M 1 = 5 , M 2 = 2 . Using (7) gives the numbers of bits in partial state codes: R 1 = 3 , R 2 = 2 . These values determine the following sets: τ 1 = { τ 1 , τ 2 , τ 3 } , τ 2 = { τ 4 , τ 5 } . In turn, this gives the set τ = { τ 1 , , τ 5 } . The variables from the set τ 1 create partial state codes for states a m A 1 . The variables from the set τ 2 create partial state codes for states a m A 2 .
To eliminate some state variables from SOPs of functions (8), we propose placing codes P C ( a m ) , where a m B i and a m A k , into the same generalized interval of R k -dimensional Boolean space. This can be achieved using, for example, the approach discussed in [52]. Using this approach, we can create the partial state codes shown in the Karnaugh maps in Figure 5 and Figure 6. In these maps, the symbol “∉” in cell 000 is reserved for states a m A k .
As follows from Figure 5 and Figure 6, each class of PES is represented by a single generalized interval. Let us analyze the Karnaugh map (Figure 5). The state a 2 B 2 is represented by the interval 01* (the symbol “*” means that the corresponding state variable is insignificant). The states a 7 , a 8 B 5 are represented by the interval 10*. Finally, the states a 10 , a 11 B 7 are represented by the interval 11*. So, the state variable τ 3 is insignificant. Therefore, this variable is eliminated from the SOPs representing the circuit of L U T e r 1 . As a result, the number of LUTs in the circuit of L U T e r τ Y is reduced.
Step 6. Table of L U T e r M C has the following columns: a m (the current state belonging to the set A M C ), K ( a m ) , a s (state of transition), K ( a s ) , X h , D h , and h. There is no information about FSM outputs in the first column of this table. This information can be taken from the initial STT (Table 1).
In the discussed case, the table of the block L U T e r M C is constructed using information from rows 1, 2, and 5–12 of the STT (Table 1). The corresponding state codes are taken from Figure 4. In the discussed case, the block L U T e r M C is represented by Table 2.
In Table 2, the partial IMFs shown in column D h should have the superscript “0”. We did not show this superscript to simplify the table. The same is done for all other tables. The table of L U T e r M C is the basis for deriving (14). Using Table 2, we can derive the following sum-of-products:
D 1 0 = T 1 ¯ T 2 ¯ T 3 ¯ x 1 T 1 ¯ T 2 T 3 ¯ x 1 ¯ ; D 2 0 = T 1 ¯ T 2 ¯ T 3 ¯ x 1 T 1 ¯ T 2 ¯ T 3 ¯ x 2 ¯ T 1 ¯ T 2 T 3 ¯ x 1 ; D 3 0 = T 1 ¯ T 2 ¯ T 3 ¯ x 1 ¯ T 1 ¯ T 2 ¯ T 3 x 2 ; D 4 0 = T 1 ¯ T 2 ¯ T 3 ¯ x 1 T 1 ¯ T 2 ¯ T 3 x 2 T 1 ¯ T 2 T 3 ¯ .
Step 7. The tables of blocks L U T e r 1 L U T e r 2 have almost the same columns as Table 2. However, column K ( a s ) is replaced by column P C ( a s ) . To construct the table of L U T e r 1 (Table 3), we use rows 3, 4, 7–9, 13–18, and 22–25 of Table 1. The partial state codes are taken from Figure 5.
To construct the table of L U T e r 2 (Table 4), the rows 19–21 and 26–28 (Table 1) are used. The partial state codes are taken from Figure 6.
Using Table 3 and generalized intervals from the Karnaugh map (Figure 5), the following SBF is constructed:
D 1 1 = τ 1 τ 2 ¯ x 3 ¯ x 4 τ 1 τ 2 x 3 ¯ ; D 2 1 = τ 1 τ 2 ¯ x 3 τ 1 τ 2 x 3 ¯ ; D 3 1 = τ 1 ¯ τ 2 τ 1 τ 2 ¯ ; D 4 1 = τ 1 ¯ τ 2 x 3 ¯ τ 1 τ 2 ¯ x 3 τ 1 τ 2 ¯ x 4 .
Analysis of the SOPs in (19) shows that they do not include variable τ 3 . This result follows from the state assignment used for PESs.
Using Table 4 and generalized intervals from the Karnaugh map (Figure 6), the following SBF is constructed:
D 1 2 = τ 4 x 6 τ 5 x 7 τ 5 x 8 ; D 2 2 = τ 4 x 6 τ 4 x 7 ; D 3 2 = τ 4 x 6 ¯ x 7 τ 5 x 7 ; D 4 2 = τ 5 x 7 ¯ x 8 .
SBF (19) is the basis for constructing the circuit of block L U T e r 1 . In turn, SBF (20) is the basis for constructing the circuit of block L U T e r 2 . Obviously, a single LUT is sufficient to implement each SOP from systems (19) and (20).
Step 8. The functional assembler (block L U T e r T ) performs disjunctions of partial IMFs and produces the final values of the IMFs D r D . In the general case, this block is represented by a table with K + 2 columns. The first column contains the symbols D r D , other columns are marked by the numbers 0, 1, 2, … The column 0 corresponds to the block L U T e r M C . The intersections of rows and columns are marked with the signs “+” or “−”. If the IMF D r k A k is not equal to zero, then there is “+” on intersection of the row D r and the column k( k { 0 , 1 , , K } ). Otherwise, the sign “−” is used. Analysis of SBFs (18)–(20) shows that each block generates all partial IMFs. This leads to Table 5.
Table 5 is a base for creating the final values of IMFs represented by (15). The following SBF is derived from Table 5:
D 1 = D 1 0 D 1 1 D 1 2 ; D 2 = D 2 0 D 2 1 D 2 2 ; D 3 = D 3 0 D 3 1 D 3 2 ; D 4 = D 4 0 D 4 1 D 4 2 .
Step 9. The table of L U T e r τ Y shows the code-transformation rule. It has the following columns: a m , K ( a m ) , P C ( a m ) , τ m , and Y m . Column τ m contains the symbols of partial state variables equal to 1 in the third column of the table. Column Y m contains the symbols of FSM outputs generated in the state written in column a m . In the discussed case, Table 6 represents the block L U T e r τ Y .
In this table, the codes K ( a m ) are taken from the Karnaugh map (Figure 4). The partial state codes P C ( a m ) are taken from the maps shown in Figure 5 (class A 1 ) and Figure 6 (class A 2 ). The following SBFs are derived from Table 6:
τ 1 = A 7 A 8 A 10 A 11 = f 1 ( T 1 , , T 4 ) ; τ 2 = A 2 A 10 A 11 = f 2 ( T 1 , , T 4 ) ; τ 4 = A 9 = T 1 T 3 T 4 ; τ 5 = A 12 = T 1 T 3 T 4 ¯ .
y 1 = A 2 A 5 A 7 ; y 2 = A 3 A 12 = T 2 ¯ T 3 T 4 ¯ ; y 3 = A 2 A 7 A 9 = T 1 T 4 ; y 4 = A 4 A 8 A 9 = T 3 T 4 ; y 5 = A 3 A 11 = T 1 ¯ T 3 T 4 ¯ ; y 6 = A 6 = T 1 ¯ T 3 ¯ T 4 ; y 7 = A 5 A 10 = T 2 T 3 ¯ T 4 ¯ .
Analysis of SBF (22) shows that there is no need to generate state variable τ 3 . Thus, using PESs for partial state encoding eliminates about 20% of the LUTs used to generate partial state variables.
SBF (23) is optimized using generalized intervals covering state codes (Figure 4). As can be seen, almost all outputs depend on fewer than R A variables. In total, SBF (23) includes 20 literals. In the general case, it includes N R A literals. In the discussed case, N R A = 28. Each literal corresponds to an interconnection wire. Therefore, the adopted state-assignment method reduces the number of interconnections by 40%.
Step 10. To implement an FPGA-based FSM circuit, it is necessary to use some industrial package. In the case of chips produced by AMD Xilinx, we should use the CAD tool Vivado [43]. We do not show the outcome for our example. This is due to the fact that Vivado operates with LUTs with six inputs.

6. Experimental Results and Discussion

To investigate the characteristics of FSMs obtained by using the proposed method, we use standard benchmark FSMs described in [53]. This is a library including 53 benchmark Mealy FSMs. The benchmarks are parts of real projects. These benchmarks are often used by many researchers to compare the characteristics of FSMs produced by various design methods; some examples can be found in [48,54,55,56]. The state transition tables of the benchmark FSMs [53] are represented in the format KISS2. Our current paper is devoted to Moore FSMs. Therefore, the initial files were transformed to represent benchmark Moore FSMs. The transformation is based on a known approach [57]. The characteristics of the resulting Moore FSMs are represented in Table 7. The table includes the numbers of inputs, outputs, states, transitions, state variables ( R A ), and the total number of inputs and state variables ( L + R A ).
FPGA implementations of the considered Moore FSMs were obtained from VHDL descriptions generated on the basis of the original KISS2 files. The transformation from KISS2 specifications to VHDL models was carried out using our K2F CAD tool [50]. Synthesis and simulation were performed in the Active-HDL environment, whereas hardware implementation was completed in AMD Xilinx Vivado v2025.1 [43] (San Jose, CA, USA). The target device was the AMD Xilinx Virtex UltraScale+ FPGA xcvu29p-fsga2577-2L-e [24,30]. This device is built from six-input base LUTs, and each CLB (SLICE L) contains eight such elements. By combining them with dedicated multiplexers, the architecture supports super-LUT structures with seven, eight, or nine inputs. In particular, a seven-input super-LUT requires one F7 MUX, an eight-input super-LUT requires two F7 MUXes and one F8 MUX, whereas a nine-input super-LUT is formed using four F7 MUXes, two F8 MUXes, and one F9 MUX.

6.1. Experimental Results

As an initial point of reference, we evaluated the proposed approach against three state-assignment strategies available in Vivado, namely, auto, one-hot, and gray. These are general-purpose solutions applicable to arbitrary FSM implementations. For the benchmark set considered in this study, however, the variants obtained with Auto consistently exhibited the least favorable characteristics, and for this reason they are omitted from further discussion. The comparison is therefore presented in four separate tables: Table 8 for one-hot-based FSMs, Table 9 for gray-based FSMs, Table 10 for U 1 -based FSMs, and Table 11 for U 2 -based FSMs.
All four tables use the same set of eight performance indicators. The column “Benchmark” identifies the FSM under consideration. “LUTs” gives the number of base LUTs used in the implementation. “F7 MUX” and “F8 MUX” denote the numbers of multiplexers employed to construct 7-input and 8-input super-LUTs, respectively. “Registers” specifies the number of D flip-flops forming the state register. “Delay” represents the clock-cycle time in nanoseconds, whereas “Freq.” gives the corresponding maximum operating frequency in MHz. Finally, “Power” reports the total power consumption in watts. According to the obtained results, F9 MUX resources are not used for the benchmark circuits from [53]; consequently, no separate “F9 MUX” column is included.
As we found before [1], the decomposition should be executed only if the following condition is violated:
L + R A 2 S L .
If (24) holds, then each function from SBFs (2) and (3) is generated by a single-LUT circuit. Such FSMs belong to a group of simple FSMs. If condition (24) is violated but condition (5) holds, then it is necessary to use some decomposition approach. Such FSMs form a group of complex FSMs. If condition (5) is violated, then only functional decomposition can be used. Such FSMs are very complex. Analysis of Table 7 shows that it includes FSMs from all three groups: 6 benchmarks are very complex, 14 benchmarks are complex, and 33 benchmarks are simple.
The following benchmarks belong to the group of complex FSMs: ex1, kirkman, planet, planet1, pma, s1, s1488, s1494, s1a, s208, s298, styr, and tma. The group of very complex FSMs includes the benchmarks s420, s510, s820, s832, sand, and scf.
Let us explain how the columns of Table 10 and Table 11 are filled. Our goal is to create circuits with the minimum number of LUTs. If, for a particular simple one-hot-based FSM, the minimum LUT count is achieved, then we use the information from all columns of Table 8 to fill the columns of Table 10 and Table 11 (for this particular benchmark). Otherwise, information from Table 9 is used to fill the columns of Table 10 and Table 11. If some very complex one-hot-based FSM has the minimum value for the LUT count, then we use information from all columns of Table 8 to fill the columns of Table 10 and Table 11 (for this particular benchmark). Otherwise, for this benchmark, information from Table 9 is used to fill the columns of Table 10 and Table 11. For complex FSMs, the information is taken from Vivado reports. Let us point out that the values of maximum operating frequencies are calculated using values of cycle times available from Vivado reports.
Using Table 8, Table 9, Table 10 and Table 11, we created two tables for comparing the spatial (Table 12) and temporal (Table 13) characteristics of FSM circuits based on different architectures. These tables have the same structures. Their rows are marked by the name of the benchmark, the columns by the design method (One-hot, Gray, U 1 , and U 2 ). The row “Total” includes results of summation for numbers from corresponding columns. The results obtained for U 2 -based FSMs are taken as 100%. The row “Percentage” shows the percentage of summarized characteristics respective to the U 2 -based benchmarks.

6.2. Discussion

As follows from Table 12, the circuits of U 2 -based FSMs require fewer LUTs than their counterparts used for comparison. The gain in LUTs is the following: 1) 39.60% with respect to one-hot-based FSMs; 2) 30.13 % with respect to gray-based FSMs; and 3) 7.5% with respect to U 1 -based FSMs. An analysis of Table 12 shows that the gain is obtained only for complex FSMs. Obviously, the gain is connected to including the core of partial IMFs based on maximum binary codes. The second factor is the reduction in using PESs for organization in the first level of the FSM circuit.
As we can see from Table 13, the proposed approach does not deteriorate the temporal characteristics of the FSM circuits. Moreover, our method even improves the values of the maximum operating frequencies. As follows from Table 13, the proposed method leads to circuits with higher operating frequencies than for the other investigated methods. There is the following gains in frequency: 1) 9.92% with respect to one-hot-based FSMs; 2) 4.58% with respect to gray-based FSMs; and 3) 0.75% with respect to U 1 -based FSMs. As follows from Table 13, the proposed approach gives better results for FSMs where condition (24) is violated and condition (5) holds.
Obviously, the proposed method is suitable for implementing LUT-based circuits of complex FSMs. To check the influence of our approach on characteristics of complex FSMs, we created Table 14, which includes results of implementation only for complex FSMs. This table shows summarized values for four characteristics obtained from Vivado reports (the total numbers of LUTs, flip-flops, summarized frequency, and power consumption). For all these characteristics, we show the percentage of summarized characteristics with respect to the corresponding characteristics of the U 2 -based benchmarks.
As follows from Table 14, the proposed approach allows for production of LUT-based circuits with better spatial and temporal characteristics than for the other methods investigated. An analysis of Table 14 shows the following gains in the values of the LUT counts: 1) 57.9% with respect to one-hot-based FSMs; 2) 39.73% with respect to gray-based FSMs; and 3) 12.7% with respect to U 1 -based FSMs. Moreover, there is the following gains in frequency: 1) 26.06% with respect to one-hot-based FSMs; 2) 16.94% with respect to gray-based FSMs; and 3) 2.84% with respect to U 1 -based FSMs. The circuits based on the proposed approach consume more power. But this is connected with the fact that they are faster then their counterparts. Using Vivado, it is impossible to compare the values of power consumption for the same operating frequency.
So, three different approaches could be used for synthesis of FPGA-based Moore FSMs with twofold state assignment. To make the choice of the approach to be used, we worked out a method to choose which model is the best for some Moore FSM. The flowchart of this method is shown in Figure 7.
Let us explain this method. First of all, it is necessary to check that the method of twofold state assignment may be used. This checking is executed in the following way. The validity of condition (5) should be checked for each state a m A . The checking starts from the state a 1 (block 1). The condition (5) is checked in block 2. If the condition is violated (the output No from block 2), then twofold state assignment is impossible. So, a particular FSM should be synthesized using the methods of functional decomposition (block 3). So, the choice of the synthesis method is finished (the transition to the block End).
If the condition (5) holds for a particular state (the output Yes from block 2), then it is necessary to check the next FSM state. So, the value of m (the subscript of a state) is incremented (block 4). If some states are not checked (the output No from block 5), then the next state should be checked (the transition to block 2). If the condition (5) is valid for all states (the output Yes from block 5), then it is necessary to create the set A M C and to find the values of both R M C and L M C (block 6).
Next, we should check whether the MC-based core could be used for a particular FSM. This is determined by the condition (12). This condition is checked in block 7. If the condition (12) holds (the output Yes from block 7), then it is possible to use the model U 2 proposed in the current paper (block 8). Otherwise (the output No from block 7), we should use the model U 1 based on twofold state assignment (block 9). The outputs of both blocks 8 and 9 are connected with the block End. So, the choice is finished.
So, our approach allows for the improvement of both spatial and temporal characteristics of the LUT-based circuits of complex FSMs. Let us point out that the obtained values of gain are valid only for the benchmarks [58] and the device AMD Virtex UltraScale+ 56G PAM4 VCU129 FPGA Evaluation Kit (Virtex Ultrascale+ xcvu29p-fsga2577-2L-e) [24,30]. But the results of conducted experiments show that the proposed design method may improve both the spatial (the values of LUT count) and temporal (the maximum value of operating frequency) characteristics of complex FSMs.

7. Conclusions

One of the most important problems associated with FPGA-based FSM design is the problem of reducing the chip areas occupied by FSM circuits. In the case of LUT-based design, the best solution decreases the value of the LUT count. It is very important to find a solution with the minimum LUT count that does not significantly increase the value of the cycle time. To obtain a LUT-based circuit of complex FSMs, it is necessary to use various decomposition methods. One of these methods is twofold state assignment. It belongs to the methods of structural decomposition.
In this paper, we proposed a new architecture for a LUT-based Moore FSM circuit. The method is connected with the introduction of an additional core of partial input memory functions in the architecture based on twofold state assignment. This new core is based on maximum binary codes. A comparison with single-core Moore FSMs shows the following:
1.
Using the second core reduces the number of blocks based on partial state codes as well as the number of LUTs required for producing these codes.
2.
The proposed method does not increase the number of blocks generating the partial input memory functions.
As follows from the experimental part of the paper, using two cores of functions produces Moore FSM circuits that consume fewer LUTs compared with equivalent FSMs based on twofold state assignment. Moreover, instead of performance deterioration, the proposed method obtains circuits with higher values of maximum operating frequency. We think that, for LUT-based design, the proposed method may be used for improving the spatial and temporal characteristics of complex Moore FSMs. The main limitation of this work: the proposed method could be applied only in the case when the FSM states are encoded using twofold state assignment. This determines the future direction of our research. In the future, we are going to transform the proposed method to take into account the peculiarities of other known methods of state assignment.

Author Contributions

Conceptualization, A.B., L.T. and K.K.; methodology, A.B., L.T. and K.K.; software, A.B., L.T. and K.K.; validation, A.B., L.T. and K.K.; formal analysis, A.B., L.T. and K.K.; investigation, A.B., L.T. and K.K.; writing—original draft preparation, A.B., L.T. and K.K.; supervision, A.B. All authors have read and agreed to the published version of the manuscript.

Funding

This research received no external funding.

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

The data presented in this study are available in the article.

Conflicts of Interest

The authors declare no conflicts of interest.

Abbreviations

The following abbreviations are used in this manuscript:
CLBConfigurable logic block
DSTDirect structure table
FDFunctional decomposition
FPGAField-programmable gate array
FSMFinite state machine
IMFInput memory function
LUTLook-up table
MBCMaximum binary code
SBFSystem of Boolean functions
SDStructural decomposition
SOPSum-of-products
STTState transition table
TSATwofold state assignment

References

  1. Barkalov, A.; Titarenko, L.; Krzywicki, K. Logic Synthesis for FPGA-Based Mealy Finite State Machines: Structural Decomposition in Logic Design; Taylor & Francis Group; CRC Press: Boca Raton, FL, USA, 2024; p. 332. [Google Scholar] [CrossRef]
  2. Czerwinski, R.; Kania, D. Finite State Machine Logic Synthesis for Complex Programmable Logic Devices; Lecture Notes in Electrical Engineering; Springer: Berlin, Germany, 2013; Volume 231, p. 172. [Google Scholar] [CrossRef]
  3. Sklyarov, V.; Skliarova, I.; Barkalov, A.; Titarenko, L. Synthesis and Optimization of FPGA-Based Systems; Lecture Notes in Electrical Engineering; Springer International Publishing: Cham, Switzerland, 2014; Volume 294, p. 432. [Google Scholar] [CrossRef]
  4. Kubica, M.; Opara, A.; Kania, D. Logic Synthesis for FPGAs Based on Cutting of BDD. Microprocess. Microsyst. 2017, 52, 173–187. [Google Scholar] [CrossRef]
  5. Kubica, M.; Kania, D.; Kulisz, J. A Technology Mapping of FSMs Based on a Graph of Excitations and Outputs. IEEE Access 2019, 7, 16123–16131. [Google Scholar] [CrossRef]
  6. Opara, A.; Kubica, M.; Kania, D. Methods of Improving Time Efficiency of Decomposition Dedicated at FPGA Structures and Using BDD in the Process of Cyber-Physical Synthesis. IEEE Access 2019, 7, 20619–20631. [Google Scholar] [CrossRef]
  7. Kubica, M.; Kania, D. Area-oriented technology mapping for LUT-based logic blocks. Int. J. Appl. Math. Comput. Sci. 2017, 27, 207–222. [Google Scholar] [CrossRef]
  8. Brown, B.D.; Card, H.C. Stochastic neural computation. I. Computational elements. IEEE Trans. Comput. 2001, 50, 891–905. [Google Scholar] [CrossRef]
  9. Li, P.; Lilja, D.J.; Qian, W.; Riedel, M.D.; Bazargan, K. Logical Computation on Stochastic Bit Streams with Linear Finite-State Machines. IEEE Trans. Comput. 2014, 63, 1474–1486. [Google Scholar] [CrossRef]
  10. Ardakani, A.; Leduc-Primeau, F.; Onizawa, N.; Hanyu, T.; Gross, W.J. VLSI Implementation of Deep Neural Network Using Integral Stochastic Computing. IEEE Trans. Very Large Scale Integr. (VLSI) Syst. 2017, 25, 2688–2699. [Google Scholar] [CrossRef]
  11. Barkalov, O.; Titarenko, L.; Mazurkiewicz, M. Foundations of Embedded Systems; Studies in Systems, Decision and Control; Springer International Publishing: Cham, Switzerland, 2019; Volume 195, p. 167. [Google Scholar]
  12. Esper, K.; Wildermann, S.; Teich, J. Automatic Synthesis of FSMs for Enforcing Non-functional Requirements on MPSoCs Using Multi-objective Evolutionary Algorithms. ACM Trans. Des. Autom. Electron. Syst. 2023, 28, 98. [Google Scholar] [CrossRef]
  13. Ganewattha, C.; Khan, Z.; Lehtomaki, J. Hardware-accelerated Real-time Drift-awareness for Robust Deep Learning on Wireless RF Data. ACM Trans. Reconfig. Technol. Syst. 2023, 16, 19. [Google Scholar] [CrossRef]
  14. Jiang, P.; Yang, X.; Gagan, A. Combining SIMD and Many/Multi-core Parallelism for Finite-state machines with Enumerative Speculation. ACM Trans. Parallel Comput. 2020, 7, 15. [Google Scholar] [CrossRef]
  15. Hazzazi, M.; Budaraju, R.; Bassfar, Z.; Albakri, A.; Mishra, S. A Finite State Machine-Based Improved Cryptographic Technique. Mathematics 2023, 11, 2225. [Google Scholar] [CrossRef]
  16. Garcia-Vargas, I.; Senhadji-Navarro, R. A New Approach for Implementing Finite State Machines with Input Multiplexing. Electronics 2023, 12, 3763. [Google Scholar] [CrossRef]
  17. Trifan, M.; Ionescu, B.; Ionescu, D. A Combined Finite State Machine and PlantUML Approach to Machine Learning Applications. In Proceedings of the 2023 IEEE 17th International Symposium on Applied Computational Intelligence and Informatics (SACI), Timisoara, Romania, 23–26 May 2023; pp. 631–636. [Google Scholar] [CrossRef]
  18. Wu, X.; Wang, L.; Li, A.; Wu, G.; Hu, Z.; Fei, F.Y.; Mori, T. High Conversion Efficiency in Intrinsic High Power-Density Mg2Sn-GeTe Thermoelectric Generator. Adv. Sci. 2025, 12, e06997. [Google Scholar] [CrossRef]
  19. Baranov, S. Logic and System Design of Digital Systems; TUT Press: Tallinn, Estonia, 2008; p. 276. [Google Scholar]
  20. Minns, P.; Elliott, I. FSM-Based Digital Design Using Verilog HDL; John Wiley and Sons: Chichester, UK, 2008; p. 391. [Google Scholar]
  21. Rawski, M.; Łuba, T.; Jachna, Z.; Tomaszewicz, P. Design of Embedded Control Systems; Chapter The Influence of Functional Decomposition on Modern Digital Design Process; Springer: Boston, MA, USA, 2005; pp. 193–203. [Google Scholar]
  22. Scholl, C. Functional Decomposition with Application to FPGA Synthesis; Kluwer Academic Publishers: Boston, MA, USA, 2001. [Google Scholar]
  23. Boutros, A.; Betz, V. FPGA Architecture: Principles and Progression. IEEE Circuits Syst. Mag. 2021, 21, 4–29. [Google Scholar] [CrossRef]
  24. AMD Virtex UltraScale+ 56G PAM4 VCU129 FPGA Evaluation Kit. Available online: https://www.amd.com/en/products/adaptive-socs-and-fpgas/evaluation-boards/vcu129.html (accessed on 23 March 2026).
  25. Kuon, I.; Tessier, R.; Rose, J. FPGA Architecture: Survey and Shallenges—Found Trends. Electr. Des. Autom. 2008, 2, 135–253. [Google Scholar]
  26. Trimberger, S. Three ages of FPGA: A Retrospective on the First Thirty Years of FPGA Technology. IEEE Proc. 2015, 103, 318–331. [Google Scholar] [CrossRef]
  27. Grout, I. Digital Systems Design with FPGAs and CPLDs; Elsevier Science: Amsterdam, The Netherlands, 2011; p. 718. [Google Scholar]
  28. Altera. Intel Corporation (Since 2016). Available online: https://www.intel.com/content/www/us/en/products/programmable.html (accessed on 23 March 2026).
  29. Xilinx, A. Available online: https://www.amd.com/en.html (accessed on 23 March 2026).
  30. UltraScale Architecture and Product Data Sheet: Overview (DS890). Available online: https://docs.amd.com/v/u/en-US/ds890-ultrascale-overview (accessed on 23 March 2026).
  31. Lu, S.; Shang, L.; Qu, Q.; Jung, S.; Liang, Q.; Pan, C. An Efficient Multi-Output LUT Mapping Technique for Field-Programmable Gate Arrays. Electronics 2025, 14, 1782. [Google Scholar] [CrossRef]
  32. Wang, F.; Zhu, L.; Zhang, J.; Li, L.; Zhang, Y.; Luo, G. Dual-output LUT merging during FPGA technology mapping. In Proceedings of the 39th International Conference on Computer-Aided Design (ICCAD), San Diego, CA, USA, 2–5 November 2020; pp. 1–9. [Google Scholar]
  33. Chapman, K. Multiplexer Design Techniques for Datapath Performance with Minimized Routing Resources; Xilinx All Programmable, 2014; pp. 1–32. Available online: https://docs.amd.com/api/khub/documents/9pOn~3NV8ApAbwglqp6MJQ/content (accessed on 23 March 2026).
  34. Liu, Y.; Peng, Y.; Wang, B.; Yao, S.; Liu, Z. Review on cyber-physical systems. IEEE/CAA J. Autom. Sin. 2017, 4, 27–40. [Google Scholar] [CrossRef]
  35. Barkalov, O.; Titarenko, L.; Mielcarek, K. Improving characteristics of LUT-based Mealy FSMs. Int. J. Appl. Math. Comput. Sci. 2020, 30, 745–759. [Google Scholar] [CrossRef]
  36. Kilts, S. Advanced FPGA Design: Architecture, Implementation, and Optimization; Wiley-IEEE Press: Hoboken, NJ, USA, 2007; p. 312. [Google Scholar]
  37. Feng, W.; Greene, J.; Mishchenko, A. Improving FPGA Performance with a S44 LUT Structure. In Proceedings of the 2018 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays; FPGA ’18; ACM: New York, NY, USA, 2018; pp. 61–66. [Google Scholar] [CrossRef]
  38. Murray, K.E.; Petelin, O.; Zhong, S.; Wang, J.M.; Eldafrawy, M.; Legault, J.-P.; Sha, E.; Graham, A.G.; Wu, J.; Walker, M.J.P.; et al. VTR 8: High-performance CAD and customizable FPGA architecture modelling. ACM Trans. Reconfig. Technol. Syst. 2020, 13, 9. [Google Scholar] [CrossRef]
  39. Atmel. Microchip Technology (Since 2016). Available online: https://www.microchip.com (accessed on 23 March 2026).
  40. De Micheli, G. Synthesis and Optimization of Digital Circuits; McGraw–Hill: New York, NY, USA, 1994; p. 578. [Google Scholar]
  41. Sentowich, E.; Singh, K.; Lavango, L.; Moon, C.; Murgai, R.; Saldanha, A.; Savoj, H.; Stephan, P.; Bryton, R.; Sangiovanni-Vincentelli, A. SIS: A System for Sequential Circuit Synthesis; Technical Report; University of California: Berkely, CA, USA, 1992. [Google Scholar]
  42. Brayton, R.; Mishchenko, A. ABC: An Academic Industrial-Strength Verification Tool. In Computer Aided Verification, Proceedings of the 22nd International Conference; Touili, T., Cook, B., Jackson, P., Eds.; Springer: Berlin/Heidelberg, Germany, 2010; pp. 24–40. [Google Scholar] [CrossRef]
  43. Xilinx. Vivado Design Suite User Guide: Synthesis; UG901 (v2025.1). 2026. Available online: https://docs.amd.com/r/en-US/ug901-vivado-synthesis/Introduction (accessed on 23 March 2026).
  44. Quartus Prime Design Software. 2026. Available online: https://www.intel.pl/content/www/pl/pl/software/programmable/quartus-prime/overview.html (accessed on 23 March 2026).
  45. Barkalov, A.; Titarenko, L.; Krzywicki, K.; Saburova, S. Improving Characteristics of LUT-Based Mealy FSMs with Twofold State Assignment. Electronics 2021, 10, 901. [Google Scholar] [CrossRef]
  46. Barkalov, A.; Titarenko, L.; Chmielewski, S. Improving characteristics of LUT-based Moore FSMs. IEEE Access 2020, 8, 155306–155318. [Google Scholar] [CrossRef]
  47. Kubica, M.; Opara, A.; Kania, D. Technology Mapping for LUT-Based FPGA; Springer: Berlin/Heidelberg, Germany, 2021. [Google Scholar] [CrossRef]
  48. Opara, A.; Kubica, M.; Kania, D. Decomposition Approaches for Power Reduction. IEEE Access 2023, 11, 29417–29429. [Google Scholar] [CrossRef]
  49. Testa, E.; Amaru, L.; Soeken, M.; Mishchenko, A.; Vuillod, P.; Luo, J.; Casares, C.; Gaillardon, P.; Micheli, G.D. Scalable Boolean Methods in a Modern Synthesis Flow. In Proceedings of the 2019 Design, Automation Test in Europe Conference Exhibition (DATE), Florence, Italy, 25–29 March 2019; pp. 1643–1648. [Google Scholar] [CrossRef]
  50. Barkalov, A.; Titarenko, L.; Mielcarek, K.; Chmielewski, S. Logic Synthesis for FPGA-Based Control Units—Structural Decomposition in Logic Design; Lecture Notes in Electrical Engineering; Springer: Berlin, Germany, 2020; Volume 636. [Google Scholar] [CrossRef]
  51. Barkalov, A.; Titarenko, L.; Krzywicki, K. Structural Decomposition in FSM Design: Roots, Evolution, Current State—A Review. Electronics 2021, 10, 1174. [Google Scholar] [CrossRef]
  52. Achasova, S. Synthesis Algorithms for Automata with PLAs; M-Soviet Radio: Moscow, Russia, 1987; p. 135. (In Russian) [Google Scholar]
  53. Barkalov, A.; Titarenko, L.; Krzywicki, K. Improving Characteristics of LUT-Based Sequential Blocks for Cyber-Physical Systems. Energies 2022, 15, 2636. [Google Scholar] [CrossRef]
  54. Opara, A.; Kubica, M. Technology mapping of multi-output functions leading to the reduction of dynamic power consumption in FPGAs. Int. J. Appl. Math. Comput. Sci. 2023, 33, 267–284. [Google Scholar] [CrossRef]
  55. Salauyou, V. Area and Performance Estimates of Finite State Machines in Reconfigurable Systems. Appl. Sci. 2024, 14, 11833. [Google Scholar] [CrossRef]
  56. Salauyou, V. Fault Detection of Moore Finite State Machines by Structural Models. In Proceedings of the Computer Information Systems and Industrial Management: 22nd International Conference, CISIM 2023, Tokyo, Japan, 22–24 September 2023; pp. 394–409. [Google Scholar] [CrossRef]
  57. Baranov, S. Logic Synthesis of Control Automata; Kluwer Academic Publishers: Boston, MA, USA, 1994; p. 312. [Google Scholar]
  58. McElvain, K. LGSynth93 Benchmark; Mentor Graphics: Wilsonville, OR, USA, 1993. [Google Scholar]
Figure 1. Structural diagram of Moore FSM U 1 .
Figure 1. Structural diagram of Moore FSM U 1 .
Applsci 16 03540 g001
Figure 2. LUT-based architecture of FSM U 2 .
Figure 2. LUT-based architecture of FSM U 2 .
Applsci 16 03540 g002
Figure 3. State assignment for set A M C —(a) initial step, (b) second step, (c) final step.
Figure 3. State assignment for set A M C —(a) initial step, (b) second step, (c) final step.
Applsci 16 03540 g003
Figure 4. Outcome of state assignment for Moore FSM E1.
Figure 4. Outcome of state assignment for Moore FSM E1.
Applsci 16 03540 g004
Figure 5. Partial state codes for L U T e r 1 .
Figure 5. Partial state codes for L U T e r 1 .
Applsci 16 03540 g005
Figure 6. Partial state codes for L U T e r 2 .
Figure 6. Partial state codes for L U T e r 2 .
Applsci 16 03540 g006
Figure 7. Choice of a model used for synthesis.
Figure 7. Choice of a model used for synthesis.
Applsci 16 03540 g007
Table 1. State transition table of Moore FSM E1.
Table 1. State transition table of Moore FSM E1.
a m a s X h h
a 1 a 2 x 1 1
a 3 x 1 ¯ 2
a 2 ( y 1 y 2 ) a 3 x 3 3
a 4 x 3 ¯ 4
a 3 ( y 2 y 5 ) a 4 x 2 5
a 5 x 2 ¯ 6
a 4 ( y 4 ) a 4 x 2 7
a 5 x 2 ¯ 8
a 5 ( y 1 y 7 ) a 6 x 1 9
a 7 x 1 ¯ 10
a 6 ( y 6 ) a 6 x 1 11
a 7 x 1 ¯ 12
a 7 ( y 1 y 3 ) a 8 x 3 13
a 9 x 3 ¯ x 4 14
a 3 x 3 ¯ x 4 ¯ 15
a 8 ( y 4 ) a 8 x 3 16
a 9 x 3 ¯ x 4 17
a 3 x 3 ¯ x 4 ¯ 18
a 9 ( y 3 y 4 ) a 10 x 6 19
a 11 x 6 ¯ x 7 20
a 1 x 6 ¯ x 7 ¯ 21
a 10 ( y 7 ) a 1 x 3 22
a 12 x 3 ¯ 23
a 11 ( y 5 ) a 1 x 3 24
a 12 x 3 ¯ 25
a 12 ( y 2 ) a 12 x 7 26
a 7 x 7 ¯ x 8 27
a 1 x 7 ¯ x 8 ¯ 28
Table 2. Table of L U T e r M C .
Table 2. Table of L U T e r M C .
a m K ( a m ) a s K ( a s ) X h D h h
a 1 0000 a 2 1101 x 1 D 1 D 2 D 4 1
a 3 0010 x 1 ¯ D 3 2
a 3 0010 a 4 0011 x 2 D 3 D 4 3
a 5 0100 x 2 ¯ D 2 4
a 4 0011 a 4 0011 x 2 D 3 D 4 5
a 5 0100 x 2 ¯ D 2 6
a 5 0100 a 6 0101 x 1 D 2 D 4 7
a 7 1001 x 1 ¯ D 1 D 4 8
a 6 0101 a 6 0101 x 1 D 2 D 4 9
a 7 1001 x 1 ¯ D 1 D 4 10
Table 3. Table of L U T e r 1 .
Table 3. Table of L U T e r 1 .
a m PC ( a m ) a s K ( a s ) X h D h h
a 2 010 a 3 0010 x 3 D 2 1
a 4 0011 x 3 ¯ D 3 D 4 2
a 7 100 a 8 0111 x 3 D 2 D 3 D 4 3
a 9 1011 x 3 ¯ x 4 D 1 D 3 D 4 4
a 3 0010 x 3 ¯ x 4 ¯ D 3 5
a 8 101 a 8 0111 x 3 D 2 D 3 D 4 6
a 9 1011 x 3 ¯ x 4 D 1 D 3 D 4 7
a 3 0010 x 3 ¯ x 4 ¯ D 3 8
a 10 110 a 1 0000 x 3 9
a 12 1010 x 3 ¯ D 1 D 2 10
a 11 111 a 1 0000 x 3 11
a 12 1010 x 3 ¯ D 1 D 2 12
Table 4. Table of L U T e r 2 .
Table 4. Table of L U T e r 2 .
a m PC ( a m ) a s K ( a s ) X h D h h
a 9 1* a 10 1100 x 6 D 1 D 2 1
a 11 0110 x 6 ¯ x 7 D 2 D 3 2
a 1 0000 x 6 ¯ x 7 ¯ 3
a 12 *1 a 12 1010 x 7 D 1 D 3 4
a 7 1001 x 7 ¯ x 8 D 1 D 4 5
a 1 0000 x 7 ¯ x 8 ¯ 6
Table 5. Table of L U T e r T .
Table 5. Table of L U T e r T .
D M 012
D 1 +++
D 2 +++
D 3 +++
D 4 +++
Table 6. Table of L U T e r τ Y .
Table 6. Table of L U T e r τ Y .
a m K ( a m ) PC ( a m ) τ m Y m
a 1 0000
a 2 1101010 τ 2 y 1 y 2
a 3 0010 y 2 y 5
a 4 0011 y 4
a 5 0100 y 1 y 7
a 6 0101 y 6
a 7 1001100 τ 1 y 1 y 3
a 8 0111101 τ 1 τ 3 y 4
a 9 10111* τ 4 y 3 y 4
a 10 1100110 τ 1 τ 2 y 7
a 11 0110111 τ 1 τ 2 τ 3 y 5
a 12 1010*1 τ 5 y 2
Table 7. Characteristics of benchmark Moore FSMs.
Table 7. Characteristics of benchmark Moore FSMs.
BenchmarkLNMH R A L + R A
bbara42127248
bbsse7723104512
bbtas2293646
beecount34104047
cse7732183512
dk14352620858
dk15351713658
dk16237530079
dk1723166446
dk2712102045
dk51213234856
donfile212510057
ex191980637716
ex222259257
ex322144446
ex4691728511
ex522165246
ex658136149
ex722175657
keyb7222193512
kirkman1261393817820
lion2151435
lion921113146
mark15162129510
mc3582036
modulo1211132645
opus56102249
planet719103248714
planet1719103248714
pma8849132614
s18620107513
s1488819168912816
s14948191681030816
s1a8621115513
s20811236309617
s274163437
s298363321669912
s3867723127512
s42019236282625
s51019773133726
s84162437
s820181970613725
s832181970707725
sand11988654718
scf2756138190835
shiftreg11163245
sse7723104512
styr91057366615
tav442732259
tbk63602942612
tma763872613
train1121143446
train42162135
Table 8. Experimental results for one-hot-based FSMs.
Table 8. Experimental results for one-hot-based FSMs.
BenchmarkLUTsF7 MUXF8 MUXRegistersDelay (ns)Freq. (MHz)Power (W)
bbara1700122.494400.962.723
bbsse2700232.560390.633.712
bbtas90092.531395.102.805
beecount1800103.554281.373.705
cse5500322.774360.493.568
dk143100263.355298.065.732
dk152000172.788358.685.052
dk168400753.169315.566.961
dk171800162.927341.655.409
dk27700103.051327.764.116
dk5121500213.017331.464.752
donfile3100252.870348.433.222
ex114300804.121242.664.490
ex21110142.562390.322.690
ex31210132.542393.392.667
ex41800172.753363.243.378
ex51200142.599384.762.798
ex62300133.074325.317.555
ex760072.666375.092.584
keyb3600223.669272.553.364
kirkman267001394.777209.345.048
lion50052.640378.792.784
lion91200113.206311.922.927
mark11900203.743267.173.040
mc100082.736365.503.735
modulo12700132.283438.022.720
opus1600103.463288.773.900
planet147001034.037247.7113.386
planet1147001034.037247.7113.386
pma8300493.325300.755.049
s14200203.558281.066.741
s1488232001685.113195.587.025
s1494232001685.847171.037.043
s1a3600213.051327.762.868
s2086100362.873348.073.343
s27100062.446408.833.256
s29811431403419.276107.8111.008
s3862900232.684372.583.661
s4206200363.920255.103.331
s5106400734.597217.535.757
s8110062.446408.832.787
s82010300703.665272.854.908
s83210400703.531283.214.918
sand13600884.387227.957.000
scf111001356.787147.344.952
shiftreg1100162.565389.863.397
sse2700232.560390.633.712
styr9100573.629275.564.056
tav3100273.569280.193.722
tbk15200603.445290.283.618
tma5900384.009249.443.482
train111400143.196312.892.879
train450062.671374.392.828
Total40721602419183.14816,541.89243.500
Table 9. Experimental results for Gray-based FSMs.
Table 9. Experimental results for Gray-based FSMs.
BenchmarkLUTsF7 MUXF8 MUXRegistersDelay (ns)Freq. (MHz)Power (W)
bbara180042.716368.193.300
bbsse363052.636379.367.750
bbtas60042.583387.153.600
beecount124042.855350.265.899
cse5510053.059326.905.155
dk142510552.854350.399.755
dk15200053.453289.608.376
dk167022073.758266.107.730
dk1770042.537394.176.233
dk2740042.725366.973.897
dk51280052.612382.854.473
donfile115053.077324.993.579
ex117727073.526283.6118.548
ex250042.720367.652.953
ex360042.517397.304.521
ex4220052.687372.165.824
ex550042.823354.234.232
ex6192042.664375.3812.036
ex750042.823354.233.593
keyb425153.221310.464.324
kirkman37753985.990166.9414.522
lion30032.638379.082.754
lion950042.549392.312.775
mark1290052.845351.498.345
mc60032.659376.085.522
modulo1230042.362423.372.630
opus180042.863349.284.560
planet12933073.411293.1720.657
planet112933073.411293.1720.657
pma736062.874347.9512.260
s1537053.089323.7310.869
s1488291332105.280189.3926.114
s1494293311105.670176.3726.202
s1a499153.257307.035.447
s208455062.791358.295.388
s2773032.456407.173.696
s29860719879394.373228.6821.491
s386364052.642378.507.201
s4206012362.972336.474.179
s510514174.080245.108.502
s873032.453407.663.594
s82015127773.662273.0710.973
s83214524574.168239.9210.298
sand12519073.278305.0611.072
scf19419188.929111.9925.147
shiftreg30042.362423.373.989
sse363052.636379.367.750
styr9714163.026330.4710.220
tav255053.094323.217.392
tbk13614063.812262.336.286
tma537062.772360.759.646
train1150042.584387.002.748
train420032.441409.672.923
Total3796654116312171.27517,539.40451.587
Table 10. Experimental results for U 1 -based FSMs.
Table 10. Experimental results for U 1 -based FSMs.
BenchmarkLUTsF7 MUXF8 MUXRegistersDelay (ns)Freq. (MHz)Power (W)
bbara170042.716368.192.723
bbsse270052.636379.363.712
bbtas60042.583387.153.600
beecount124042.855350.265.899
cse5510053.059326.905.155
dk142510552.854350.399.755
dk15200053.453289.608.376
dk167022073.758266.107.730
dk1770042.537394.176.233
dk2740042.725366.973.897
dk51280052.612382.854.473
donfile115053.077324.993.579
ex11300073.338299.584.939
ex250042.720367.652.953
ex360042.517397.304.521
ex4220052.687372.163.378
ex550042.823354.234.232
ex6192042.664375.3812.036
ex750042.823354.233.593
keyb360053.221310.463.090
kirkman2404083.822261.645.553
lion30032.638379.082.754
lion950042.549392.312.775
mark1190052.845351.493.040
mc60032.659376.085.522
modulo1230042.362423.372.630
opus180042.863349.283.900
planet1317093.310302.1114.725
planet11317093.310302.1114.725
pma750062.727366.705.554
s1382052.882346.987.415
s14882116084.090244.507.727
s14942098084.678213.777.677
s1a340052.471404.693.140
s208413062.289436.873.677
s2773032.456407.173.696
s298546121293.585278.9412.021
s386290052.642378.507.201
s4206012062.972336.474.179
s510514074.080245.108.502
s873032.453407.663.594
s82010327073.662273.074.908
s83210424074.168239.924.918
sand13619073.278305.067.000
scf11119088.929118.994.952
shiftreg30042.362423.373.989
sse250052.074482.164.076
styr830062.903344.474.461
tav255053.094323.217.392
tbk13614063.812262.336.286
tma493062.273439.953.830
train1150042.584387.002.748
train420032.441409.672.923
Total313623517282162.92118,224.98291.364
Table 11. Experimental results for U 2 -based FSMs.
Table 11. Experimental results for U 2 -based FSMs.
BenchmarkLUTsF7 MUXF8 MUXRegistersDelay (ns)Freq. (MHz)Power (W)
bbara170042.716368.192.723
bbsse270052.636379.363.712
bbtas60042.583387.153.600
beecount124042.855350.265.899
cse5510053.059326.905.155
dk142510552.854350.399.755
dk15200053.453289.608.376
dk167022073.758266.107.730
dk1770042.537394.176.233
dk2740042.725366.973.897
dk51280052.612382.854.473
donfile115053.077324.993.579
ex11130073.271305.725.235
ex250042.720367.652.953
ex360042.517397.304.521
ex4220052.687372.163.378
ex550042.823354.234.232
ex6192042.664375.3812.036
ex750042.823354.233.593
keyb360053.221310.463.090
kirkman2113083.707269.765.942
lion30032.638379.082.754
lion950042.549392.312.775
mark1190052.845351.493.040
mc60032.659376.085.522
modulo1230042.362423.372.630
opus180042.863349.283.900
planet1175093.277305.1615.314
planet11175093.277305.1615.314
pma680062.672374.255.932
s1342052.824354.117.859
s14881864083.967252.088.036
s14941876084.584218.157.907
s1a310052.347426.083.359
s208373062.243445.833.751
s2773032.456407.173.696
s29848110993.442290.5312.838
s386290052.642378.507.201
s4206012062.972336.474.179
s510514074.080245.108.502
s873032.453407.663.594
s82010327073.662273.074.908
s83210424074.168239.924.918
sand13619073.278305.067.000
scf11119088.929111.994.952
shiftreg30042.362423.373.989
sse230051.991502.264.369
styr740062.816355.114.585
tav255053.094323.217.392
tbk13614063.812262.336.286
tma452062.182458.304.037
train1150042.584387.002.748
train420032.441409.672.923
Total291722314282161.76918,362.97296.322
Table 12. Experimental results (LUT count).
Table 12. Experimental results (LUT count).
BenchmarkOne-HotGray U 1 U 2
bbara17181717
bbsse27362727
bbtas9666
beecount18121212
cse55555555
dk1431252525
dk1520202020
dk1684707070
dk1718777
dk277444
dk51215888
donfile31111111
ex1143177130113
ex211555
ex312666
ex418222222
ex512555
ex623191919
ex76555
keyb36423636
kirkman267377240211
lion5333
lion912555
mark119291919
mc10666
modulo127333
opus16181818
planet147129131117
planet1147129131117
pma83737568
s142533834
s1488232291211186
s1494232293209187
s1a36493431
s20861454137
s2710777
s2981143607546481
s38629362929
s42062606060
s51064515151
s811777
s820103151103103
s832104145104104
sand136125136136
scf111194111111
shiftreg11333
sse27362523
styr91978374
tav31252525
tbk152136136136
tma59534945
train1114555
train45222
Total4072379631362917
Percentage, %139.60130.13107.51100.00
Table 13. Experimental results (maximum operating frequency, MHz).
Table 13. Experimental results (maximum operating frequency, MHz).
BenchmarkOne-HotGray U 1 U 2
bbara400.96368.19368.19368.19
bbsse390.63379.36379.36379.36
bbtas395.10387.15387.15387.15
beecount281.37350.26350.26350.26
cse360.49326.90326.90326.90
dk14298.06350.39350.39350.39
dk15358.68289.60289.60289.60
dk16315.56266.10266.10266.10
dk17341.65394.17394.17394.17
dk27327.76366.97366.97366.97
dk512331.46382.85382.85382.85
donfile348.43324.99324.99324.99
ex1242.66283.61299.58305.72
ex2390.32367.65367.65367.65
ex3393.39397.30397.30397.30
ex4363.24372.16372.16372.16
ex5384.76354.23354.23354.23
ex6325.31375.38375.38375.38
ex7375.09354.23354.23354.23
keyb272.55310.46310.46310.46
kirkman209.34166.94261.64269.76
lion378.79379.08379.08379.08
lion9311.92392.31392.31392.31
mark1267.17351.49351.49351.49
mc365.50376.08376.08376.08
modulo12438.02423.37423.37423.37
opus288.77349.28349.28349.28
planet247.71293.17302.11305.16
planet1247.71293.17302.11305.16
pma300.75347.95366.70374.25
s1281.06323.73346.98354.11
s1488195.58189.39244.50252.08
s1494171.03176.37213.77218.15
s1a327.76307.03404.69426.08
s208348.07358.29436.87445.83
s27408.83407.17407.17407.17
s298107.81228.68278.94290.53
s386372.58378.50378.50378.50
s420255.10336.47336.47336.47
s510217.53245.10245.10245.10
s8408.83407.66407.66407.66
s820272.85273.07273.07273.07
s832283.21239.92239.92239.92
sand227.95305.06305.06305.06
scf147.34111.99111.99111.99
shiftreg389.86423.37423.37423.37
sse390.63379.36482.16502.26
styr275.56330.47344.47355.11
tav280.19323.21323.21323.21
tbk290.28262.33262.33262.33
tma249.44360.75439.95458.30
train11312.89387.00387.00387.00
train4374.39409.67409.67409.67
Total16,541.8917,539.4018,224.9818,362.97
Percentage, %90.0895.5299.25100.00
Table 14. Comparison of characteristics for complex FSMs.
Table 14. Comparison of characteristics for complex FSMs.
One-HotGray U 1 U 2
Total LUTs2710240919431724
Percentage LUTS, %157.19139.73112.70100.00
Total Registers13461279797
Percentage Registers, %1387.63130.93100.00100.00
Total Frequency3595.094038.914724.494862.49
Percentage Frequency, %73.9483.0697.16100.00
Total Power90.637209.77199.52104.478
Percentage Power, %86.75200.7895.25100.00
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Barkalov, A.; Titarenko, L.; Krzywicki, K. Reducing LUT Counts in Moore FSMs with Twofold State Assignment. Appl. Sci. 2026, 16, 3540. https://doi.org/10.3390/app16073540

AMA Style

Barkalov A, Titarenko L, Krzywicki K. Reducing LUT Counts in Moore FSMs with Twofold State Assignment. Applied Sciences. 2026; 16(7):3540. https://doi.org/10.3390/app16073540

Chicago/Turabian Style

Barkalov, Alexander, Larysa Titarenko, and Kazimierz Krzywicki. 2026. "Reducing LUT Counts in Moore FSMs with Twofold State Assignment" Applied Sciences 16, no. 7: 3540. https://doi.org/10.3390/app16073540

APA Style

Barkalov, A., Titarenko, L., & Krzywicki, K. (2026). Reducing LUT Counts in Moore FSMs with Twofold State Assignment. Applied Sciences, 16(7), 3540. https://doi.org/10.3390/app16073540

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop