Download as pdf or txt
Download as pdf or txt
You are on page 1of 16

Received April 2, 2018, accepted May 1, 2018, date of publication May 15, 2018, date of current version June

29, 2018.
Digital Object Identifier 10.1109/ACCESS.2018.2836858

INVITED PAPER

Dynamic Partial Reconfiguration of Concurrent


Control Systems Specified by Petri Nets and
Implemented in Xilinx FPGA Devices
REMIGIUSZ WIŚNIEWSKI , (Member, IEEE)
Institute of Electrical Engineering, University of Zielona Góra, 65-417 Zielona Gora, Poland
Corresponding author: r.wisniewski@iee.uz.zgora.pl

ABSTRACT This paper proposes a novel design concept of concurrent control systems specified by
interpreted Petri nets and implemented in Xilinx FPGA devices. The technique is oriented on further dynamic
partial reconfiguration of the system. An adequate splitting algorithm of the system into the dynamic
(reconfigurable) and static (non-reconfigurable) partitions is proposed. The main advantage of the presented
idea is the possibility of the dynamic reconfiguration of the already implemented system. It means that the
functionality of the selected component (module) of the controller can be changed, while the rest of the
system is still running. The presented technique is illustrated by a real-life case-study example, and it has
been verified experimentally with the application of Xilinx FPGA device.

INDEX TERMS Dynamic partial reconfiguration, FPGA, concurrent controllers, Petri nets, decomposition.

I. INTRODUCTION are clear and well written [7], they cannot be directly applied
The idea of dynamic partial reconfiguration of the Field Pro- to the universal prototyping method for the concurrent logic
grammable Gate Arrays (FPGAs) is becoming very popular controllers. Such systems are able to execute multiple oper-
nowadays [1]–[7]. This technique allows replacement of a ations at the same time [2], [11]. Therefore, an adequate
part of the already implemented system without the stopping design flow ought to be applied, strictly dedicated to such
of the device [1], [2]. In other words, the functionality of the controllers [2].
selected components of the system can be modified while Another important problem that has to be solved by the
the rest of the controller is still working. It is especially designer concerns the proper selection of a reconfigurable
applicable in the case of concurrent controllers executing partition of the system. Such a partition should be selected
crucial operations that cannot be interrupted. Thus, despite carefully, since it can be reconfigured only if it is not per-
the primary under-exploitation in the industrial control forming any action. Moreover, the designer must pay atten-
systems [8], the dynamic partial reconfiguration can be tion to those operations of the controller that are executed
found in the field of wireless telecommunication systems [1], concurrently with the reconfigurable part, in order to avoid
virtualized hardware cloud accelerators [3], automotive malfunctions in the system.
industry [4], medicine [5], aero-space [6], or even The above restrictions make prototyping of concurrent
cryptology [9], [10]. Particularly, let us recall the Australian controllers oriented for further dynamic partial reconfigura-
FedSat satellite [6], where dynamic partial reconfiguration tion especially hard to handle. Let us now briefly summarize
was used in order to redefine the particular subsystems the most popular design techniques of such systems.
without stopping of the device. Another interesting example The prototyping method for dynamically reconfigurable
is described in [9], where the reconfigurable hardware crypto- embedded microprocessors is presented in [12]. The idea
processor oriented for solving security tasks is presented. is based on Unified Modelling Language (UML), which is
used to create a specification of the system. Furthermore,
A. PARTIAL RECONFIGURATION OF the technique employs the dedicated Xilinx tool (particularly
CONCURRENT CONTROLLERS Xilinx Embedded Development Kit, EDK) for automatic
Although the guidelines for the dynamic partial reconfigura- transformation of the controller into hardware description
tion of Xilinx FPGAs (which we shall follow in the paper) languages (HDLs) code. Unfortunately, the method is limited
2169-3536
2018 IEEE. Translations and content mining are permitted for academic research only.
32376 Personal use is also permitted, but republication/redistribution requires IEEE permission. VOLUME 6, 2018
See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
R. Wiśniewski: Dynamic Partial Reconfiguration of Concurrent Control Systems

to the embedded microprocessors only, and other components synchronization between the top-level and macroplaces needs
of the system cannot be dynamically reconfigured. A sim- to be assured.
ilar technique is shown in [13], where Xilinx EDK is used A methodology used to design Petri-net based systems
to automate the generation of the HDL codes. However, for implementation in the reconfigurable hardware is also
the method additionally uses transformations between UML proposed in [19]. A specification of the system is expressed
models (with the use of Gaspard 2 framework) which causes by means of dynamic modifiable high-level (DMHL) Petri
the serious limitations and restrictions. nets. The proposed design flow consists of three stages: mod-
The UML language is also used in [14], where the authors eling, analysis/partitioning, and synthesis. The great benefit
clearly indicate that the lack of the design flows discourage of this approach relies on a formal model, which is used in all
designers from adopting the reconfigurable computing tech- design phases. Unfortunately, the proposed method requires
nology. The proposed design flow is split into three phases, the specific design methodology which is enforced by the
namely: design and implementation of the system software application of DMHL Petri nets.
model, hardware synthesis and software synthesis. The inputs
are the C++ code and UML 2.0 diagrams (class, sequence B. OUR CONTRIBUTION
and state machine diagrams) built with the Rhapsody 5.0 tool. In the paper we propose a novel design method for concurrent
The general idea of partial reconfiguration of controllers controllers specified by an interpreted Petri net. The tech-
specified by Petri nets is presented in [15]. The method is nique is oriented on the further dynamic partial reconfigura-
based on the decomposition of the net into state machine tion of the system. The main idea relies on the splitting of the
components that are further modeled in hardware descrip- controller into the dynamic (reconfigurable) and static (non-
tion languages. Unfortunately, the description of the recon- reconfigurable) partitions. Such a division can be seen as a
figuration process is very general, giving no details, or two-stage technique. Firstly, the system is decomposed into
algorithms. Furthermore, the applied reconfiguration method- the sequential modules. Next, one of the achieved modules is
ology (difference-based technique) is obsolete and cannot be once more decomposed, in order to obtain the dynamic part
applied to today’s FPGAs. of the system which can be reconfigured on-the-fly. In other
The implementation of a fuzzy logic controller on the words, the functionality of this partition can be exchanged
reconfigurable FPGA system is demonstrated in [16]. It pro- without the stopping of the physical device. The complete
poses the integrated development environment FADIS (Fuzzy prototyping methodology is presented in the paper. All the
logic controller Automatic Design and Implementation Sys- steps required to apply the proposed technique are explained
tem), which supports the design and implementation phase. in detail. Finally, the results of the experimental verification
The VHDL (Very High Speed Integrated Circuits Hardware are shown and discussed.
Description Language) code is automatically generated from Let us point out that the presented idea is a signif-
the design specification of the hardware structure. Addition- icant enhancement of the previous works published by
ally, FADIS system performs operations such as synthesis, authors [2], [20], [22]. In [20] the general prototyping
optimization, placement and routing, generation of the hard- technique of the concurrent control system specified by an
ware objects, downloading, data transfer and monitoring of interpreted Petri net was proposed. However, the partial
the control action. Thus, the whole prototyping flow strongly reconfiguration aspects were not considered in the paper.
depends on third-party synthesis and implementation tools. Such concepts were initially presented in [2] and [21], but
Another interesting approach is proposed in [17], where both methods have serious restrictions. The idea shown
Temporal Petri nets are applied as a specification of the logic in [21] is limited to static partial reconfiguration, while the
controller. The system is split into two parts: fixed logic area technique proposed in [2] describes general ideas, without
(FLA) and reconfigurable logic area (RLA). The first one presenting a formal splitting algorithm, or a complete syn-
describes the static (non-reconfigurable) components of the chronization of the remaining parts of the system. Finally,
controller and additionally holds the reconfiguration control the technique proposed in [22] is restricted to controllers
(called schedule) sub-system. Although the idea seems to be specified by the UML and it cannot be applied to systems
promising and interesting, it affects major modification to the based on Petri nets, since prototyping flows are totally differ-
prototyped controller. Furthermore, the designer is required ent. Nevertheless, we shall follow the notations introduced
to have deep knowledge of the system details (such as the in the above publications (such as reconfigurable region,
structure of the device or the cycle time of the system) to dynamic part, static part, etc.) in order to apply them to Petri
handle the configuration process. net-based reconfigurable systems.
Petri nets are also applied in the technique shown in [18]. In short, our main contributions can be summarized as
The presented idea additionally uses hierarchy in the design follows:
process. The control system is split into top-level module • A splitting algorithm which divides the concurrent con-
(which is non-reconfigurable) and macroplaces which are troller into dynamic (reconfigurable) and static (non-
formed from the subnets that describe various versions of reconfigurable) parts is proposed. The complexity of
the reconfigurable area. However, additional modifications the algorithm is estimated, supported by an adequate
to the initial system ought to be made, since the proper proposition and proof.

VOLUME 6, 2018 32377


R. Wiśniewski: Dynamic Partial Reconfiguration of Concurrent Control Systems

• An innovative, universal prototyping flow of logic con- Definition 4: A Petri net S = (P0 , T 0 , F 0 , M00 ) is a State
trollers implemented in FPGA devices is shown. The Machine Component (S-component, SMC) of a Petri net N =
presented technique permits further dynamic partial (P, T , F, M0 ), if and only if:
reconfiguration of the already implemented system, and 1) S is an SM-net;
it does not require major changes to the design, nor the 2) S is strongly connected;
0
application of specialized tools. 3) P ⊆ P; n o
• A case study of a real-life concurrent controller is pre- 0 0
4) T = x | x ∈ T , ∃p ∈ P : ((p, x) ∈ F ∨ (x, p) ∈ F) ;
sented. The system was prepared using the proposed  0 0

design flow, and oriented towards further dynamic par- 5) ∀x, y ∈ P ∪ T : ((x, y) ∈ F ⇔ (x, y) ∈ F 0 );

tial reconfiguration of the controller. 6) M 0 = 1; M 0 ⊆ M0 .
0 0
• The proposed idea has been verified experimentally with Definition 5: State Machine Decomposition (SM-
the use of real FPGAs (particularly, with application of Decomposition) Of a Petri net N = (P, T , F, M0 ) is a set of S-
devices from Artix-7, Virtex-5, and Virtex-7 families). components S = {S1 , . . . , Sn }, such that each place pi ∈ P is
The structure of the paper is organized as follows. a place of exactly one component Sj ∈ S. If place pi ∈ P exists
Section II introduces definitions and preliminaries necessary in more than one S ∈ S, it is replaced by a non-operational
to understand the presented idea. The main concept of the pro- place (NOP) in all S ∈ S, except one [2].
posed methodology is shown in Section III, while Section IV Definition 6: A place invariant (p-invariant): of a Petri
illustrates it by a case-study a real-life example. The results net N is a vector Ey of non-negative integers that solves the
of experimental research are shown in Section V. Finally, equation:
Section VI summarizes the paper.
Ey · AT = 0, (3)
II. PRELIMINARIES
Let us introduce notations and definitions necessary to where Ey 6 = 0 and A is an incidence matrix of a Petri net.
explain the idea of the proposed technique [2], [20]–[41]. Each value (entry) of Ey corresponds to a place of the net. The
Definition 1: A Petri net is a 4-tuple: set of places that refers to non-zero values of the p-invariant
is called its support and is denoted by I . The p-invariant is
N = (P, T , F, M0 ), (1) minimal if its support does not contain a support of any other
where P is a finite set of places, T is a finite set of transitions, p-invariant.
F ⊆ (P × T ) ∪ (T × P) is a finite set of arcs, M0 is an initial Definition 6: A Petri net is live if for every reachable
marking (state) of the net. marking M any transition t can be fired at this marking or in
Sets of input and output places of a transition are defined a reachable marking from M .
as: • t = {p ∈ P : (p, t) ∈ F}, t • = {p ∈ P : (t, p) ∈ F}; sets of Definition 7: A Petri net is safe if there is no marking such
input and output transitions of a place are denoted as: • p = that any place contains more than one token.
{t ∈ T : (t, p) ∈ F}, p • = {t ∈ T : (p, t) ∈ F}. Definition 8: An interpreted Petri net is a live and safe Petri
The state of a net is called marking, which can be seen net, defined as a 6-tuple:
as a distribution of tokens in the net places. A marking is
PN = (P, T , F, M0 , X , Y ), (4)
changed by the firing of a transition. A transition can be
fired if each of its input places contains a token. Firing of where X is a finite set of logic inputs, Y is a finite set of logic
a transition removes a token from all its input places and adds outputs.
a token to each of its output places. Places and transitions are Interpreted Petri nets are often used to describe real-life
called nodes of the Petri net. A net is connected if for any systems, such as concurrent controllers [21]. The system
pair (ni , nj ) of its nodes there is a path leading from ni to communicates with the environment via input and output sig-
nj or from nj to ni . A net is strongly connected if for any pair nals. The inputs are associated with transitions, while outputs
(ni , nj ) of its nodes there is a path leading from ni to nj . are bounded to the places of the net. A transition can be fired
For computation purposes, Petri nets are often described if each of its input places contains a token, and the conditions
by an incidence matrix. Let us define it formally. of all of its input signals are fulfilled.
Definition 2: Incidence matrix of a Petri net N =
(P, T , F, M0 ) with n = |P| places and t = |T | tran-sitions III. THE IDEA OF THE PROPOSED TECHNIQUE
is an Am×n of integers, given by: The proposed design methodology involves several steps.
The principle one relies on the adequate splitting of the

−1, (pi , tj ) ∈ F

controller into two parts. The first of these (dynamic) con-
aij = 1, (tj , pi ) ∈ F (2)
 tains reusable logic that can be further replaced on-the-fly by
0, otherwise.

different versions. The second part is the static one, that is,
Definition 3: A State Machine net (SM-net) is a Petri net non-reconfigurable. For better understanding of the presented
such that each of its transitions has exactly one input place method, let us start with the description of the complete
and exactly one output place, i.e. ∀t ∈ T : |• t| = |t •| = 1. prototyping flow of concurrent control systems oriented for

32378 VOLUME 6, 2018


R. Wiśniewski: Dynamic Partial Reconfiguration of Concurrent Control Systems

further dynamic reconfiguration. The design methodology is output signals of logic controllers [2], [20], [25]–[30],
divided into three main stages that include seven steps: [37]–[41]. They are applied in various fields, such as system
Stage I: Prototyping of the initial version of the system: engineering [28], flexible manufacturing systems [37], [38],
1) Specification of the concurrent control system by the distributed systems [20] or concurrent control systems
interpreted Petri net. implemented in digital devices [2], [19]. Furthermore, it is
2) Splitting of the system into dynamic and static parts: possible to use them as an input format for formal verifica-
a) SM-decomposition of the controller into state tion (such as model checking) which allows finding some
machine components (sequential automata). divergences between the formal model and the requirements
b) Selection of the reconfigurable region (one of the of the customer/user [31]–[34]. The verification is usually
decomposed automaton) of the controller. performed automatically by dedicated tools, such as symbolic
c) Splitting of the reconfigurable region into the model checker NuSMV or its extension – nuXmv [35].
dynamic and static modules. 2) SPLITTING OF THE SYSTEM INTO
d) Supplementation of all remaining components by DYNAMIC AND STATIC PARTS
the reconfiguration request signal. This is an essential stage of the proposed prototyping flow,
e) Formation of the dynamic andstatic parts. thus we shall describe it in detail. Initially, the control system
3) Description of the controller in the hardware descrip- is divided into sequential automata, called State Machine
tion languages (HDLs), synthesis and logic implemen- Components (SMCs). Next, one of the SMCs is selected in
tation of the first version of the system. order to indicate the reconfigurable region of the system.
4) Physical implementation of the first version of the con- Finally, such a region is divided into two parts: dynamic and
current control system. static. The dynamic part forms the reconfigurable resources
Stage II: Prototyping of additional versions of the dynamic in the destination FPGA, which can be reprogrammed on-the-
part of the system: fly without the stopping of the system. Let us present those
5. Specification of a new version of the dynamic part by steps in more detail.
an interpreted Petri net.
a: SM-DECOMPOSITION OF THE CONTROLLER INTO SMCs
6. Description and logic synthesis of the new version of
the dynamic part, logic implementation of the new The SM-decomposition splits the specified control system
version of the dynamic part together with the static part into the state machine components. Indeed, each of the
of the controller. obtained SMCs forms a sequential automaton [2], [20], [38].
This is an important step in the proposed design technique,
Note that the designer may prepare as many versions of
and we shall use the obtained results in further steps. In case
the dynamic part as needed.
of relatively small nets, such a process can be done even
Stage III: Dynamic partial reconfiguration of the system.
manually. However, if a controller contains a lot of concur-
7. Dynamic reconfiguration of the controller. rent tasks, the SM-decomposition is a real challenge to the
Let us describe the proposed design method in more details. designer. There are several algorithms that can be applied
The particular steps are explained with paying special atten- to perform an SM-decomposition. One of the most popular
tion to the splitting of the system into the dynamic and static methods is based on a linear algebra technique where place
parts. invariants are computed [23], [36], [41]. Loosely speaking,
such an algorithm solves linear equations based on the inci-
A. STAGE I: PROTOTYPING OF THE INITIAL dence matrix of an initial Petri net. Invariant-based meth-
VERSION OF THE SYSTEM ods are relatively fast and easy to implement, thus they are
1) SPECIFICATION OF THE SYSTEM BY AN widely applied in various design methods for concurrent
INTERPRETED PETRI NET systems [23], [41].
Initially, based on the informal specification, the concurrent In the proposed algorithm we shall apply the modified
controller is described by an interpreted Petri net. Such a method initially shown in [39]. However, contrary to the
specification naturally reflects the concurrency relations of original idea (where the set of place invariants is computed),
the designed system. Furthermore, control systems described the aim of the presented technique is to compute proper
with Petri nets can be easily decomposed into sequential SMCs. The decomposition method includes 6 sub-steps:
modules. We shall use this property, since the modularity is 1) Formation of the unit matrix Q = [Dn×n |Am×n ], where
an important aspect of the proposed technique and it strongly D is initially equal to an identity matrix In , and A is an
influences the selection of the reconfiguration part of the incidence matrix of the Petri net.
system (please refer to Subsections 2A-2C). 2) For each column (transition) tj :
Petri nets are supported by verification and analysis meth- a) find row pairs that annul the j-th column of A
ods [27]–[30], [33]–[35]. The designer may also anal- (i.e. their sum is equal to 0) and append it to
yse the reliability and robustness of the system [42]–[44]. matrix Q,
Interpreted Petri nets are suitable for control process mod- b) delete all rows of Q in which the intersection with
elling, as they additionally take into account the input and the j-th column is not equal to 0,

VOLUME 6, 2018 32379


R. Wiśniewski: Dynamic Partial Reconfiguration of Concurrent Control Systems

c) reduce all rows of Q whose binary covers other Algorithm 1 Splitting of Region SR into parts SD and SS
ones. Input: Reconfigurable region SR = (PR , TR , FR , M0R , XR ,
3) Formation of the set of supports of all minimal p- YR ) set of dynamically reconfigurable places PDR
invariants J . Such a set is directly achieved from the Output: Dynamic part SD = (PD , TD , FD , M0D , XD , YD )
matrix Q, since its rows refer to the obtained place static part SS = (PS , TS , FS , M0S , XS , YS )
invariants.
// The dynamic part:
4) Formation of the set of S-components S: for each sup-
port I ∈ J examine whether I contains exactly one 1: PD ←− PDR //Split the set of places according to
token in the initial marking. If so, S = S ∪ I . PDR
5) Selection of the achieved S-components. Sometimes, 2: PD = PD ∪ {NOPS } //Add NOPS to replace static
especially in the case of large controllers, an additional part
selection of SMCs ought to be performed. Such a step 3: for all [p ∈ PD ] do
can be done automatically with the use of dedicated 4: if[• • p = ∅] then • • p = NOPS
algorithms [2], [38], but usually designers select com- 5: else if [p • • = ∅] then
ponents manually to satisfy exactly their needs. 6: p • • = NOPS
6) Replacement of the repeated places by NOPs: for 7: Yp = [outputs generated by place p; Yp ∈ YD ]
S-components Si , Sj ∈ S, examine whether there is 8: Yp = Yp ∪ {zD }
a place p such that p ∈ Si and p ∈ Sj . If so, replace it 9: YD = YD ∪ {zD }
in one of the components by a non-operational place. 10: end if
Please note that such a replacement can be easily auto- 11: end for
mated, however the designer may decide in which SMC 12: if (M0R ∈ PD ) then M0D = M0R //Assign initial marking
the place is replaced by a NOP [2]. M0D
The above algorithm enables the determination of the state 13: else M0D = NOPS
machine components for a Petri net. Each of the compo- //The static part:
nents forms a Finite State Machine (FSM). This means that
14: PS ←− PR /PDR
operations inside the single SMC are executed sequentially.
15: PS = PS ∪ {NOPD } //Add NOPD to replace dynamic
We shall apply this property in order to select the reconfig-
part
urable region of the system.
16: for all [p ∈ PS ] do
Note that instead of the linear algebra, any known decom-
17: if [p • • = ∅] then p • • = NOPD
position method can be applied. The presented design flow
18: else if [• • p = ∅] then
simply requires division of the initial net into the sequential
19: • • p = NOPD
automata, therefore other decomposition algorithms may be
20: Yp = [output signals generated by p; Yp ∈ YS ]
used (cf. [2], [25]).
21: Yp = Yp ∪ {zS }
b: SELECTION OF THE RECONFIGURABLE REGION (ONE OF 22: YS = YS ∪ {zS }
THE DECOMPOSED AUTOMATON) OF THE CONTROLLER 23: end if
At this point, the reconfigurable region (further denoted as 24: if [p 6 = NOPD ]
SR ) of the system is selected. In the proposed design tech- 25: Yp = [output signals generated by p; Yp ∈ YS ]
nique, such a region strictly refers to modules obtained during 26: Yp = Yp ∪ {Ral}
the decomposition. Indeed, the designer selects one of SMCs. 27: end if
The reconfigurable (dynamic) part of the system is located 28: end for
inside the selected region. Particularly, the set of dynamically 29: YS = YS ∪ {Ral}
reconfigurable Petri net places (denoted by PDR ) is selected 30: if (M0R ∈ PS ) then M0S = M0R //Assign initial marking
directly by the designer. This operation is executed manually, M0S
and it strictly depends on the requirements. For example, 31: else M0S = NOPD
in the case of the milling machine example (presented in the //Synchronization (zD and zS ) and request (Req) sinnals:
subsequent section), the set of reconfigurable places is related 32: xD = [logical conditions assigned to NOPD •; xD ∈
to the operations of cutting out the proper shape from the XD ]
wood. 33: xD = xD ∧ zD
Furthermore, there are no strict rules regarding such 34: XD = XD ∪ {zD }
a selection, however the set of chosen places ought to form 35: xS = [logical conditions assigned to NOPS •; xS ∈ XS ]
a connected subnet. In particular, rules 1,3,4,5 from Defini- 36: xS = xS ∧ zD
tion 4 ought to be fulfilled, since further supplementation by 37: xR = [logical conditions assigned to • M0S ; xR ∈ XS ]
the non-operational place makes the net strongly connected 38: xR = xR ∪ {Req}
(rule 2) and marked at the initial state (rule 6), which we shall 39: XS = XD ∪ {zS Req}
show later (cf. Algorithm 1). 40: return [SD , SS ]

32380 VOLUME 6, 2018


R. Wiśniewski: Dynamic Partial Reconfiguration of Concurrent Control Systems

c: SPLITTING OF THE RECONFIGURABLE REGION INTO THE SR (specified as an interpreted Petri net), and the set of
DYNAMIC AND STATIC MODULES dynamically reconfigurable places chosen by the designer
At this step, the reconfigurable region SR is split into two (PDR ), the dynamic (SD ) and static (SS ) modules are gener-
components (sub-modules). The division of the places is ated (they are also specified as interpreted Petri nets). Gen-
executed according to the set PDR of reconfigurable places, erally, the algorithm is divided into three sections: lines 1-
specified manually by the designer. 13 refer to the dynamic module, lines 14-30 describe the static
module, while the remaining code deals with the synchroniza-
tion signals.
The algorithm can be described as follows:
1) Splitting of the set of places (according to PDR ) into
two disjoint subsets: PDR = PD ∪ PS in such a way that
PD ∩ PS = ∅ (lines 1 and 14).
2) Supplementation of the dynamic module by non-
operational place NOPS in order to substitute all the
places that belong to the static module (lines 2-11, note
that for all loop is executed to connect NOPS with the
remaining places of the dynamic module).
3) Determination of the initially marked place of
the dynamic module (lines 12-13). Simply, if PD
contains M0R , then such a marking becomes the initial
FIGURE 1. The splitting schema of the reconfigurable module. state of the dynamic module. Otherwise, NOPS is
assigned as an initial marking.
Figure 1 shows the splitting schema of the reconfigurable 4) Supplementation of the static module by non-
region into two partitions: dynamic and static. The first operational place NOPD to substitute all the places
one (dynamic module) is exchanged during the reconfig- that belong to the dynamic module (lines 15-28), note
uration process, without interrupting the rest of the sys- that for all loop is executed to connect NOPD with the
tem. The second component (static module) includes the remaining places of the static module).
non-reconfigurable partition. 5) Determination of the initially marked place of the
The main role of such a splitting is to prevent the con- static module (lines 30-31). Simply, if PS contains M0R ,
troller executing operations of the dynamic module while then this marking becomes the initial state. Otherwise,
the reconfiguration is being performed. Furthermore, special NOPD is assigned as an initial marking.
synchronization and reconfiguration signals are introduced. 6) Supplementation of the outputs Yp ∈ YS (generated by
Formally, the splitting procedure divides the automaton SR places p ∈ PS NOPD }) by Ral signal (lines 24-27, 29).
into two automata: SD and SS (where SD denotes dynamic 7) Supplementation of both parts by the synchronization
sub-module, and SS refers to a static one), as shown in signals zD and zS (lines 7-9, 20-22, 32-37, 39). Those
Fig. 1. There are two additional reconfiguration signals that signals assure disjoint functionality of the dynamic and
are added to the design: Reconfiguration Request (Req) and static modules. Simply, the dynamic module can be
Reconfiguration Allowed (Ral). The first one (Req), is added reconfigured while the controller executes operations
as an input signal to the control system. It is assumed that assigned to the places of the static module. Particularly,
this signal is activated by the operator in order to proceed zD is added as an input signal to the static module and
the partial reconfiguration procedure. If this signal is active, forms a logical condition for the transition NOPD •.
the reconfigurable region is not allowed to enter the recon- This signal is produced by the dynamic module. Thus,
figurable states and dynamic partial reconfiguration can be zD is added as an output signal generated by • • NOPS
safely proceeded. Moreover, Req prevents execution of oper- (i.e. former place of NOPS ). Similarly, zs is added as an
ations in all other SMCs that are concurrent to the dynamic input signal to the dynamic module and forms a logical
module. The second reconfiguration signal (Ral) is an output condition for the transition NOPS •. Furthermore, it is
signal and it is assigned to all places of the static sub-module. generated by the place • • NOPD in the static module.
This signal is used to inform that the reconfiguration process It should be noted that there is a possibility that
can be safely executed. In addition, Ral is gated with the Reset a synchronization signal is already assigned to
signal in the dynamic module. Therefore, dynamic part is NOPS or NOPD (as a result of SM-decomposition).
permanently zeroed when the reconfiguration is allowed (that In such a case, this signal can be used instead of zD
is, when Ral is active) in order to avoid unstable states and to or zS . We shall show a proper example in Section 4.
satisfy Xilinx requirements [7]. Furthermore, internal signals 8) Supplementation of the static part by the Req signal
zD and zS are used to synchronize both sub-modules. (lines 37-39). Particularly, Req (negation of Req signal)
Algorithm 1 presents the proposed splitting technique is assigned to the transition NOPD (i.e. input transition
in a formal way. Based on the reconfigurable region of NOPD ). This signal is also assigned to the other

VOLUME 6, 2018 32381


R. Wiśniewski: Dynamic Partial Reconfiguration of Concurrent Control Systems

SMCs (cf. step 2D), in order to synchronize all the 3) Since M0R ∈/ PD , thus M0D = NOPS .
remaining components of the controller. 4) The static module is supplemented by NOPD .
Proposition 1: The splitting procedure executed by 5) Since M0R ∈ PD , thus M0S = p1 .
Algorithm 1 is done in O(|P|) time, where |P| denotes the 6) Ral signal is added as an output signal generated
number of the places in the net. by places p1 and p2 .
Proof: The first for loop (obtaining of the dynamic part) is 7) Synchronization signals are added to both modules:
executed at most |P| times, where |P| denotes the number of – zD is assigned as a logical condition to t4 (that is,
places in the net. Furthermore, the second for loop (addressed to NOPD •) in the static module;
for the static part) is also executed at most |P| times. Note that – zD is assigned as an output signal generated by
neither inner conditional operations, nor final assignments to place p4 (• • NOPS ) in the dynamic module;
the synchronization signals has any influence on the com- – zS is assigned as a logical condition to t20 (that is,
plexity of the algorithm. Summarizing, the computational to NOPS •) in the dynamic module;
complexity of the Algorithm 1 is O(|P|) by the number of |P| – zS is assigned as an output signal generated by
places of the net.  place p2 (that is, by •• NOPD ) in the static module.
Note that the complexity of the complete design flow 8) Req is assigned to t2 (input transition of NOPD ).
also depends on the other steps (such as SM-decomposition,
c.f. [2], [25] for more details). d: SUPPLEMENTATION OF ALL REMAINING COMPONENTS
BY THE RECONFIGURATION REQUEST SIGNAL
At the subsequent stage of the splitting procedure, all the
remaining SMCs (except the reconfigurable region) ought
to be supplemented by the reconfiguration request signal.
Recall, that such a signal is added as an input to the con-
trol system and it is activated by the operator in order to
initiate the partial reconfiguration procedure (cf. step 2C).
Simply, Req is assigned to all instances of the transition
• NOPD (if any exist). For example, if a system from Fig. 2.
shares transition t2 (which is an input transition of place
NOPD ) between two or more components, Req is assigned
as a logic condition to this particular transition in all those
SMCs, except the reconfigurable region (since the reconfig-
urable request signal is already assigned to t2 in the static
module).

e: FORMATION OF THE DYNAMIC AND STATIC PARTS


Finally, the dynamic and static parts are formed. The first
one, dynamic part, is simply formed from the dynamic mod-
ule obtained during step 2B. Furthermore, the static mod-
ule, together with other controller components (except the
dynamic module) form the static part of the system.
We shall follow the above notations in our further descrip-
tions. For better understanding of the splitting idea of the
reconfigurable module into static and reconfigurable parts
please also refer to Section 4, where a case-study of a practical
example is shown.
FIGURE 2. An example of splitting of a reconfigurable region.

3) DESCRIPTION OF THE CONTROLLER IN HDLS,


Let us explain the above procedure by a brief example. SYNTHESIS AND LOGIC IMPLEMENTATION OF
Figure 2 shows an exemplary reconfigurable module that THE FIRST VERSION OF THE SYSTEM
contains four places: PR = {p1 , . . . , p4 }, and M0R = p1 . Once the controller is split into the dynamic and static parts,
Assume that the designer selects the following reconfigurable it can be described in the hardware description languages.
places: PDR = {p3 , p4 }. Therefore, the splitting operation Each of decomposed automata is encoded separately, thus
shall be executed as follows: there is a possibility to apply various techniques or even
1) The set of places PR is split into two disjoint subsets, hardware languages. In our considerations we shall follow
in such a way, that PD = {p3 , p4 }, and PS = {p1 , p2 }. recommendations proposed by Xilinx [7]. Furthermore, Ver-
2) The dynamic module is supplemented by NOPS . ilog language shall be used to show a case-study example.

32382 VOLUME 6, 2018


R. Wiśniewski: Dynamic Partial Reconfiguration of Concurrent Control Systems

Next, the system is logically synthesized and logically – synchronization signal zS is assigned as a logical con-
implemented. In order to perform this task, the selection of dition to the transition NOPS • (i.e., output transition of
the reconfigurable area of the destination FPGA ought to be place NOPS ).
performed (not to be confused with step 2B, where the recon-
figurable region is selected). This operation is relatively easy, 2) DESCRIPTION AND SYNTHESIS OF THE NEW VERSION
and it is executed with the use of the device vendor’s tool. OF THE DYNAMIC PART, LOGIC IMPLEMENTATION
The selection of the reconfigurable area indicates hardware OF THE CONTROLLER
resources that will be utilized by the dynamic part, and it has Once the new version of the dynamic module is specified,
a strict influenced on the size of the generated data used to it is described by the use of HDLs. The rules are exactly the
program the FPGA device. same as was shown in step 3. Next, the new version of the
Once the selection of the reconfigurable area is done, dynamic part is logically implemented in order to generate
the whole controller (static and dynamic parts) is logically the final bit-streams. The static part is imported from the first
implemented. As a result of this operation, the configuration implementation of the controller (produced during step 3).
data for FPGA (called bit-streams) is produced. In the pre- This operation results in two files. The first one contains
sented prototyping flow, two files are generated. The first information about the complete system, and it can be used
one contains the complete information about the controller as an initial bit-stream in the future. The second bit-stream
(that is, about both static and dynamic parts of the system). is a partial one, and it will be used for the dynamic partial
It will be used for the initial programming of the FPGA. reconfiguration of the system.
The second file is a reduced bit-stream, and it contains
the reduced information about the dynamic part of the sys- C. STAGE III: DYNAMIC PARTIAL RECONFIGURATION
tem. Note that the above procedures (description in HDLs, OF THE SYSTEM
logic synthesis and implementation) can be easily automated, 1) DYNAMIC PARTIAL RECONFIGURATION OF
cf. [45]. THE CONTROLLER
The concurrent controller system is ready for the dynamic
4) PHYSICAL IMPLEMENTATION OF THE CONTROLLER partial reconfiguration. It is assumed that dynamic partial
The concurrent control system is ready for physical imple- reconfiguration is executed on demand. Initially, Req signal
mentation. The programming of the FPGA is executed is activated by the operator. The controller responds with the
according to the Xilinx guidelines [7]. The most popular Ral signal, which means that the system can be safely recon-
technique bases on the application of the traditional JTAG figured. While the device is being reconfigured, the static part
(Joint Test Action Group) connector. However, a lot of of the system is still working and executing assigned tasks.
Xilinx FPGAs can be also programmed via a USB (Uni- Once the partial reconfiguration is finished, the controller is
versal Serial Bus) port. At the current stage, the FPGA able to perform operations specified by the new version of the
device is configured with the use of full bit-stream (obtained dynamic module. Note that the above procedure can be easily
in the previous step). However, it should be pointed out, automated. Thus, the whole reconfiguration process can be
that it is ready for further dynamic partial reconfiguration executed without human supervisor or operator. We shall
(cf. Stage III). present this benefit by the case-study below.
Let us now describe steps required in order to prepare dif-
ferent versions of the dynamic module. Note that the designer IV. THE CASE-STUDY EXAMPLE
is able to create as many different versions of the dynamic part An example that illustrates the design method is a real-life
as needed. system, initially proposed in [20]. Figure 3 shows a model
of a milling process. The aim of the presented machine is
B. STAGE II: PROTOTYPING OF ADDITIONAL VERSIONS to cut required shapes from the wooden plank. The process
OF THE DYNAMIC PART OF THE SYSTEM is driven by a concurrent control system that communicates
1) SPECIFICATION OF THE NEW VERSION OF THE with the environment with the use of input X = {x1 , . . . , x20 }
DYNAMIC MODULE BY AN INTERPRETED PETRI NET and output signals Y = {y1 , . . . , y14 }. The description of all
The new version of the dynamic part is specified with the use the signals is listed in Table 1.
of an interpreted Petri net. It is performed in the same way as it The behavior of the system can be described as follows.
was described in Subsection 2A. However, some restrictions Placement of a wooden plank on the tray (indicated by the
ought to be fulfilled: sensor x1 ) initializes the milling process. The plank is moved
– the module ought to be prepared as a state machine (output signal y1 ) to the remaining positions of the drilling
component (to form a sequential automaton), station (signalized by a sensor x2 ). At the same time, a drill
– NOPS , together with its incoming and outcoming tran- (y2 ) is moved downwards, to the starting position (x3 ) local-
sitions remain unchanged, that is, they are exactly the ized on the southeast corner of the cutting shape. When the
same as obtained during step 2A, above two operations are completed, the machine is ready
– synchronization signal zD is assigned to the place for cutting the required shape from the wood. Five tasks are
• • NOPS (i.e., to the former place of NOPS ), executed concurrently:

VOLUME 6, 2018 32383


R. Wiśniewski: Dynamic Partial Reconfiguration of Concurrent Control Systems

TABLE 1. Description of input and output signals of the system.

FIGURE 3. Model of the milling machine.

1) The required shape is being cut out of the plank. This


process is executed by actions associated to output sig-
nals y3 , . . . , y8 . The required shape is achieved thanks
to sensors x5 , . . . , x8 localized at each side of the plank.
Four additional sensors x17 , . . . , x20 may be used in
order to cut out more advanced shapes (like ‘‘L’’-shape,
‘‘U’’-shape, etc.).
2) The assembly holes on the top of a wooden plank
are drilled by executing actions associated with output
signals y9 and y10 (according to sensors x10 and x11 ).
3) Assembly holes on the bottom of a wooden plank are
drilled (outputs y11 , y12 , and sensors x12 , x13 ).
4) Vacuum cleaner is turned on (output y13 ).
5) Depending on the light sensor (signal x14 ), the halogen
lamp is either turned on (y14 ) or off.
Finally, the ready (cut-out) shape is removed from the
machine (y15 ). Simultaneously, the drill is cooled down. After Initially, the system is decomposed into sequential automata.
completing the above operations, the system waits until the This process splits the net into state machine components.
wooden plank is taken away from the tray (x1 ), and the In our analysis, five SMCs S = {S1 , S2 , S3 , S4 , S5 } are
drilling process can be repeated for another plank. obtained:
The discussed system can be specified by an interpreted • S1 = {p1 , p2 , p3 , p6 , p7 , p8 , p9 , p10 , p11 , p12 , p23 , p24 },
Petri net, as shown in Fig. 4. The net consists of 26 places • S2 = {NOP1 , p4 , p5 , p13 , p14 , p15 , p25 , p26 },
and 21 transitions. In this version of the controller, the milling • S3 = {NOP2 , p16 , p17 , p18 },
machine cuts out square shapes from the wooden plank • S4 = {NOP3 , p19 },
(places p7 , . . . , p10 ). Input signals of the controller are asso- • S5 = {NOP4 , p20 , p21 , p22 .}
ciated with the transitions, while outputs are assigned to Figure 5 shows the decomposed and synchronized net.
the places. Note that signal x14 (light detector) determines There are four non-operational places, such that NOP1
whether the halogen lamp ought to be turned on (y14 ). Fur- replaces {p1 } in the second component, NOP2 replaces
thermore, transition t4 splits the functionality of the controller {p1 , p2 , p3 , p23 , p24 } in the third SMC, etc.
into five processes, while t18 joins them. The functionality of the achieved components can be
Let us now apply the proposed prototyping technique by described as follows. The first subnet (S1 ) controls the move-
splitting of the controller into the dynamic and static parts. ment of a wooden plank on a tray to the required position

32384 VOLUME 6, 2018


R. Wiśniewski: Dynamic Partial Reconfiguration of Concurrent Control Systems

FIGURE 4. Interpreted Petri net that describes the milling machine.


FIGURE 5. Decomposed and synchronized net of milling machine.

(in both directions: left and right) and cutting-out the required
shape from the wood. The second component is responsible
for preparing the main drill to the starting position, drilling According to the proposed method, one of the SMCs ought
of the assembly holes on the top of the wooden plank, and to be selected as a reconfigurable region. In our consider-
cooling off the drill when the milling process fishes. Actions ations, component S1 is chosen in order to exchange the
performed by the third automaton prepares assembly holes on functionality of the process that is responsible for cutting
the bottom of the plank, while the fourth subnet controls the the shape. Note that particular places {p6 , . . . , p12 } are in
vacuum cleaner. Finally, the fifth component executes tasks response to the cutting of the proper shape. Thus, we shall
related to the halogen lamp. select them as reconfigurable places: PDR = {p6 , . . . , p12 }.

VOLUME 6, 2018 32385


R. Wiśniewski: Dynamic Partial Reconfiguration of Concurrent Control Systems

FIGURE 7. Sample Verilog code of module S3 .

logical condition to transition t18 (NOPD •) in the


static part;
• z2 is generated by place p2 (• • NOPD ) in the
static part, therefore it can be assigned as a logical
condition to t40 (NOPS •) in the dynamic part.
FIGURE 6. Splitting of S1 into static and dynamic modules. 8) Req is assigned to t4 (input transition of NOPD ).
Once the splitting of the reconfigurable module is com-
Let us now apply Algorithm 1 to split the reconfigurable pleted, all the remaining modules that share transition
region S1 into dynamic (SD ) and (SS ) static parts. We shall • NOPD are supplemented by the Ral signal. In the pre-
follow the notations applied in Section 2 in order to present sented example, transition t4 is shared by all remaining SMCs
the particular actions performed by the Algorithm 1. (cf. Fig. 5). Thus, Req is added as a logical condition to all
The splitting procedure is executed as follows (Fig. 6): those components.
1) The set of places of the reconfigurable region PR = Finally, the dynamic and static parts are formed. Simply,
{p1 , p2 , p3 , p6 , . . . , p12 , p23 , p24 } is split into two sets: the dynamic part consists of the dynamic module containing
PD = {p6 , . . . , p12 }, and PS = {p1 , p2 , p3 , p23 , p24 }. places {p6 , . . . , p12 }. Furthermore, the static module, together
2) The dynamic part is supplemented by NOPS . with all the remaining SMCs (that is components S2 , . . . , S5 )
3) Since M0R ∈ / PD , thus M0D = NOPS . form the static part.
4) The static part is supplemented by NOPD . At the next step of the prototyping procedure, each of
5) Since M0R ∈ PD , thus M0S = p1 . the decomposed components are modeled as finite state
6) Signal Ral is added to all p ∈ PS ({p1 , p2 , p3 , p23 , p24 }). machines and described in Verilog HDL. Internal states are
7) Synchronization signals between both parts. Note that encoded with the use of Gray code. Figure 7 presents a sam-
there are already synchronization signals z3 and z2 gen- ple Verilog code of module S3 . The remaining SMCs are
erated by places • • NOPS and • • NOPD , respectively. described in a similar manner. Then, both parts are synthe-
Those signals are used for proper synchronization of sized according to Xilinx guidelines [7]. The resulting files
SMCs. Let us use them instead of introducing addi- are used as input data of the logic implementation. This
tional signals zD and zS : operation (including selection of the reconfigurable area of
• z3 is generated by place p12 (• • NOPS ) in the an FPGA and generation of the output bit-streams) is per-
dynamic part, therefore it can be assigned as a formed by the dedicated tool. In particular, we used Xilinx

32386 VOLUME 6, 2018


R. Wiśniewski: Dynamic Partial Reconfiguration of Concurrent Control Systems

Finally, the functionality of the controller can be dynam-


ically exchanged with the produced partial bit-streams. The
reconfiguration process is started by sending Req signal to
the implemented controller.
Note that there are no restrictions regarding this signal,
it can be set at any time. The functionality of the system can
be safely exchanged if Ral signal is active. In the presented
example, this signal is generated by the following places:
p1 , p2 , p3 , p23 , p24 (cf. Fig. 8). It means, that the controller
can be dynamically reconfigured, for example, during the
replacement of the wooden plank (p1 ), or while moving the
tray to the left (p2 ) or to the right (p23 ). Note that configu-
ration time does not influence on the behavior of the system
thanks to the synchronization signals. However, operations
that are executed in the remaining subnets may affect the
reconfiguration process. For example, moving of the drill to
the required position (p4 ) or cooling-off the drill (p25 ) are
executed concurrently to the static part. Thus, those opera-
tions are sequential to the dynamic part, which means that
the controller can be safely dynamically reconfigured.

V. EXPERIMENTAL RESULTS AND ANALYSIS


The proposed design flow was verified experimentally. First,
the milling machine system was implemented and dynam-
ically reconfigured. Furthermore, the set of representative
concurrent controllers was verified with the application of the
proposed prototyping flow. Each system was implemented in
FIGURE 8. New version of dynamic part (cutting of the ‘‘U’’-shape). the FPGA and reconfigured with at least one new version
of the dynamic module. Finally, the summarized results of
experiments are concluded by exposing the limitations and
PlanAhead 14.7. As a result of the implementation process, scope of the proposed ideas.
two files are produced. The first one, full bit-stream, contains
the complete information about the controller. The second A. HARDWARE VERIFICATION OF THE
file, partial bit-stream, includes only reduced data about the CASE-STUDY EXAMPLE
dynamic module. For testing purposes, the system of the milling machine pre-
The initial version of the controller is ready for physi- sented in the case study was used. In addition, a third version
cal implementation. At this step, the FPGA device is pro- of the dynamic module was prepared (cutting of ‘‘L‘‘-shape).
grammed with the use of full bit-stream. The system is ready Furthermore, an appropriate emulator of the milling machine
for further partial reconfiguration. Let us prepare an addi- was created. It was prepared as a digital system, described
tional version of the dynamic part of the controller. in Verilog HDL. The complete system (controller and emu-
Let us modify the functionality of the controller. Now, lator) was implemented with the use of the FPGA device
we shall prepare an alternate version of the dynamic mod- XC5VLX50 (Virtex-5 family, a part of the board ML501 Eval-
ule, where the milling machine will be able to cut out a uation and Development Platform).
‘‘U’’-shape from a wooden plank. Figure 8 shows the spec- Figure 9 shows the logic schema of the verification system.
ification of the new version of the dynamic module. Note The appropriate shapes (cut out by the milling machine) are
that the required ‘‘U’’-shape is more complicated than the represented by two 7-segment displays (PmodSSD from Dig-
previous one (square). Indeed, there are twelve places in the ilent). Additionally, LEDs of the ML501 board were used to
net, four more than in the initial version (cf. Fig. 6). represent the selected outputs of the controller (position of the
The new version of the dynamic module is described in the tray, mounting of the assembly holes on the top and bottom
Verilog HDL. We shall apply exactly the same coding style, of the wooden plank, activity of the vacuum cleaner, halogen
as it was shown in Fig. 7. Note that there are 12 places in lamp, and Reconfiguration Allowed signal). Two external
the net, therefore the modelled module contains more states inputs of the system (Reset and Reconfiguration Request)
compared to the initial version. Next, the dynamic module is were assigned to the external switches. Both components
logically synthesized and implemented. These operations are (controller and emulator) were oscillated by the internal clock
executed in order to generate the final bit-streams for the new signal of the ML501 board (100MHz). Figure 10 illustrates
version of the controller. the working system, while an ‘‘L’’ shape is being cut. The

VOLUME 6, 2018 32387


R. Wiśniewski: Dynamic Partial Reconfiguration of Concurrent Control Systems

FIGURE 11. Hardware results recorded by the oscilloscope.

Cable USB II. Figure 11 shows the hardware verification


FIGURE 9. Logic schema of the verification system.
results recorded by the oscilloscope. Three cycles of the
milling machine are presented. Initially, the ‘‘U’’-shape is cut
from the wood (outputs y4 , y5 , y6 , y7 ).
The first dynamic partial reconfiguration is performed dur-
ing movement of the tray to the right (y15 ). It can be noticed,
that signals y4 , . . . , y7 become unstable for a moment. This is
caused by exchanging the dynamic part of the system. Note
that static part of the controller is still working, which can be
observed by signals y1 , y2 , y15 , y16 . The system is now able to
cut square shapes. Finally, dynamic partial reconfiguration is
executed once more. After this operation, the milling machine
cuts an ‘‘L’’-shape from the plank.
FIGURE 10. A photo of working system (cutting of the ‘‘L’’-shape).

B. EXPERIMENTAL VERIFICATION OF THE


PROPOSED TECHNIQUE
functionality of the system was additionally checked by an The proposed design flow was verified experimentally. The
oscilloscope (MSO 2024 from Tektronix). Therefore, appro- representative concurrent control systems (denoted as bench-
priate input and output signals were connected and measured. marks) were split into the static and dynamic partitions and
Going into more details, the verification procedure implemented in the Xilinx FPGA devices. Next, their func-
included the following steps: tionality was modified with the use of the dynamic partial
1) Preparation of the first version of the controller (cutting reconfiguration technique. For each control system, at least
out of a square), according to Stage I of the proposed one additional version of the dynamic module was prepared.
design flow. The set of benchmarks included real systems, such as a HAN
2) Preparation of the second version of the controller (cut- (home area network) controller [46], a concrete mixer [25],
ting out of a ‘‘U’’-shape), according to Stage II. a milling machine or a system that coordinates traffic lights
3) Preparation of the third version of the controller (cut- (crossroad).
ting out of an ‘‘L’’-shape), according to Stage II. Furthermore, the hardware resource utilization of the
4) Preparation of the milling machine emulator (a digi- reconfigurable area consumed by the representative concur-
tal system that emulates the behavior of the milling rent control systems was analysed. In particular, the number
machine by reacting to the input sensors with the appro- of slices occupied by the reconfigurable area was determined.
priate outputs on the 7-segment displays and LEDs of Moreover, the size of the full bit-stream (containing the
the ML501 board). description of the whole system), and the size of the partial
5) Programming of the FPGA with the use of the full bit- bit-stream (which holds information about the reconfigurable
stream produced at the first step (that is, programming part only) were compared.
of the FPGA with the first version of the controller), Table 2 shows the results gained during the experiments.
together with the emulator. The particular columns present the name of the benchmark,
6) Dynamic partial reconfiguration of the system with the the FPGA device (used to verify this benchmark), the number
use of all three partial bit-streams generated during of all slices available for the applied FPGA, the number of
steps 1-3, according to Stage III of the flow. slices directly utilized by the reconfigurable area, and the
Programming of the system, as well as dynamic partial recon- sizes of the full and partial bit-streams. There were three
figuration, was performed with the use of Xilinx Platform different FPGA devices applied in the performed experi-

32388 VOLUME 6, 2018


R. Wiśniewski: Dynamic Partial Reconfiguration of Concurrent Control Systems

TABLE 2. Hardware utilization of the reconfigurable area by the representative control systems and bit-streams sizes.

ments. Most of benchmarks were verified with the use of implemented in Xilinx FPGA devices. The presented solution
XC5VLX50 (Xilinx Virtex-5 family) and XC7A100T (Xilinx permits further dynamic partial reconfiguration of the already
Artix-7 family) devices. Additionally, one of the controllers implemented system. The proposed technique is especially
was also implemented and dynamically reconfigured with the applicable for controllers executing crucial operations that
application of high-performance FPGA XC7VX485T (Xilinx cannot be interrupted. The functionality of one part of the
Virtex-7 family), just for analytic purposes. controller is modified while the rest of the system is still
It can be observed that the size of the reduced bit-stream working.
(partial bit-stream) is much smaller than the full one. The
highest reduction was achieved for the Xilinx Virtex-7 device, VI. CONCLUSIONS
where the size of the partial bit-stream is over 670 times The paper proposes a new design path for dynamically recon-
smaller compared to the full data. Obviously, beside the figurable logic controllers implemented in FPGA devices.
FPGA used, the reduction ratio is strictly related to the Contrary to the existing methods, the presented concept does
implemented controller, and to the selected reconfigurable not require major changes to the design, nor the applica-
region. Thus, the lowest values were achieved forHAN and tion of specialized tools. The main idea of the proposed
Counter systems, that utilized more than 20 FPGA slices method relies on the splitting of the controller into the
by the reconfigurable area. Nevertheless, even in those static (non-reconfigurable) and dynamic (reconfi-gurable)
cases, the partial bit-stream is much smaller (over 64 times) parts. The presented design concept for reconfigurable logic
than the full one. controllers has been successfully experimentally tested with
Xilinx FPGAs.
There are several benefits of the proposed method. First of
C. LIMITATIONS AND SCOPE all, the complete prototyping flow of concurrent logic con-
Let us briefly summarize limitations of the proposed tech- trollers oriented for further partial reconfiguration is shown.
nique. Firstly, the presented approach applies Petri net theory Furthermore, the designer is able to prepare as many versions
to describe the concurrent control system. For designers that of the reconfigurable part, as needed. Moreover, there is no
are not familiar with this methodology it can be embarrassing limitation regarding execution times of the dynamic partial
to change their habits in order to apply Petri nets to specify reconfiguration. Therefore, the system can be partially recon-
their systems. On the other hand, it is worth mentioning that figured as many times as it is required.
the presented design flow takes care of all the remaining steps On the other hand, the proposed technique strictly refers
that are required to prepare the system for compatibility with to the systems specified by an interpreted Petri net. Further-
further dynamic reconfiguration in Xilinx FPGAs. more, the selection of the reconfigurable region is limited to
Furthermore, the selected set of reconfigurable places the single state machine component. Therefore, the enhance-
should form a connected subnet. Clearly, this rule limits ment of the proposed design flow is considered for future
the application of the presented technique, and additionally research. In particular, application of the presented technique
enforces decomposition of the net into sequential automata. to other classes of Petri nets will be considered (bounded nets,
Finally, the proposed prototyping technique is limited flexible manufacturing systems).
to the interpreted Petri nets, that is, live and safe nets. Nev-
ertheless, it seems that it is possible to expand the presented REFERENCES
technique to the more general class of Petri nets. In particular,
[1] T. H. Pham, S. A. Fahmy, and I. V. McLoughlin, ‘‘An end-to-
extension of the safety aspects can be considered, as well as end multi-standard OFDM transceiver architecture using FPGA partial
inclusion of the flexible manufacturing systems based on the reconfiguration,’’ IEEE Access, vol. 5, pp. 21002–21015, 2017, doi:
Petri nets [37], [47]–[50]. 10.1109/ACCESS.2017.2756914.
[2] R. Wiśniewski, Prototyping of Concurrent Control Systems Implemented
The paper proposes a complete design path for the con- in FPGA Devices. Cham, Switzerland: Springer, 2017. [Online]. Available:
current controllers specified by interpreted Petri nets and http://www.springer.com/us/book/9783319458106

VOLUME 6, 2018 32389


R. Wiśniewski: Dynamic Partial Reconfiguration of Concurrent Control Systems

[3] M. Asiatici, N. George, K. Vipin, S. A. Fahmy, and P. Ienne, ‘‘Virtualized [25] R. Wiśniewski, A. Karatkevich, M. Adamski, A. Costa, and L. Gomes,
execution runtime for FPGA accelerators in the cloud,’’ IEEE Access, ‘‘Prototyping of concurrent control systems with application of Petri nets
vol. 5, pp. 1900–1910, 2017, doi: 10.1109/ACCESS.2017.2661582. and comparability graphs,’’ IEEE Trans. Control Syst. Technol., vol. 26,
[4] S. Shreejith, S. A. Fahmy, and M. Lukasiewycz, ‘‘Reconfigurable comput- no. 2, pp. 575–586, Mar. 2018, doi: 10.1109/TCST.2017.2692204.
ing in next-generation automotive networks,’’ IEEE Embedded Syst. Lett., [26] D. A. Zaitsev, ‘‘Sleptsov nets run fast,’’ IEEE Trans. Syst., Man, Cybern.,
vol. 5, no. 1, pp. 12–15, Mar. 2013. Syst., vol. 46, no. 5, pp. 682–693, May 2016, doi: TSMC.2015.2444414.
[5] A. Ahmad, B. Krill, A. Amira, and H. Rabah, ‘‘Efficient architectures for [27] J. Ye, M. Zhou, Z. Li, and A. Al-Ahmari, ‘‘Structural decomposition and
3D HWT using dynamic partial reconfiguration,’’ J. Syst. Archit., vol. 56, decentralized control of Petri nets,’’ IEEE Trans. Syst., Man, Cybern., Syst.,
no. 8, pp. 305–316, 2010. Jul. 2017, doi: 10.1109/TSMC.2017.2703950.
[6] A. S. Dawood, S. J. Visser, and J. A. Williams, ‘‘Reconfigurable [28] C. Girault and R. Valk, Petri Nets for Systems Engineering: A Guide
FPGAS for real time image processing in space,’’ in Proc. to Modeling, Verification, and Applications. Berlin, Germany: Springer,
14th Int. Conf. Digit. Signal Process. (DSP), vol. 2, Jul. 2002, 2003.
pp. 845–848. [29] A. Karatkevich, Dynamic Analysis of Petri Net-Based Discrete Systems.
[7] Xilinx. (Apr. 26, 2013). Partial Reconfiguration User Guide (v14.5). Berlin, Germany: Springer-Verlag, 2007.
Accessed: Jan. 19, 2018. [Online]. Available: http://www.xilinx.com/ [30] A. Ramirez-Trevino, E. Ruiz-Beltran, I. Rivera-Rangel, and
support/documentation/sw_manu-als/xilinx14_7/ug702.pdf E. Lopez-Mellado, ‘‘Online fault diagnosis of discrete event systems.
[8] E. Monmasson and M. N. Cirstea, ‘‘FPGA design methodology for indus- A Petri net-based approach,’’ IEEE Trans. Autom. Sci. Eng., vol. 4, no. 1,
trial control systems—A review,’’ IEEE Trans. Ind. Electron., vol. 54, no. 4, pp. 31–39, Jan. 2007.
pp. 1824–1842, Aug. 2007, doi: 10.1109/TIE.2007.898281. [31] J. Woodcock, P. G. Larsen, J. Bicarregui, and J. Fitzgerald, ‘‘Formal
[9] M. El-Hadedy, A. Kulkarni, D. Stroobandt, and K. Skadron, ‘‘Reco-Pi: methods: Practice and experience,’’ ACM Comput. Surv., vol. 41, no. 4,
A reconfigurable Cryptoprocessor for π-Cipher,’’ J. Parallel Distrib. Com- 2009, Art. no. 19.
put., 2017, doi: 10.1016/j.jpdc.2017.05.012. [32] T. Kropf, Introduction to Formal Hardware Verification. Berlin, Germany:
[10] A. P. Johnson, R. S. Chakraborty, and D. Mukhopadyay, ‘‘An improved Springer-Verlag, 1999.
DCM-based tunable true random number generator for Xilinx FPGA,’’ [33] E. M. Clark, Jr., D. Peleg, and C. Belta, Model Checking. Cambridge, MA,
IEEE Trans. Circuits Syst., II, Exp. Briefs, vol. 64, no. 4, pp. 452–456, USA: MIT Press, 1999.
Apr. 2017, doi: TCSII.2016.2566262. [34] E. A. Emerson, ‘‘The beginning of model checking: A personal perspec-
[11] X. Yin and S. Lafortune, ‘‘Synthesis of maximally-permissive supervisors tive,’’ in 25 Years of Model Checking: History, Achievements, Perspectives,
for the range control problem,’’ IEEE Trans. Autom. Control, vol. 62, no. 8, O. Grumberg and H. Veith, Eds. New York, NY, USA: Springer-Verlag,
pp. 3914–3929, Aug. 2017, doi: 10.1109/TAC.2016.2644867. 2008, pp. 27–45.
[35] R. Cavada, ‘‘The nuXmv symbolic model checker,’’ in Computer Aided
[12] J. Vidal, F. De Lamotte, G. Gogniat, J.-P. Diguet, and P. Soulard, ‘‘UML
Verification (Lecture Notes in Computer Science), vol. 8559. Berlin,
design for dynamically reconfigurable multiprocessor embedded sys-
Germany: Springer, 2014.
tems,’’ in Proc. DATE, vol. 10, Mar. 2010, pp. 1195–1200.
[36] W. Reisig, Petri Nets: An Introduction, vol. 4. Berlin, Germany:
[13] I. R. Quadri, H. Yu, A. Gamatié, S. Meftali, J.-L. Dekeyser, and É. Rutten,
Springer-Verlag, 1985.
‘‘Targeting Reconfigurable FPGA based SoCs using the MARTE UML
[37] Z. Li, M. Zhou, and N. Wu, ‘‘A survey and comparison of petri net-based
profile: From high abstraction levels to code generation,’’ Int. J. Embedded
deadlock prevention policies for flexible manufacturing systems,’’ IEEE
Syst., vol. 4, nos. 3–4, p. 18, Sep. 2010.
Trans. Syst., Man, Cybern. C, Appl. Rev., vol. 38, no. 2, pp. 173–188,
[14] C.-H. Tseng and P.-A. Hsiung, ‘‘UML-based design flow and partition-
Mar. 2008.
ing methodology for dynamically reconfigurable computing systems,’’ in
[38] M. Zhou and N. Wu, System Modeling and Control With Resource-
Embedded and Ubiquitous Computing—EUC (Lecture Notes in Computer
Oriented Petri Nets, vol. 35. Boca Raton, FL, USA: CRC Press, 2009.
Science), vol. 3824. Berlin, Germany: Springer, 2005. [39] J. Martínez and M. Silva, ‘‘A simple and fast algorithm to obtain all
[15] M. Wegrzyn, ‘‘Petri net decomposition approach for partial reconfiguration invariants of a generalised Petri net,’’ in Application and Theory of Petri
of logic controllers,’’ IFAC Proc. Vol., vol. 39, no. 17, pp. 323–328, Nets. London, U.K.: Springer-Verlag, 1982, pp. 301–310.
2006. [40] L. Stefanowicz, M. Adamski, R. Wiśniewski, and J. Lipiński, ‘‘Application
[16] D. Kim, ‘‘An implementation of fuzzy logic controller on the recon- of hypergraphs to SMCs selection,’’ in Technological Innovation for Col-
figurable FPGA system,’’ IEEE Trans. Ind. Electron., vol. 47, no. 3, lective Awareness Systems. Berlin, Germany: Springer, 2014, pp. 249–256.
pp. 703–715, Jun. 2000. [41] E. Best, R. Devillers, and M. Koutny, Petri Net Algebra. Berlin, Germany:
[17] P. S. B. Nascimento, P. R. M. Maciel, M. E. Lima, R. E. Sant’ana, and Springer-Verlag, 2001.
A. G. S. Filho, ‘‘A partial reconfigurable architecture for controllers based [42] M. Malhotra and K. S. Trivedi, ‘‘Dependability modeling using Petri-nets,’’
on Petri nets,’’ in Proc. SBCCI, Sep. 2004, pp. 16–21. IEEE Trans. Rel., vol. 44, no. 3, pp. 428–440, Sep. 1995.
[18] A. Bukowiec and M. Doligalski, ‘‘Petri net dynamic partial reconfiguration [43] X. Zhang and S. Yao, ‘‘Fuzzy stochastic Petri nets and analysis of the
in FPGA,’’ in Proc. Int. Conf. Comput. Aided Syst. Theory, vol. 8111, reliability of multi-state systems,’’ IET Softw., vol. 9, no. 3, pp. 83–93,
Berlin, Germany, Springer, 2013, pp. 436–443. Jun. 2015.
[19] H. Schilke, A. Rettberg, and F. Dittmann, ‘‘Towards a petri net based [44] G. Y. Liu, Z. W. Li, K. Barkaoui, and A. M. Al-Ahmari, ‘‘Robustness of
approach to model and synthesise dynamic reconfiguration for FPGAs,’’ deadlock control for a class of Petri nets with unreliable resources,’’ Inf.
in Proc. 4th IEEE Int. Symp. DELTA, Jan. 2008, pp. 561–566. Sci., vol. 235, pp. 259–279, Jun. 2013.
[20] I. Grobelna, R. Wiśniewski, M. Grobelny, and M. Wiśniewska, ‘‘Design [45] L. Gomes, A. Costa, J. P. Barros, and P. Lima, ‘‘From Petri net models
and verification of real-life processes with application of Petri nets,’’ to VHDL implementation of digital controllers,’’ in Proc. 33rd Annu.
IEEE Trans. Syst., Man, Cybern., Syst., vol. 47, no. 11, pp. 2856–2869, Conf. IEEE Ind. Electron. Soc., Taipei, Taiwan, Nov. 2007, pp. 94–99, doi:
Nov. 2017, doi: 10.1109/TSMC.2016.2531673. 10.1109/IECON.2007.4460403.
[21] R. Wiśniewski and I. Grobelna, ‘‘Design of multi-context reconfigurable [46] G. Bazydło and S. Wermiński, ‘‘Demand side management through
logic controllers implemented in fpga devices oriented for further partial home area network systems,’’ Int. J. Elect. Power Energy Syst., vol. 97,
reconfiguration,’’ J. Circuits, Syst., Comput., vol. 27, no. 6, p. 1850086, pp. 174–185, Apr. 2018.
2018, doi: 10.1142/S021812661850086X. [47] N. Ran, H. Su, A. Giua, and C. Seatzu, ‘‘Codiagnosability analysis
[22] R. Wiśniewski, G. Bazydło, L. Gomes, and A. Costa, ‘‘Dynamic par- of bounded Petri nets,’’ IEEE Trans. Autom. Control, vol. 63, no. 4,
tial reconfiguration of concurrent control systems implemented in FPGA pp. 1192–1199, Apr. 2018, doi: 10.1109/TAC.2017.2742659.
devices,’’ IEEE Trans. Ind. Informat., vol. 13, no. 4, pp. 1734–1741, [48] V. Kurapati and M. Zhou, Modeling, Simulation, and Control of Flexible
Aug. 2017, doi: 10.1109/TII.2017.2702564. Manufacturing Systems: A Petri Net Approach, vol. 6. Singapore: World
[23] W. M. P. van der Aalst et al., ‘‘Soundness of workflow nets: Classifica- Scientific, 1999.
tion, decidability, and analysis,’’ Formal Aspects Comput., vol. 23, no. 3, [49] N. Ran, S. Wang, and W. Wu, ‘‘Event feedback supervision for a
pp. 333–363, 2011. class of Petri nets with unobservable transitions,’’ IEEE Access, vol. 6,
[24] A. Ramirez-Trevino, I. Rivera-Rangel, and E. Lopez-Mellado, pp. 6920–6926, 2018.
‘‘Observability of discrete event systems modeled by interpreted [50] M. Bashir et al., ‘‘A minimal supervisory structure to optimally enforce
Petri nets,’’ IEEE Trans. Robot. Autom., vol. 19, no. 4, pp. 557–565, liveness on petri net models for flexible manufacturing systems,’’ IEEE
Aug. 2003. Access, vol. 5, pp. 15731–15749, 2017.

32390 VOLUME 6, 2018


R. Wiśniewski: Dynamic Partial Reconfiguration of Concurrent Control Systems

REMIGIUSZ WIŚNIEWSKI (M’17) received the He is currently an Assistant Professor with the Institute of Electrical
Ph.D. degree in computer science from the Univer- Engineering, University of Zielona Góra. He is a Co-founder and a Coor-
sity of Zielona Góra in 2008 and the D.Sc. degree dinator of the research project Hippo (www.hippo.iee.uz.zgora.pl). He has
in computer science from the Silesian University authored over 100 peer-reviewed research papers and books. His research
of Technology in 2018. From 2000 to 2003, he was interests include the design of control systems, Petri nets, programmable
with Aldec, Inc., Henderson, NV, USA, where devices, field programmable gate arrays (FPGAs), partial reconfiguration
he conducted specialized training for companies, of FPGAs, perfect graph and hypergraph theories, and cryptology. He is a
such as Xilinx, San Jose, CA, USA, and Intel, member of IES and SMC societies. He is an Associate Editor of the IEEE
Austin, TX, USA. ACCESS journal.

VOLUME 6, 2018 32391

You might also like