Next Article in Journal
Effect of Displacement Current on the Finite-Difference Modeling of Natural Source Electromagnetic Diffusion
Previous Article in Journal
The Effect of Moisture Content on the Tar Characteristic of Wood Pellet Feedstock in a Downdraft Gasifier
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Encoding of Terms in EMB-Based Mealy FSMs

by
Alexander Barkalov
1,2,
Larysa Titarenko
1,3,
Małgorzata Mazurkiewicz
4 and
Kazimierz Krzywicki
5,*
1
Institute of Metrology, Electronics and Computer Science, University of Zielona Góra, ul. Licealna 9, 65-417 Zielona Góra, Poland
2
Department of Mathematics and Information Technology, Vasyl’ Stus Donetsk National University, 21, 600-richya str., 21021 Vinnytsia, Ukraine
3
Department of Infocommunication Engineering, Faculty of Infocommunications, Kharkiv National University of Radio Electronics, Nauky avenue 14, 61166 Kharkiv, Ukraine
4
Institute of Control & Computation Engineering, University of Zielona Góra, ul. Licealna 9, 65-417 Zielona Góra, Poland
5
Institute of Computer Science and Technology, The Jacob of Paradies University, ul. Teatralna 25, 66-400 Gorzów Wielkopolski, Poland
*
Author to whom correspondence should be addressed.
Appl. Sci. 2020, 10(8), 2762; https://doi.org/10.3390/app10082762
Submission received: 17 February 2020 / Revised: 10 April 2020 / Accepted: 12 April 2020 / Published: 16 April 2020
(This article belongs to the Section Electrical, Electronics and Communications Engineering)

Abstract

:
A method is proposed targeting implementation of FPGA-based Mealy finite state machines. The main goal of the method is a reduction for the number of look-up table (LUT) elements and their levels in FSM logic circuits. To do it, it is necessary to eliminate the direct dependence of input memory functions and FSM output functions on FSM inputs and state variables. The method is based on encoding of the terms corresponding to rows of direct structure tables. In such an approach, only terms depend on FSM inputs and state variables. Other functions depend on variables representing terms. The method belongs to the group of the methods of structural decomposition. The set of terms is divided by classes such that each class corresponds to a single-level LUT-based circuit. An embedded memory block (EMB) generates codes of both classes and terms as elements of these classes. The mutual using LUTs and EMB allows diminishing chip area occupied by FSM circuit (as compared to its LUT-based counterpart). The simple sequential algorithm is proposed for finding the partition of the set of terms by a determined number of classes. The method is based on representation of an FSM by a state transition table. However, it can be used for any known form of FSM specification. The example of synthesis is shown. The efficiency of the proposed method was investigated using a library of standard benchmarks. We compared the proposed with some other known design methods. The investigations show that the proposed method gives better results than other discussed methods. It allows the obtaining of FSM circuits with three levels of logic and regular interconnections.

1. Introduction

The model of Mealy finite state machine (FSM) is used very often in the process of designing control units of modern digital systems [1,2,3]. There are many problems connected with optimization of characteristics of control units [4,5]. One of the most important problems is a problem of hardware reduction [6,7].
Solution of this problem allows reducing the power consumption and increasing the performance (maximizing operating frequency) [8,9]. To solve this problem, it is necessary to take into account the specific features of both an FSM model and logic elements used to implement the circuit of FSM [3,10].
The main specific of Mealy FSM is a dependence of input memory functions and output functions on both input variables and state variables [1,8]. Our investigation of standard benchmarks [11] shows that it could be up to 17 arguments in Boolean functions representing FSM circuits.
Presently, the field-programmable gate array (FPGA) chips are widely used for implementing different digital systems [8,12,13]. Of course, FPGAs also are used to implement control units of these systems. There are three main elements of FPGA which could be used to implement FSM circuits. They are: look-up table (LUT) elements, embedded memory blocks (EMB) and tools of programmable interconnections [14,15,16]. LUTs fit for implementing Boolean functions represented as sum-of-products (SOP) [8]. EMBs implement large truth tables representing systems of Boolean functions (SBF).
A LUT is an array of SRAM cells with S L inputs ( S L 6 ) [13,14]. Outputs of LUTs are connected with programmable flip-flops which could be bypassed. Therefore, it is possible to implement distributed registers keeping state codes [3].
An EMB is a RAM with S A address inputs and t F outputs. The main specific of EMBs is their reconfigurability [3]. It means that the values of S A and t F could be changed. Of course, the number of bits (the volume of EMB) is constant. It is determined as
V 0 = 2 S A · t F .
Due to the reconfigurability, it is possible to tune EMBs to meet the requirements of a particular design. There are the following pairs < S A , t F > [13]: < 15 , 1 > , < 14 , 2 > , < 13 , 4 > , < 12 , 8 > , < 11 , 16 > , < 10 , 32 > and < 9 , 64 > . It gives V 0 = 32 K , bits.
In this article, we propose a method of synthesis leading an FSM circuit to implemented as a network of EMBs and LUTs. The method is based on the structural decomposition [17] of FSM circuit.

2. Background of Mealy FSMs

The logic circuit of Mealy FSM is represented by the following systems of Boolean functions [1]:
Φ = Φ ( T , X ) ;
Y = Y ( T , X ) .
In (2) and (3), there are the following sets: Φ = { D 1 , D R } is a set of input memory functions, T = { T 1 , T R } is a set of state variables, X = { x 1 , x L } is a set of input variables, Y = { y 1 , y N } is a set of output functions.
To find systems (2) and (3), it is necessary to specify a behaviour of FSM. In this article, we use a state transition table (STT) to represent a Mealy FSM. An STT contains information about the transitions between internal states a m A , where A = { a 1 , a M } is a set of states [8]. There are the following columns in an STT: a m is a current state; a s is a state of transition; X h is a conjunction of input variables (or their complements) determining the transition a m , a s ; Y h is a collection of output functions (COF) generated during the transition a m , a s ; h is a number of transition ( h { 1 , , H } ) . For example, consider some Mealy FSM S 1 represented by STT (Table 1).
The following sets and their parameters could be derived from Table 1: A = { a 1 , , a 12 } , M = 12 , X = { x 1 , , x 7 } , L = 7 , Y = { y 1 , , y 11 } , N = 11 . There are H = 20 rows in Table 1. To find the sets Φ and T, it is necessary to encode the states a m A by binary codes K ( a m ) with R bits. It is a step of state assignment [8]. Let us use minimum number of state variables when there is
R = l o g 2 M .
In the discussed case, there is R = 4 . It gives the sets T = { T 1 , , T 4 } and Φ = { D 1 , , D 4 } . As follows from the set Φ , we use D flip-flops to implement the register ( R G ) .
To get functions (2) and (3), it is necessary to turn an STT into a direct structure table (DST) [1] of Mealy FSM. To do it, we should add three columns into an STT, namely: K ( a m ) is a code of current state; K ( a s ) is a code of state of transition; Φ h is a collection of input memory functions equal to 1 to replace K ( a m ) by K ( a s ) .
Each row of DST corresponds to a product term F h ( h { 1 , , H } ) . The term F h is the following conjunction:
F h = r = 1 R T r l m r · X h ( h { 1 , , H } ) .
The first member of (5) is a conjunction A m of state variables corresponding to the code K ( a m ) of the state a m A from the h-th row of D S T . There are l m r { 0 , 1 } , T r 0 = T r ¯ , T r 1 = T r ( r { 1 , , R } ) . The symbol l m r stands for the value of the r-th bit of K ( a m ) .
The functions (2) and (3) depend on terms (5). The system (2) determines a block of input memory functions (BIMF), the system (3) the block of output functions (BOF). State codes are kept into R G . It determines a Mealy FSM U 1 (Figure 1). The pulse S t a r t loads the code K ( a 1 ) of the initial state a 1 A into R G . The pulse C l o c k allows changing the content of RG.

3. Implementing Mealy FSMs with FPGAs

Each block of FSM U 1 could be implemented using either LUTs or EMBs. We name the block of LUTs as LUTer, the block of EMBs as EMBer. In the simplest case, we have a LUT-based FSM U 1 (Figure 2).
Let an FSM circuit be represented by I Boolean functions. There is I = R + N in the case U 1 . Let the following condition take place:
L ( f i ) S L ( i { 1 , I } ) .
In (6), the symbol L ( f i ) stands for the number of literals in a SOP of f i .
In this case, there are exactly I LUTs in the circuit of U 1 . If the condition (6) is violated, then some functions should be decomposed. To do it, the different methods of functional decomposition are used [18,19,20]. It leads to multi-level circuits with complex interconnections. The multi-level circuits of LUTers consume more energy and have less performance than their single-level counterparts.
It is very important to use EMBs in FSM design. It decreases the chip area occupied by FSM circuit, as well as the number of interconnections [21,22,23]. In turn, it results in decreasing for both the power consumption and propagation time (as compared to LUT-based counterparts). Because of it, there is a lot of EMB-based methods of Mealy FSMs synthesis [10,16].
Let the following condition take place:
2 L + R ( N + R ) V 0 .
In this case, it is enough a single EMB to implement the circuit of U 1 . It leads to FSM U 2 (Figure 3).
If condition (7) is violated, then EMBer is implemented as a network of EMBs. It has sense till the following conditions take places:
L + R S A ;
N + R > t F .
If condition (8) is violated, then some methods of structural decomposition [16,17] could be used to diminish the values of L ( f i ) .
As a rule, the method of replacement of input variables is used [1,10]. In this case, the variables x l X are replaced by variables p g P = { p 1 , , p G } . In many practical cases, there is G 3 [2]. Our analysis of standard benchmarks [16] justifies this statement. In this case, three following SBFs represent the FSM circuit:
P = P ( T , X ) ;
Φ = Φ ( T , P ) ;
Y = Y ( T , P ) .
As a rule, the system (10) is implemented by LUTs [10,21]. The systems (11) and (12) are implemented by EMBs. It leads to Mealy FSM U 3 (Figure 4).
To find the system (10) it is necessary: (1) to construct the set P; (2) to execute the replacement of X P ; (3) to encode the states and (4) to construct the table of LUTerP. To find the systems (11) and (12), it is necessary to transform the initial DST of U 1 . The transformation is reduced to: (1) the replacement x l X by p g P and (2) the replacement of the column X h by the column P h .
Let us use the symbol U i ( S j ) to show that the model U i is used to synthesize an FSM circuit starting from the STT of FSM S j . Let us find the system (10) for FSM U 3 ( S 1 ) .
As follows from Table 1, there are transitions depended on a single variable x l X or two variables. Therefore, there is G = 2 . It gives P = { p 1 , p 2 } . There is M = 12 , R = 4 . Let us encode the states of S 1 in the trivial way: K ( a 1 ) = 0000 , , K ( a 12 ) = 1011 . The replacement X P is represented by Table 2. It is constructed using the rules [1].
After minimizing, we can find the following equations:
p 1 = T 4 ¯ x 1 T 1 ¯ T 2 ¯ T 4 x 2 T 2 x 4 T 1 x 7 ; p 2 = T 1 ¯ T 2 ¯ x 3 T 2 x 5 T 1 x 6 .
Obviously, a proper state assignment could diminish the number of arguments in functions (10). These methods are discussed in [1,10].
Let the following condition take place:
2 G + R ( N + R ) V 0 .
In this case, it is enough a single EMB to implement the circuit of EMBer of FSM U 3 .
There are other methods of structural decomposition [10]. For example, there are such methods as: (1) the encoding of collections of output functions; (2) the encoding of terms of DST; (3) the transformation of object codes. In this article, we discuss the using the encoding of terms in EMB-based Mealy FSMs. This method was used in FSMs implemented with programmable logic arrays [1]. It has never been used in FPGA-based design.
Let us explain this approach. Let us encode a term F h by a binary code K ( F h ) with R H bits, where
R H = l o g 2 H .
Let us use variables z r Z for the encoding, where | Z | = R H . Let us construct the following SBFs:
Z = Z ( T , X ) ;
Φ = Φ ( Z ) ;
Y = Y ( Z ) .
Let the following condition take place:
2 L + R · R H V 0 .
Let the condition (7) is violated. In this case, we propose the FSM U 4 (Figure 5). In this FSM, the EMB implements the system (16), the LUTer P h i the system (17) and the LUTerY the system (18).
Let the following condition take place:
R H S L .
In this case, there are R + N LUTs in the FSM circuit. Both LUTers have only a single level of LUTs.
However, if the condition (20) is violated, it is necessary to use the functional decomposition of functions (17) and (18). In this article, we discuss a case when the condition (20) is violated. Also, we discuss the additional condition: we could use only a single EMB. This restriction could be connected with the fact that other EMBs are taken for implementing other parts of a digital system.
As a rule, it is very important to choose the state codes leading to minimizing the values of L ( f i ) [8]. There are a lot of methods of state assignment targeting FPGA-based design [17,18,19,20,21,24,25]. There is an opinion that JEDI [8] is the best of them [4]. But in the case of U 4 there is no influence of state codes on the hardware amount. Therefore, we do not analyze the state assignment methods in this article.

4. Main Idea of Proposed Method

Let a Mealy FSM be represented by an STT with H rows. Let us possess only a single EMB to implement the FSM circuit. Let us have FPGA chip with LUTs with S L inputs. Let the terms F h ( h { 1 , , F H } ) form a set F = { F 1 , , F H } . Let us use the encoding of terms F h F to reduce the number of LUTs in the FSM circuit.
Let us find the value of K for given STT and value of S L , where:
K = H / 2 S L .
Let us discuss a case, when K > 1 . It means that R H > S L . Therefore, both LUTerΦ and LUTerY of U 4 are represented by multi-level circuits.
In this article, we propose a method allowing: (1) to diminish the number of LUTs in comparison with equivalent FSM U 4 and (2) to regularize the interconnections. The method is based on dividing the initial STT by K sub-tables with up to 2 S L rows. Let us illustrate this method using the STT of S 1 (Table 1).
Let us use an EMB such that the condition (7) is violated for S 1 . Let the EMB have the configuration S A , t F such that the following conditions are true:
S A 1 < L + R S A ;
N + R > t F R H .
The condition (22) shows that it is enough a single EMB to implement SBF (16). The condition (23) shows that it is not possible to implement an FSM circuit using a single EMB.
Let us find a partition Π F = { F 1 , , F K } of the set F such that the following condition takes place:
R k S L ( k { 1 , , K } ) .
Let it be H k elements in the set F k . The value of R k is determined as:
R k = l o g 2 H k ( k { 1 , , K } ) .
Each class F k Π F determines sets Y k Y and A k A . The set A k includes states of transition written in the rows of STT corresponding to the class F k Π F . The set Y k includes output functions written in the rows of STT corresponding to the F k Π F . Let us find such a partition Π F that
| Y i Y j | m i n ;
| A i Y j | m i n .
In (26) and (27), there is i j and i , j { 1 , K } .
Let us encode the term F h F k by a binary code C ( F h ) with R k bits. Let us use variables z r Z for the encoding. These variables are the same for all classes F k Π F . To distinguish the classes, let us encode classes F k Π F by binary codes C ( F k ) with R C bits:
R C = l o g 2 K .
Let us use the variables v r V to encode the classes, where | V | = R c .
Now, the code K ( F h ) is represented as
K ( F h ) = C ( F k ) C ( F h ) ,
where * is a sign of concatenation. Of course there is R H = R k + R C .
Let the following condition take place:
Δ t = t F R H > 0 .
In this case, some functions D r Φ and y n Y could be implemented by EMB. Let they form sets Φ E and Y E , respectively. Therefore, LUTs should be used for implementing the remained functions. Let it be Φ L = Φ Φ E and Y L = Y Y E . Using these preliminaries, we propose the model of Mealy FSM U 5 (Figure 6).
In FSM U 5 , the EMB generates functions (16) and the following SBFs:
V = V ( T , X ) ;
Φ E = Φ E ( T , X ) ;
Y E = Y E ( T , X ) .
The LUTerk ( k { 1 , , K } ) generates functions:
Φ L k = Φ L k ( Z ) ;
Y L k = Y L k ( Z ) .
The LUTerΦY implements functions D r Φ L and y n Y L where
D r = k = 1 k C r k V k D r k ;
y n = k = 1 k C n k V k y n k .
In (36) and (37) the superscript k means that the corresponding function is generated by LUTerk. The C r k ( C n k ) is a Boolean variable equal 1 if and only if D r Φ L k , y n Y L k . Also, functions D r Φ E enter LUTerΦY. Each function requires a flip-flop, so it uses a single LUT. The symbol V k stands for the conjunction corresponding to C ( F k ) :
V k = r = 1 R c v r l k r ( k { 1 , , K } ) .
In (38), l k r is a value of the r-th bit of C ( F k ) , l k r { 0 , 1 } , v r 0 = v r ¯ , v r 1 = v r ( r { 1 , , R c } ) .
Because the condition (24) is true, there are | Φ L k | + | Y L k | LUTs in the circuit of LUTerk. If conditions (26) and (27) take places, the number of LUTs in LUTer1-LUTerK is minimized.
Assuming that a Mealy FSM S is represented by an STT, we propose the following design method for FSM U 5 :
  • Creating the partition Π F corresponding to (26) and (27).
  • Executing the state assignment.
  • Creating the DST of Mealy FSM.
  • Creating the sets Y E , Φ E , Y L and Φ L .
  • Encoding of terms and classes of Π F .
  • Creating the systems (34) and (37).
  • Transformation of DST.
  • Creating the table of EMB.
  • Implementing FSM circuit with particular EMB and LUTs.
The number of LUTs in U 5 are mostly determined by the partition Π F . Let us discuss how to find the partition Π F .

5. Constructing Partition of the Set of Terms

The problem is formulated as the following. It is necessary to find the partition Π F with K blocks such that relations (26) and (27) take places. The value of K is determined by (21).
In this article, we propose a simple sequential algorithm for solution of this problem. We characterize each term F h F by two sets. The set Y ( F h ) Y includes output functions written in the h-th row of STT. The set A ( F h ) A includes a state of transition a s A from the h-th row of STT. If F h F k , then y n Y k and a s A k . Of course, the set Φ k is determined by the codes K ( a s ) of states a s A k .
We use two evaluations in this algorithm. The evaluation N ( F h , Y k ) determines how many new output functions will be added to Y k due to including F h into F k . We determine these evaluations as the following:
N ( F h , Y k ) = | Y ( F h ) Y k | .
N ( F h , A k ) = | A ( F h ) A k | .
There are Δ Z insignificant assignments of variables z r Z :
Δ Z = 2 S L · K H .
They could be used for minimizing function (34) and (35). We propose to distribute terms evenly among K groups. It corresponds to the vector Δ = Δ 1 , Δ 2 , , Δ K . Therefore, each class F k Π F includes H k elements, where:
H k = 2 S L Δ k ( k { 1 , , K } ) .
There are two stages in generating each block F k Π F . Let k 1 blocks be constructed. At the first stage, we should choose the basic element (BE) F h F * , where there is F * = F { F 1 , , F k 1 } . The term F h is a BE of F k if it satisfies to the following relation:
| Y ( F h ) | = m a x | Y ( F j ) | , F j F * { F h } .
If the condition (43) is true for terms F i and F j , the we choose the term F j where i < j .
The second stage has H k 1 steps. At each step, we should choose the next element of F k . To do it, we use the following approach. Let us form a set P ( F k ) including terms F h F * such that Y ( F h ) Y k Ø . Let us select a term F h P ( F k ) such that
N ( F h , F k ) = m a x ( | Y ( F k ) Y ( F h ) | N ( F h , Y k ) ) .
If more than a single term satisfies to (44), then we should choose the term with the following property:
N ( F h , A k ) = 1 , F h P ( F k ) .
If there are several terms with the property (45), we choose a term with the less value of h. Next, we should make P ( F k ) = Ø and eliminate the term F h from F * .
The constructing F k is terminated if: (1) all terms are already distributed ( F * = Ø ) or (2) there are H k elements in F k Π F .
Let us discuss an example of creating the partition Π F for Mealy FSM S 1 . Let it be S L = 3 . Using (21) gives K = 3 . Using (41) gives Δ Z = 24 20 = 4 . Let us form the vector Δ = 2 , 1 , 1 . It gives H 1 = 6 , H 2 = H 3 = 7 . The process is shown in Table 3.
Let us explain columns of Table 3. There are terms F h in the column h. The column N ( F h ) contains the numbers of output functions in terms F h . There are basic elements of F 1 and F 2 shown in columns BE1 and BE2, respectively. The symbol I stands for (39), the symbol I I for (40). The sign ⊕ means that a particular term is chosen as a basic element. The sign “−” means than F h F * . The sign “+” means that the corresponding term is included into the class F k . There are terms F h F k in the row F k . They are shown in the order of their selection. There are output functions y n Y k in the row Y k , the states a s A k in the row A k . We determine the evaluation (40) only for terms with equal values of (39).
As follows from Table 3, there are H 1 + H 2 = 13 steps in the process of selection. The class F 3 includes terms F h F 1 F 2 . Our approach allows constructing the partition Π F = { F 1 , F 2 , F 3 } with the following classes: F 1 = { F 1 , F 3 , F 8 , F 11 , F 12 , F 15 } , F 2 = { F 4 , F 7 , F 13 , F 14 , F 18 , F 19 , F 20 } and F 3 = { F 2 , F 5 , F 6 , F 9 , F 10 , F 16 , F 17 } . It gives the following sets: X 1 = { x 1 , x 2 , x 3 , x 4 , x 6 } , X 2 = { x 2 , x 3 , x 5 , x 7 } and X 3 = { x 1 , x 2 , x 3 , x 4 , x 6 } , Y 1 = { y 1 , y 2 , y 5 , y 9 , y 10 } , Y 2 = { y 1 , y 4 , y 7 , y 11 } , Y 3 = { y 3 , y 6 , y 8 , y 9 } , A 1 = { a 1 , a 2 , a 3 , a 4 , a 7 , a 11 } , A 2 = { a 2 , a 5 , a 9 , a 10 , a 12 } , A 3 = { a 2 , a 3 , a 6 , a 8 , a 10 , a 11 } . Therefore, there are the following results for (26) and (27): | Y 1 Y 2 | = 1 , | Y 1 Y 3 | = 1 , | Y 2 Y 3 | = 0 , | A 1 A 2 | = 1 , | A 1 A 3 | = 2 , | A 2 A 3 | = 2 .

6. Example of Synthesis

In Section 5, we found the partition Π F for the discussed example. Let us use an EMB including the configuration 11 , 7 . Therefore, there is S A = 11 and t F = 7 . There is L + R = 11 for FSM S 1 . The condition (22) takes place. There is H = 20 and S L = 3 . Using (21) gives K = 3 : so, there is R C = 2 and V = { v 1 , v 2 } obviously, R 1 = R 2 = R 3 = 3 . Also, there is R H = 5 . Because N + R = 15 , the condition (23) takes place. Therefore, it is possible to use the model U 5 for FSM S 1 . Therefore, let us design the FSM U 5 ( S 1 ) .
Let us execute the state assignment allowing a reduction to the numbers of elements in the sets Φ k Φ . One of the possible solutions is shown in Figure 7.
Using Figure 7 and sets A 1 A 3 gives the sets Φ 1 Φ 3 . They are the following: Φ 1 = { D 2 , D 3 , D 4 } , Φ 2 = { D 1 , D 2 , D 4 } and Φ 3 = Φ .
Using Table 1 and codes form Figure 7, we can construct the direct structure table of FSM U 5 ( S 1 ) . It is Table 4. To construct the transformed DST, it is necessary to find codes C ( F h ) and C ( F k ) .
Let us construct the sets Y E , ϕ E , Y L and Φ L . To do it, we should find the value of Δ t . There are R H = 5 and t F = 7 . Using (30) gives Δ t = 2 . We should eliminate functions D r Φ and y n Y which belong to K corresponding sets. In the discuss case, there is D 2 , D 4 Φ 1 Φ 2 Φ 3 . Therefore, let us form the sets Φ E = { D 2 , D 4 } and Φ L = { D 1 , D 3 } . Obviously, there are Y E = Ø and Y L = Y . Now, we have the sets Φ L 1 = { D 3 } , Φ L 2 = { D 1 } and Φ L 3 = { D 1 , D 3 } . Of course, there are the sets Y L 1 = Y 1 , Y L 2 = Y 2 and Y L 3 = Y 3 .
Let us construct the systems of Boolean functions shoving dependence of functions D r k Φ L k and y n k Y L k on the terms F h F k ( k { 1 , , K } ) . To do it, we use the DST (Table 4) and classes F k Π F . We could find the following systems:
D 3 1 = F 8 F 11 ; y 1 1 = F 1 F 11 F 15 ; y 2 1 = F 1 F 3 F 8 ; y 5 1 = F 13 F 8 ; y 9 1 = F 12 ; y 10 1 = F 12 F 15 .
D 1 2 = F 4 F 13 F 14 , F 18 , F 19 ; y 1 2 = F 13 ; y 4 2 = F 4 F 14 F 18 ; y 7 2 = F 7 F 13 F 19 ; y 11 2 = F 4 F 18 .
D 1 3 = F 6 v e e F 9 ; D 3 3 = F 6 F 9 F 16 F 17 y 3 3 = F 2 F 6 F 10 F 17 ; y 6 3 = F 5 F 9 ; y 8 3 = F 6 F 10 ; y 9 3 = F 16 .
Let us encode the terms F h F k in such a manner that there is minimum number of literals in systems (46) and (48). We could get codes shown in Figure 8.
Using the system (46) and Karnaugh map (Figure 8a), we could form the following system:
D 3 1 = z 2 ¯ z 3 ¯ ; y 1 1 = z 1 ; y 2 1 = z 1 ¯ z 3 ¯ z 2 ; y 5 1 = z 1 ¯ z 3 ¯ ; y 9 1 = z 1 ¯ z 3 ; y 10 1 = z 3 .
The system (49) represents the circuit of LUTer1. It includes 4 LUTs and has 9 interconnections with the EMB.
Using the system (47) and Karnaugh map (Figure 8b), we could form the following system:
D 1 2 = z 3 z 2 z 3 ¯ ; y 1 2 = z 1 z 2 ; y 4 2 = z 3 ; y 7 2 = z 1 ¯ z 3 ¯ z 1 z 2 ; y 11 2 = z 1 ¯ z 3 .
The system (50) represents the circuit of LUTer2. It includes 4 LUTs and has 9 interconnections with the EMB.
Using the system (49) and Karnaugh map (Figure 8c), we could form the following system:
D 1 3 = z 1 ¯ z 3 ; D 3 3 = z 3 ; y 3 3 = z 2 ¯ ; y 6 3 = z 1 ¯ z 2 ; y 8 3 = z 1 ¯ z 2 ¯ z 3 z 1 z 3 ¯ ; y 9 3 = z 1 z 2 .
The system (51) represents the circuit of LUTer3. It includes 5 LUTs and has 10 interconnections with the EMB.
Let us encode the classes F k Π F as the following: C ( F 1 ) = 00 , C ( F 2 ) = * 1 and C ( F 3 ) = 1 * . It gives the conjunctions V 1 = v 1 ¯ v 2 ¯ , V 2 = v 2 and V 3 = v 1 . Using these codes and Equations (49) and (51), we could find the systems (36) and (37). They are the following:
D 1 = v 2 D 1 2 v 1 D 1 3 ; L ( D 1 ) = 4 ; D 2 = E M B [ 6 ] ; L ( D 2 ) = 1 ; D 3 = v 1 ¯ v 2 ¯ D 3 1 v 1 D 3 3 ; L ( D 3 ) = 4 ; D 4 = E M B [ 7 ] ; L ( D 4 ) = 1 .
y 1 = v 1 ¯ v 2 ¯ y 1 1 v 2 y 1 2 ; L ( y 1 ) = 4 y 2 = v 1 ¯ v 2 ¯ y 2 1 ; L ( y 2 ) = 3 ; y 3 = v 1 y 3 3 ; L ( y 3 ) = 2 ; y 4 = v 1 y 3 3 ; L ( y 4 ) = 2 ; y 5 = v 1 ¯ v 2 ¯ y 5 1 ; L ( y 5 ) = 3 ; y 6 = v 1 y 6 3 ; L ( y 6 ) = 2 ; y 7 = v 2 y 7 2 ; L ( y 7 ) = 2 ; y 8 = v 1 y 8 3 ; L ( y 8 ) = 2 ; y 9 = v 1 ¯ v 2 ¯ y 9 1 v 1 y 9 3 ; L ( y 9 ) = 4 ; y 10 = v 1 ¯ v 2 ¯ y 10 1 ; L ( y 10 ) = 3 ; y 11 = v 2 y 11 2 ; L ( y 11 ) = 2 .
As follows from the system (52), it is necessary to transform the equations for D 1 and D 3 . But we can escape it using the following approach. There is L ( D 1 2 ) = 2 . Let us multiply it by v 2 . It gives D 1 = v 2 ( z 2 z 2 z 3 ¯ ) . Now, we could represent D 1 as D 1 = D 1 2 v 1 D 1 3 with L ( D 1 ) = 3 . So, now it is enough a single LUT for implementing the function D 1 . The same could be done for y 1 . But it is necessary to apply the rules of functional decomposition for functions D 3 and y 9 . For example, there are two LUTs in the circuit for D 3 (Figure 9).
The equation D 3 is represented as f 1 v 1 D 3 3 , where f 1 = v 1 ¯ v 2 ¯ D 3 1 . The equation for y 9 will be the following: f 2 v 1 y 9 3 . Here f 2 = v 1 ¯ v 2 y 9 1 . Therefore, there are two LUTs in the circuit of y 9 .
To find the systems (16) and (31), it is necessary to transform the DST of Mealy FSM U 5 . To transform the DST, it is necessary to delete the column a s , K ( a s ) , Y h and Φ h . They are replaced by the following columns: C ( F k ) , C ( F h ) , V h , Z h , Y E h and Φ E h . The column V h includes the variables v r V equal to 1 in the code C ( F k ) from the h-th row of transformed DST. The column Z h includes the variables z r Z equal 1 in the code C ( F h ) of the term F h h { 1 , , H } . The column Y E h includes the functions y n Y E generated during the h-th transition of FSM. The column Φ E h contains the variables D r Φ E equal to 1 in the h-row of initial DST. In the discussed case, there is Y E = Ø . So, the column Y E h is absent in the transformed table of Mealy FSM U 5 ( S 1 ) (Table 5).
To implement the functions Z ( T , X ) , V ( T , X ) , Φ E T , X and Y E ( T , X ) , it is necessary to construct the table of EMB. It contains the following columns: K ( a m ) , X, Z, V, Φ E , Y E , q. The addresses of cells are determined by concatenations of K ( a m ) and X. The table includes H E rows:
H E = 2 L + R .
It is necessary H ( a m ) rows to represent transitions from a state a m A , where
H ( a m ) = 2 L .
Using (54) and (55) gives H E = 2048 and H ( a m ) = 128 for U 5 ( S 1 ) . The first 8 rows of table of EMB is shown in Table 6. These rows represent transitions from the state a 1 . There is x 1 = 0 for these rows. Therefore, these 8 rows correspond to h = 2 from Table 5. Due to Y e = Ø , we do not show the column Y E in Table 5.

7. Experimental Results

To investigate the efficiency of proposed method, we use standard benchmarks from the library [11]. The library includes 48 benchmarks taken from the design practice. The benchmarks are rather simple, but they are very often used by different studies to compare new and known results [26]. The benchmarks are represented in KISS2 format. The characteristics of benchmarks are shown in Table 7.
We used our CAD tool K2F [26] to translate KISS2 –based files into VHDL-based FSM models. Next, the Active-HDL environment was used to synthesize and simulate FSMs. To get FSM circuits, we used Xilinx CAD tool Vivado [27]. The FPGA chip XC7VX690TFFG1761-2 by Vertex-7 [28] was used as a target platform. The chip includes LUTs with 6 inputs and EMBs with configurations from 15 , 1 till 9 , 64 .
We presume that only a single EMB is available to implement an FSM circuit. As follows from Table 7, the condition (7) takes place for 33 benchmark FSMs (it is around 68% from all benchmarks). Therefore, it is necessary only a single EMB to implement an FSM circuit for these benchmarks. We mark this situation by the sign “+” in the column “EMB” of Table 7. Also, we show in this column pairs S A , t F corresponding to the configuration required to implement the circuit with a single EMB. The further research was conducted for these 15 benchmarks.
Three discussed methods ( U 1 , U 3 and U 4 ) were taken to compare with our approach ( U 5 ). The results are shown in Table 8 (the number of LUTs in FSM circuits), Table 9 (the operating frequency) and Table 10 (the consumed energy). To design FSM U 1 , a single EMB was used to implement a part of FSM circuit. We do not know which part of a circuit was implemented as an EMB. It is up to Vivado and cannot be directly specified by a designer.
Table 8, Table 9 and Table 10 are organized in the same order. The rows are marked by the names of benchmarks, the columns by design methods. The rows “Total” include results of summation for values from corresponding columns. The summarized characteristics of U 5 -based FSMs are taken as 100%. The rows “Percentage” show the percentage of summarized characteristics respectively to U 5 -based benchmarks. To design all circuits, we use the mode AUTO of Vivado.
As follows from Table 8, the U 5 -based FSMs require fewer LUTs than their counterparts based on other FSM models. There is the following economy: (1) 23% regarding U 1 ; (2) 4% regarding U 3 ; (3) 45% regarding U 4 . Therefore, for these benchmarks the U 4 -based FSMs require the largest number of LUTs. It is connected with the fact that the condition (20) is violated for all considered U 4 -based benchmarks. It results in multi-level circuits implementing functions (17) and (18).
As follows from Table 9, the U 5 -based FSMs have the highest operating frequency as compared to other investigated FSMs. We think that this is due to the smaller number of logic levels and inter-level connections compared to other investigated FSMs. But we cannot prove this statement because Vivado does not show these details about implemented circuits. There is the following gain in operating frequency: (1) 32.6% regarding U 1 ; (2) 44.3% regarding U 3 ; (3) 27.8% regarding U 4 . The lowest frequency takes place for U 3 –-based FSMs. It is connected with rather big amount of inputs. Because L + R > > S L , the circuit of LUTerP is multi-level. For discussed benchmarks, the number of logic levels in U 3 -based FSMs is higher than it is for FSMs produced by other investigated methods.
As follows from Table 10, the U 5 -based FSMs consume less energy than their counterparts based on other FSM models. There is the following economy: (1) 39.8% regarding U 1 ; (2) 51% regarding U 3 ; (3) 11.4% regarding U 4 . It is connected with the fact that U 5 -based FSM circuits have fewer LUTs and, therefore, interconnections compared to other investigated FSMs. Interconnections are known to be responsible for up to 70% of energy losses in FPGA-based circuits [26]. The results shown in Table 10 include the total power value in Watts. It should be noted that the total power consists of individual powers such as: static power, I/O, signals, LUT as Logic, F7/F8 Muxes, BUFG, registers and others. Furthermore, the frequency has a very strong impact to the power consumption.
Therefore, our approach produces better results for FSMs whose circuits cannot be implemented as a single EMB. Of course, this conclusion is true only for the benchmarks [11] and the device XC7VX690TFFG1761-2. It is almost impossible to make similar conclusion for the general case.

8. Conclusions

Contemporary FPGA devices include a lot of look-up table elements. It allows the implementation of very complex digital system using only a single chip. But LUTs have rather small amount of inputs ( S L does not exceeds 6). This value is considered to be optimal [6]. Such a limitation leads multi-level circuits representing, for example, sequential blocks of digital systems. To design multi-level circuits, the methods of functional decomposition are used. But these blocks can be synthesized using different methods of structural decomposition. As our studies [26] show, the structural decomposition can lead to FSM circuits with better characteristics than their counterparts based on functional decomposition.
The aim of this article is a presentation of a novel method of logic synthesis targeting Mealy FSMs implemented with LUTs and a configurable EMB. It is the method of structural decomposition based on encoding of product terms of Boolean functions representing FSM logic circuits. The essence of our approach is a splitting of the set of terms in a way minimizing the number of LUTs in FSM circuits. The proposed method is technology depended because it takes into account the number of inputs of LUT elements.
The experiments conducted using the Xilinx CAD tool Vivado 2019.1 clearly show that the proposed approach leads to reduction for such values as the number of LUTs, propagation time and consumed energy in comparison with FSM circuits based on known methods of terms encoding.
There are three directions in our future research. The first is connected with development design methods targeting FPGA chips of Intel (Altera). The second direction is connected with using our approach in real devices such as PDMS micro-optofluidic chip [29,30]. The last direction targets sequential blocs represented by Moore FSMs.

Author Contributions

Conceptualization, analysis of FPGA-based design methods, A.B., L.T.; the design methodology, M.M.; the algorithm of finding the partition for the set of FSM terms, investigations, K.K. All authors have read and agreed to the published version of the manuscript.

Funding

This research received no external funding.

Conflicts of Interest

The authors declare no conflict of interest.

Abbreviations

The following abbreviations are used in this manuscript:
BIMFblock of input memory functions
BOFblock of output functions
COFcollection of output functions
DSTdirect structure table
EMBembedded memory block
FSMfinite state machine
FPGAfield-programmable gate array
LUTlook-up table
SBFsystems of Boolean functions
SOPsum-of-products
STTstate transition table

References

  1. Monmasson, E.; Cirstea, M. FPGA design methodology for industrial control systems—A review. IEEE Trans. Ind. Electron. 2007, 54, 1824–1842. [Google Scholar] [CrossRef]
  2. Gajski, D.; Abdi, S.; Gerstlauer, A.; Schirner, G. Embedded System Design: Modeling, Synthesis and Verification; Springer: New York, NY, USA, 2009; pp. 35–47. [Google Scholar]
  3. Sklyarov, V.; Skliarova, I.; Barkalov, A.; Titarenko, L. Synthesis and Optimization of FPGA-Based Systems; Lecture Notes in Electrical Engineering; Springer: Chem, Switzerland, 2014; pp. 89–142. [Google Scholar]
  4. Czerwinski, R.; Kania, D. Finite State Machine Logic Synthesis for Complex Programmable Logic Devices; Lecture Notes in Electrical Engineering; Springer: Berlin/Heidelberg, Germany, 2014; pp. 9–23. [Google Scholar]
  5. El-Maleh, A.H. A probabilistic pairwise swap search state assignment algorithm for sequential circuit optimization. Integr. VLSI J. 2017, 56, 32–43. [Google Scholar] [CrossRef]
  6. Kuon, I.; Tessier, R.; Rose, J. FPGA Architecture: Survey and Challenges. Found. Trends Electron. Des. Autom. 2008, 2, 135–253. [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] [Green Version]
  8. Grout, I. Digital Systems Design with FPGAs and CPLDs; Elsevier: Amsterdam, The Netherlands, 2011; pp. 43–121. [Google Scholar]
  9. Krzywicki, K.; Barkalov, A.; Andrzejewski, G.; Titarenko, L.; Kolopienczyk, M. SoC research and development platform for distributed embedded systems. Prz. Elektrotechniczny 2016, 92, 262–265. [Google Scholar] [CrossRef] [Green Version]
  10. Barkalov, A.; Titarenko, L.; Kolopienczyk, M.; Mielcarek, K.; Bazydlo, G. Logic Synthesis for FPGA-Based Finite State Machines; Springer: Chem, Switzerland, 2015; pp. 2–31. [Google Scholar]
  11. McElvain, K. LGSynth93 Benchmark; Mentor Graphics: Wilsonville, OR, USA, 1993. [Google Scholar]
  12. Krzywicki, K.; Barkalov, A.; Andrzejewski, G.; Titarenko, L.; Kolopienczyk, M. CloudBus protocol hardware multi-converter gateway for distributed embedded systems. In Proceedings of the 24th International Conference Mixed Design of Integrated Circuits and Systems (MIXDES 2017), Bydgoszcz, Poland, 22–24 June 2017; pp. 549–552. [Google Scholar]
  13. Barkalov, A.; Titarenko, L.; Andrzejewski, G.; Krzywicki, K.; Kolopienczyk, M. Fault detection variants of the CloudBus protocol for IoT distributed embedded systems. Adv. Electr. Comput. Eng. 2017, 17, 3–10. [Google Scholar] [CrossRef]
  14. Swift, G.M.; Stone, S.E.; Garcia, S.E.; Wray, K.W.; Rowe, W.J.; Pfau, K.H.; Liu, R.; Holden, J.; Angeles, A.; Willits, B.L.; et al. Dynamic SEE Testing of Selected Architectural Features of Xilinx 28 nm Virtex-7 FPGAs. In Proceedings of the 17th European Conference on Radiation and Its Effects on Components and Systems (RADECS), Geneva, Switzerland, 2–6 October 2017; pp. 1–6. [Google Scholar]
  15. Farooq, U.; Marrakchi, Z.; Mehrez, H. FPGA architectures: An overview. In Tree-Based Heterogeneous FPGA Architectures; Springer: New York, NY, USA, 2012; pp. 7–48. [Google Scholar]
  16. Yiyu, T.; Inoguchi, Y.; Otani, M.; Iwaya, Y.; Tsuchiya, T. A Real-time sound field rendering processor. Appl. Sci. 2018, 8, 35. [Google Scholar] [CrossRef] [Green Version]
  17. Barkalov, A.; Titarenko, L.; Mielcarek, K.; Chmielewski, S. Logic Synthesis for FPGA-Based Control Units; Lecture Notes in Electrical Engineering; Springer: Chem, Switzerland, 2019; pp. 118–146. [Google Scholar]
  18. Mishchenko, A.; Brayton, R.; Jiang, J.-H.R.; Jang, S. Scalable don’t-care-based logic optimization and resynthesis. ACM Trans. Reconfigurable Technol. Syst. 2011, 4, 1–23. [Google Scholar] [CrossRef]
  19. Scholl, C. Functional Decomposition with Application to FPGA Synthesis; Springer: Dordrecht, The Netherlands, 2013; pp. 1–53. [Google Scholar]
  20. Rawski, M.; Luba, T.; Jachna, Z.; Tomaszewicz, P. The influence of functional decomposition on modern digital design process. In Design of Embedded Control Systems; Springer: Boston, MA, USA, 2005; pp. 193–203. [Google Scholar]
  21. Rawski, M.; Selvaraj, H.; Łuba, T. An application of functional decomposition in ROM-based FSM implementation in FPGA devices. J. Syst. Archit. 2005, 51, 423–434. [Google Scholar] [CrossRef]
  22. Chattopadhyay, S. Area conscious state assignment with flip-flop and output polarity selection for finite state machines synthesis—A genetic algorithm. Comput. J. 2005, 48, 443–450. [Google Scholar] [CrossRef]
  23. Testa, E.; Amaru, L.; Soeken, M.; Mishchenko, A.; Vuillod, P.; Luo, J.; Casares, C.; Gaillardon, P.-E.; De Micheli, G. 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]
  24. Karatkevich, A.; Wiśniewski, R. A polynomial-time algorithm to obtain state machine cover of live and safe Petri nets. IEEE Trans. Syst. Man Cybern. Syst. 2019, 1–6. [Google Scholar] [CrossRef]
  25. Garcia, P.; Bhowmik, D.; Stewart, R.; Michaelson, G.; Wallace, A. Optimized memory allocation and power minimization for FPGA-based image processing. J. Imaging 2019, 5, 7. [Google Scholar] [CrossRef] [Green Version]
  26. 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: Chem, Switzerland, 2020; Volume 636. [Google Scholar]
  27. Vivado Design Suite User Guide: High-Level Synthesis; UG902 (v2019.1); Xilinx, Inc.: San Jose, CA, USA, 2019.
  28. VC709 Evaluation Board for the Virtex-7 FPGA User Guide; UG887 (v1.6); Xilinx, Inc.: San Jose, CA, USA, 2019.
  29. Cairone, F.; Gagliano, S.; Carbone, D.C.; Recca, G.; Bucolo, M. Micro-optofluidic switch realized by 3D printing technology. Microfluid. Nanofluid. 2016, 20, 61–71. [Google Scholar] [CrossRef]
  30. Cariow, A.; Cariowa, G.; Majorkowska-Mech, D. An Algorithm for Quaternion–Based 3D Rotation. Int. J. Appl. Math. Comput. Sci. 2020, 30, 149–160. [Google Scholar]
Figure 1. Structural diagram of Mealy FSM U 1 .
Figure 1. Structural diagram of Mealy FSM U 1 .
Applsci 10 02762 g001
Figure 2. Structural diagram of LUT-based FSM U 1 .
Figure 2. Structural diagram of LUT-based FSM U 1 .
Applsci 10 02762 g002
Figure 3. Structural diagram of Mealy FSM U 2 .
Figure 3. Structural diagram of Mealy FSM U 2 .
Applsci 10 02762 g003
Figure 4. Structural diagram of Mealy FSM U 3 .
Figure 4. Structural diagram of Mealy FSM U 3 .
Applsci 10 02762 g004
Figure 5. Structural diagram of Mealy FSM U 4 .
Figure 5. Structural diagram of Mealy FSM U 4 .
Applsci 10 02762 g005
Figure 6. Structural diagram of Mealy FSM U 5 .
Figure 6. Structural diagram of Mealy FSM U 5 .
Applsci 10 02762 g006
Figure 7. State codes for Mealy FSM U 5 ( S 1 ) .
Figure 7. State codes for Mealy FSM U 5 ( S 1 ) .
Applsci 10 02762 g007
Figure 8. Codes of terms of Mealy FSM U 5 ( S 1 ) . System (46)—(a), (47)—(b), (48)—(c).
Figure 8. Codes of terms of Mealy FSM U 5 ( S 1 ) . System (46)—(a), (47)—(b), (48)—(c).
Applsci 10 02762 g008
Figure 9. Implementing the function D 3 .
Figure 9. Implementing the function D 3 .
Applsci 10 02762 g009
Table 1. State transition table of Mealy FSM S 1 .
Table 1. State transition table of Mealy FSM S 1 .
a m a s X h Y h h
a 1 a 2 x 1 y 1 y 2 1
a 1 a 3 x 1 ¯ y 3 2
a 2 a 3 x 2 y 2 y 5 3
a 2 a 5 x 2 ¯ x 3 y 4 y 11 4
a 2 a 2 x 2 ¯ x 3 ¯ y 6 5
a 3 a 6 1 y 3 y 8 6
a 4 a 2 x 3 y 7 7
a 4 a 7 x 3 ¯ y 2 y 5 8
a 5 a 8 1 y 6 9
a 6 a 2 x 4 y 3 y 8 10
a 6 a 11 x 4 ¯ y 1 11
a 7 a 1 1 y 9 y 10 12
a 8 a 19 x 5 y 1 y 7 13
a 8 a 10 x 5 ¯ y 4 14
a 9 a 4 x 6 y 1 y 10 15
a 9 a 11 x 6 ¯ y 9 16
a 10 a 7 1 y 3 17
a 11 a 12 1 y 4 y 11 18
a 12 a 10 x 7 y 7 19
a 12 a 1 x 7 ¯ 20
Table 2. Table of replacement X P .
Table 2. Table of replacement X P .
p g p 1 p 2 K ( a m )
a m
a 1 x 1 -0000
a 2 x 2 x 3 0001
a 3 --0010
a 4 - x 3 0011
a 5 --0100
a 6 x 4 -0101
a 7 --0110
a 8 - x 5 0111
a 9 x 6 1000
a 10 --1001
a 11 --0101
a 12 x 7 -0011
Table 3. The constructing the partition Π F .
Table 3. The constructing the partition Π F .
h N ( F h ) BE1I/IIBE2I/II
12345123456
12
21 −1−1−1−1−1 −1−1−1/−1/0−1−1
32 00/0 +
42 −2−2−2−2−2
51 −1−1−1−1−1 −1−1−1/−1/0−1−1
62 −2−2−2−2−2 −2−2−2−2/−2−2
71 −1−1−1−1−1 −1−1−1−1/01 +
82 00/02 +
91 −1−1−1−1−1 −1−1−1−1/0−1−1
102 −2−2−2−2−2 −2−2−2−2−2−2
111 1 +
122 −2−2−2−20/0 +
132 00/000/00/0 −2−2−2−200 +
141 −1−1−1−1−1 11 +
152 0000/1 +
161 −1−1−1−1−1 −1−1−1−1/0−1−1
171 −1−1−1−1−1 −1−1−1−1/0−1−1
182 −2−2−2−2−2 2 +
191 −1−1−1−1−1 −1−1−1−1/1 +
200 00/000/00/0 000 +
F k F 1 F 11 F 3 F 8 F 15 F 12 F 4 F 18 F 14 F 20 F 19 F 7 F 13
Y k y 1 , y 2 , y 5 , y 9 , y 10 y 1 , y 4 , y 7 , y 11
A k a 1 , a 2 , a 3 , a 4 , a 7 a 11 a 2 , a 5 , a 10 , a 12
Table 4. DST of Mealy FSM U 5 ( S 1 ) .
Table 4. DST of Mealy FSM U 5 ( S 1 ) .
a m K ( a m ) a s K ( a s ) X h Y h Φ h h
a 1 0000 a 2 0100 x 1 y 1 y 2 D 2 1
a 3 0001 x 1 ¯ y 3 D 4 2
a 2 0100 a 3 0001 x 2 y 2 y 5 D 4 3
a 5 1100 x 2 ¯ x 3 y 4 y 11 D 1 D 2 4
a 2 0100 x 2 ¯ x 3 ¯ y 6 D 2 5
a 3 0001 a 6 11101 y 3 y 8 D 1 D 2 D 3 6
a 4 0101 a 2 0100 x 3 y 7 D 2 7
a 7 0010 x 3 ¯ y 2 y 5 D 3 8
a 5 1100 a 8 10101 y 6 D 1 D 3 9
a 6 1110 a 2 0100 x 4 y 3 y 8 D 2 10
a 11 0110 x 4 ¯ y 1 D 2 D 3 11
a 7 0010 a 1 00001 y 9 y 10 12
a 8 1010 a 9 1101 x 5 y 1 y 7 D 1 D 2 D 4 13
a 10 1000 x 5 ¯ y 4 D 1 14
a 9 1101 a 4 0101 x 6 y 1 y 10 D 2 D 4 15
a 11 0110 x 6 ¯ y 9 D 2 D 3 16
a 10 1000 a 7 00101 y 3 D 3 17
a 11 0110 a 12 10011 y 4 y 11 D 1 D 4 18
a 12 1001 a 10 1000 x 7 y 7 D 1 19
a 1 0000 x 7 ¯ 20
Table 5. Transformed DST of Mealy FSM U 5 ( S 1 ) .
Table 5. Transformed DST of Mealy FSM U 5 ( S 1 ) .
a m K ( a m ) C ( F k ) C ( F h ) V h Z h Φ E h h X h
a 1 000000110 z 1 z 2 D 2 1 x 1
*1000 v 2 D 4 2 x 1 ¯
a 2 010000010 z 2 D 4 3 x 2
1*001 v 1 z 3 D 2 4 x 2 ¯ x 3
*1010 v 2 z 2 D 2 5 x 2 ¯ x 3 ¯
a 3 0001*1001 v 2 z 3 D 2 61
a 4 01011*000 v 1 D 2 7 x 3
00011 z 2 z 3 8 x 3 ¯
a 5 1100*1011 v 2 z 2 z 3 91
a 6 1110*1100 v 2 z 1 D 2 10 x 4
00100 z 1 D 2 11 x 4 ¯
a 7 001000001 z 3 121
a 8 10101*110 v 1 z 1 z 2 D 2 D 4 13 x 5
1*101 v 1 z 1 z 3 14 x 5 ¯
a 9 110100101 z 1 z 3 D 2 D 4 15 x 6
*1111 v 2 z 1 z 2 z 3 D 2 16 x 6 ¯
a 10 1000*1101 v 2 z 1 z 3 3 171
a 11 01101*011 v 1 z 2 z 3 D 4 181
a 12 10011*010 v 1 z 2 19 x 7
1*100 v 1 z 1 20 x 7 ¯
Table 6. Part of table of EMB of Mealy FSM U 5 ( S 1 )
Table 6. Part of table of EMB of Mealy FSM U 5 ( S 1 )
K ( a m ) XZV Φ E q
T 1 T 2 T 3 T 4 x 1 x 2 x 3 x 4 x 5 x 6 x 7 z 1 z 2 z 3 v 1 v 2 D 2 D 4
0000000000000001011
0000000000100001012
0000000001000001013
0000000001100001014
0000000010000001015
0000000010100001016
0000000011000001017
0000000011100001018
Table 7. Characteristics of Mealy FSM benchmarks.
Table 7. Characteristics of Mealy FSM benchmarks.
BenchmarkLNH/ R H M/REMB
bbara4260/610/4+
bbsse7756/616/4+
bbtas2224/56/3+
beecount3428/57/3+
cse7791/716/4+
dk143556/67/3+
dk153532/54/2+
dk1623108/727/5+
dk172332/58/3+
dk271214/47/3+
dk5121315/415/4+
donfile2196/724/5+
ex1919138/820/5<14, 19>
ex22272/719/5+
ex32236/610/4+
ex46921/514/4+
ex52232/59/4+
ex65834/68/3+
ex72236/610/4+
keyb77170/819/5+
kirkman126370/916/4<16,6>
lion2111/44/2+
lion92125/59/4+
mark151622/515/4+
mc3510/44/2+
modulo121124/512/4+
opus5622/510/4+
planet719115/748/6<13,19>
planet1719115/748/6<13,19>
pma8873/724/5<13,8>
s187106/720/5<13,7>
s1488819251/848/6<14,19>
s1494819250/848/6<14,19>
s1a84107/720/5+
s208112153/818/5<16,2>
s274134/66/3+
s298361096/11218/8+
s3867764/613/4+
s420192137/818/5<24,2>
s51019777/747/6<25,7>
s84120/55/3+
s8201819232/825/5<23,19>
s8321819245/825/5<23,19>
sand119184/832/5<16, 9>
shiftreg1116/48/3+
sse7756/616/4+
styr910166/830/5<14,10>
tma7844/620/5+
Table 8. Results of experiments (the number of LUTs).
Table 8. Results of experiments (the number of LUTs).
Benchmark U 1 U 3 U 4 U 5
ex122194836
kirkman30262711
planet21165138
planet121165138
pma28232714
s126232412
s148824215237
s149428245039
s208292387
s420383687
s51039362215
s82040344736
s83241344735
sand27232916
styr26203118
Total440374522359
Percentage123%104%145%100%
Table 9. Results of experiments (the operating frequency, MHz).
Table 9. Results of experiments (the operating frequency, MHz).
Benchmark U 1 U 3 U 4 U 5
ex1141.43105.78158.28212.93
kirkman125.78107.81155.11174.73
planet122.01105.41124.31187.95
planet1122.01105.41124.31187.95
pma115.41114.49127.65186.22
s1124.49117.80132.85178.84
s1488127.80112.79131.77186.37
s1494122.79124.92135.73181.62
s208144.92128.04144.05209.36
s420148.04112.66152.65192.14
s510122.66111.42138.75192.87
s820121.4288.65133.36163.18
s83298.65115.57100.53184.69
sand135.57104.68146.78178.65
styr114.68116.47115.69181.22
Total1887.661671.902021.822798.72
Percentage67.4%59.7%72.2%100%
Table 10. Results of experiments (the consumed energy, Watts).
Table 10. Results of experiments (the consumed energy, Watts).
Benchmark U 1 U 3 U 4 U 5
ex13.5603.2903.0142.918
kirkman4.9223.5622.8112.476
planet3.2223.7561.7271.527
planet13.2223.7561.7271.527
pma4.7784.9154.2573.683
s13.6943.8133.5783.058
s14881.5862.4121.4491.785
s14941.7302.3981.4531.302
s2083.0053.5442.5742.248
s4201.6043.3841.5431.292
s5101.8831.9961.8781.682
s8202.4652.1611.7561.843
s8322.5152.5042.1931.732
sand2.5792.5782.3852.017
styr1.4671.5561.3071.112
Total42.23245.62533.65230.202
Percentage139.8%151%111.4%100%

Share and Cite

MDPI and ACS Style

Barkalov, A.; Titarenko, L.; Mazurkiewicz, M.; Krzywicki, K. Encoding of Terms in EMB-Based Mealy FSMs. Appl. Sci. 2020, 10, 2762. https://doi.org/10.3390/app10082762

AMA Style

Barkalov A, Titarenko L, Mazurkiewicz M, Krzywicki K. Encoding of Terms in EMB-Based Mealy FSMs. Applied Sciences. 2020; 10(8):2762. https://doi.org/10.3390/app10082762

Chicago/Turabian Style

Barkalov, Alexander, Larysa Titarenko, Małgorzata Mazurkiewicz, and Kazimierz Krzywicki. 2020. "Encoding of Terms in EMB-Based Mealy FSMs" Applied Sciences 10, no. 8: 2762. https://doi.org/10.3390/app10082762

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