=Paper= {{Paper |id=Vol-3736/paper13 |storemode=property |title=Method and Framework for IoT Nodes Self-Configuring with Cloud-Based Automatic Design and Synthesis Tools |pdfUrl=https://ceur-ws.org/Vol-3736/paper13.pdf |volume=Vol-3736 |authors=Viktor Melnyk,Anatoliy Melnyk |dblpUrl=https://dblp.org/rec/conf/icyberphys/MelnykM24 }} ==Method and Framework for IoT Nodes Self-Configuring with Cloud-Based Automatic Design and Synthesis Tools== https://ceur-ws.org/Vol-3736/paper13.pdf
                                Method and Framework for IoT Nodes Self-
                                Configuring with Cloud-Based Automatic Design and
                                Synthesis Tools ⋆
                                Viktor Melnyk1,2.,∗,† and Anatoliy Melnyk3,†
                                1 Lviv Polytechnic National University, Bandery st. 12, 79013, Lviv, Ukraine
                                2 John Paul II Catholic University of Lublin, Al. Racławickie 14, 20–950, Lublin, Poland
                                3 IT Step University, Zamarstynivska st. 83A, 79019, Lviv, Ukraine




                                                 Abstract
                                                 The paper is dedicated to the latest trends in the development of architecture of IoT systems. Special
                                                 attention is paid to edge and fog computing paradigms which are becoming increasingly common
                                                 today. The benefits of data processing in IoT nodes are shown and their processing components are
                                                 overviewed. The expediency of using a reconfigurable hardware in IoT nodes is justified. The
                                                 challenges of FPGA-based nodes application in IoT systems related to their compliance with the
                                                 requirements of effective installation, changing functionality, upgrading/optimizing a network
                                                 without changing functionality, creating configurations for built-in FPGA are shown in the paper. To
                                                 address these challenges, a method and a framework for nodes self-configuring in IoT systems are
                                                 proposed. The basic idea of them is the creation and application of a cloud-based service with
                                                 specialized processor automatic design and synthesis tools. The advantages of the proposed method
                                                 and framework as well as ways of addressing challenges of FPGA-based nodes application in IoT
                                                 systems are highlighted.

                                                 Keywords
                                                 Internet of Things, self-configuration, cloud computing, edge computing, fog computing,
                                                 reconfigurable computing, specialized processors, automatic design and synthesis tools 1



                                1. Introduction
                                The concepts of the Internet of Things (IoT) and cyber-physical systems have emerged
                                relatively recently, at a time when the computer, information and communication technologies
                                have reached high levels of their development. Although the methodological and technological
                                foundations for the implementation of these concepts were formed earlier, today their
                                development consists not only in the further expand of the application range and the emergence
                                of the newest instances of IoT and cyber-physical systems, from local and simple to large-scale
                                and complex, but also in the further improvements of methods of their design and operation,
                                and the invention of new architectural models and approaches to information processing. If


                                ICyberPhyS-2024: 1st International Workshop on Intelligent & CyberPhysical Systems, June 28, 2024, Khmelnytskyi,
                                Ukraine
                                ∗ Corresponding author.
                                † These authors contributed equally.

                                   viktor.melnyk@kul.pl (V. Melnyk); melnyk.anatoliy@itstep.org (A. Melnyk)
                                   0000-0002-5046-8002 (V. Melnyk); 0000-0002-8981-0530 (A. Melnyk)
                                            © 2024 Copyright for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0).




CEUR
                  ceur-ws.org
Workshop      ISSN 1613-0073
Proceedings
cloud computing had been used in the earliest IoT systems, today edge and fog computing IoT
systems were becoming more common, in which moderate and even intensive computations
are shifted from cloud to IoT nodes. Along with high computing capabilities, a number of
requirements is imposed to the latest IoT systems in terms of mobility, serviceability, autonomy,
adaptability, self-configuration, etc. [1] - [5].
A significant number of modern IoT systems are equipped with nodes based on reconfigurable
hardware platforms, which are implemented as Field-Programmable Gate Arrays (FPGAs).
Their use makes it possible to reconfigure the structure of the hardware components
implemented in them, thus changing their functional purpose in the system. Furthermore, the
specialized processors (SPs), implemented in FPGA-based IoT nodes, are characterized by 2-3
orders of magnitude higher efficiency on set of algorithms they execute as compared to
universal processors, resulting in higher performance, lower power consumption and
equipment volume [6]. Due to the need of data processing in IoT nodes in edge and fog
computing architectures, the SPs have become their conventional components [7].
   However, significant design time, high production costs and complex configuring process
are obstacles to implementation of SPs in IoT nodes. That is why the configuration and
maintenance of such IoT nodes in comparison with fully programmable ones, based on
universal processors, is more complex, namely the tasks of setting up and maintaining IoT
systems based on such nodes. It requires further development of methods of operation and
computational processes organization in the IoT systems built on FPGA-based nodes. This paper
proposes a method and a framework for IoT nodes self-configuring, that provide IoT systems
built with FPGA-based nodes with essentially new properties: self-configurability, self-
optimization, and functional self-adjustment. These also automate the processes of initial
configuration, technical maintenance, re-profiling and upgrading, shifting the responsibility of
their performance from a human to a system. In addition, these open new directions for the
further research and development in the field of IoT.
   The paper is structured as follows. In Sect. 2, we summarize the relevant literature with the
aim of evaluating different IoT architectural paradigms. In Sect. 3, we show approaches to the
implementation of computing components in IoT nodes, the advantages and disadvantages of
using universal and specialized processors for this purpose. In Sect. 4, characteristic features of
FPGA-based IoT nodes are revealed, the benefits and complexities of using reconfigurable
hardware in IoT nodes are shown. In Sect. 5, the challenges of FPGA-based node application in
IoT systems are analyzed, which have a huge impact on setup, manageability, and functional
re-profiling of IoT systems. To address these challenges, the foundations for self-configuring of
FPGA-based IoT nodes, which are based on specialized processors automatic design and
synthesis tools, are discussed in Sect. 6, and in Sect. 7 the method and framework for self-
configuring of FPGA-based nodes in IoT systems are proposed. In Sect. 8, we formulate the
benefits of self-configuring of IoT Nodes and show the ways of addressing the challenges of
FPGA-based nodes application in IoT systems. And finally, in Sect. 9 we draw our conclusions.

2. Related Research
Today, there are several views on the architecture of IoT systems, which differ in structuring
of its levels. In scientific works [5], [8], three layers of architecture of such systems are
described:
   •   Perception: sensors, actuators and edge devices that interact with the environment;
   •   Network: connects devices in a network in coordination with the application layer;
   •   Application: data processing and storage within special services and functionality for
       users.

   In some other scientific papers, in particular, [9], edge devices are taken out into a separate
layer, a layer of edge computing IT systems. Thus, a four-layer model of IoT systems is formed
which consists of sensors and actuators, Internet gateway layer and data acquisition systems,
edge IT and cloud analytics.
   Edge computing systems are used to perform preliminary analytics and data pre-processing.
Some additional processing may also be done here, prior to entering the cloud data server. The
goal of edge computing is to filter the data and reduce the amount of massive data sets by
economizing resources.
   The five-layer IoT architecture [5], [8] enhances the previous one with a business Layer
which defines the management for the entire IoT system and its functionality, business logic
and top-level requirements that need to be coordinated for a sustainable architecture that will
be of some consistent value to various business and end users. All three types of IoT
architecture, and how the next one enhances previous, are shown in Figure 1.




Figure 1: Three types of IoT architecture.

   Another tendency in the development of IoT architecture is a fog computing. It involves
moving individual IoT services closer to the elements of the sensory level, at the edge
computing level, in order to speed up decision-making and increase the level of automation
[10], [11].
   In fog computing IoT architecture the corresponding fog layer is introduced which includes
several sub-layers: security, storage, preprocessing and monitoring [5]. It is placed between the
perception and transport layers. According to [12], the following essential characteristics of fog
computing help to distinguish it from other computing paradigms:

   •   Contextual location awareness and low latency;
   •   Geographical distribution of nodes and support of services to moving vehicles;
   •   Heterogeneity in terms of collecting and processing of data of different forms acquired
       through various types of networks;
   •   Interoperability of the fog computing components;
   •   Real-time interactions;
   •   Scalability and agility of fog-node clusters. Fog computing is stated to be adaptive in
       nature in order to enable network condition variations and changes, resource pooling
       and data-load changes.

    Two additional characteristics associated with fog computing are the predominance of
wireless access of the nodes to the network and the mobility support. The following fog node
attributes, defined in [12], are distinguished: the heterogeneity for enabling deployment in
different environments, manageability and programmability for easy and automated services
and changes of the functions performed by compute and storage resources of nodes.
    What differs fog computing from the edge computing is that the first one allows dynamic
reconfiguration for different applications while performing intelligent computing and
transmission services, while the edge computing uses specific applications in a fixed logic
location and provides a direct transmission service.
    Papers [13], [14] discuss new challenges in IoT systems which require new architectural and
technological solutions. Several examples of IoT application in systems that require such
solutions are given there.
    Among them, resource-constrained IoT devices – sensors, data collectors, actuators,
controllers, cars, drones, medical devices embedded in patients and others. Such devices, having
very limited resources, must often perform quite computationally intensive tasks while
performing various operations, but their direct interaction with the cloud is costly and resource-
intensive [15], therefore, impractical.
    Considering cyber-physical systems, the five-layer structure proposed in [16] can also be
enhanced with the edge computing layer and fog computing layer, taking into account above-
mentioned consideration, thus forming the structure shown in Figure 2.
    In complex cyber-physical systems, including industrial control systems, smart cities and
connected cars and trains, uninterrupted and safe operation is a top priority task. If there is a
need, for instance, to install software updates on cars, they have to be brought to technical
stations for some time which can result in costs losses. Thus, updating the hardware and
software in such cyber-physical systems is severely limited and must be planned in advance.
    There is also a number of security issues in IoT systems, requiring their nodes performing
cryptographic algorithms and protocols, to be updated in order to withstand new security
threads and keep security credentials and resources up to date on large number of nodes.
    The edge and fog computing IoT architectures are aimed to address these issues, while
performing control, storage, computing and networking functions closer to end user devices.
    Along with that, for the further development of IoT systems in order to increase their
efficiency and provide them with new quality characteristics, it is necessary to create a
theoretical and methodological foundations for building their infrastructure which will enable
fast and automatic change of their functionality, perform optimization and updating, adapt to
environmental conditions.
    Nowadays, significant efforts are put into solving the issue of self-organization and self-
adaptation of IoT systems [17] - [19], but they are mostly focused on systems with nodes based
on all-purpose programmable processors or microcontrollers. In contrast, in FPGA-based
systems, these issues are still investigated insufficiently. Our approach to address these
challenges is given out in the following sections of the paper.
Figure 2: Cyber-physical system multilayer architecture.

3. Data Processing in IoT Node: Resources and Troubles
Depending on the functions carried by IoT node, its structure may vary – it may contain sensors
or / and actuators, possess different computational and storage capacity, embedded power
supply, etc. In general, a structure of an IoT node contains primary sensors to collect data from
physical environment, in which they operate, a data acquisition system (usually containing an
analog-digital converter), a processing unit to perform data processing and communication, a
memory to store information related to data acquisition and further processing along with a
software, specifying the processing algorithms and the operating system software.
   To process data in IoT nodes the all-purpose processors and specialized processors are used.
Obviously, the use of high-performance all-purpose processors like Xeon, Pentium or Core i7
produced by Intel, or Ryzen, Athlon produced by AMD, cannot be applied reasonably due to high
power consumption. On the other hand, computing capabilities of low-power energy efficient
processors, e.g., G-Series produced by AMD or ARM Cortex are not always sufficient for many
IoT applications.
   The SP architecture is optimized to run only the specified algorithms. Due to the task
characteristics consideration and the hardware implementation of algorithms, they achieve
higher performance, low energy consumption and low equipment volume as compared to
universal processors. This explains why SPs are used today in many important applications,
including deep learning and mining cryptocurrencies. SPs of different types and functions are
used on different layers of an IoT architecture [16].
   There are two major troubles of SP application that IoT node designers are facilitated with.
Firstly, it is the high cost of its production as custom integrated circuits. Secondly, a significant
increase in its design time due to the overall increase in the complexity of the SP architecture
which results from the increased complexity of the algorithms performed and the need to
achieve higher performance as well as due to the complicated SP design process because it must
ensure the optimum energy consumption / performance ratio.
   The following solutions can be applied to resolve these troubles: 1) the use of reconfigurable
computing in IoT nodes and 2) the implementation of SPs in the FPGA and the use of high-level
software tools (e.g., C2HDL, HDL denotes a hardware description language) for the automatic
design and synthesis of SPs. Both solutions will be considered in detail further on.

4. FPGA-Based IoT Nodes Features
In recent years, the share of reconfigurable computing that is mostly FPGA-based has increased.
In FPGA, being reconfigurable hardware devices, the components can be arranged in different
ways to implement various computing devices [20]. The use of FPGAs is absolutely feasible in
IoT nodes as they contain the reconfigurable logic arrays, arithmetic devices and even digital
signal processor units for specialized computations, embedded memory for data and program
storage, standard interface controllers. In addition, many modern FPGAs contain all-purpose
processors that could be used for specialized computational control and decision making. These
processors can be integrated into the FPGA chips as full custom regions or delivered in a form
of soft cores and synthesized in FPGA together with other specialized computational means.
The full-custom microprocessor implementation is, for example, ARM Cortex in FPGA and SoC
devices from AMD Xilinx and Intel Altera. The widely known microprocessor soft cores are the
VHDL-models of the 32-bit LEON3 processor with the SPARC V8 architecture produced by
Aeroflex Gaisler, the 32-bit embedded processors Nios II from Intel Altera and MicroBlaze from
AMD Xilinx with the architecture adapted to their own FPGAs.
    FPGA-based IoT nodes are quite common today. In nodes, the FPGAs are used to deploy
specialized computing and decision-making means. In terms of computing, they can be used to
implement specialized processors to execute various algorithms, for example, compression [21],
sound processing [22], image processing [23] and cryptographic transformations [24].
    Although implemented in reconfigurable hardware SPs possess a number of benefits listed
above, their design flow is rather complex and challenging. The first challenge is the need of
designing SP IP cores to be implemented in FPGA that require specialists and software packages
for IP Cores design, testing, synthesis and implementation, causing material and time expenses,
intellectual efforts etc. The second challenge is inability to develop such specialized processors
IP Cores, which will be effective on classes of problems. This challenge imposes a critical
limitation of FPGA-based IoT nodes: they are effective only for certain classes of problems, for
which their SPs IP cores were developed.
    Nevertheless, the benefits of FPGA-based IoT nodes made them efficient for a wide range of
application domains, where nodes with fixed storage and computing hardware resources fain
in their capabilities.

5. Challenges of FPGA-Based Nodes Application in IoT Systems
There is a number of challenges associated with FPGA-based IoT nodes application that are
typical for IoT systems, especially with the edge nodes and fog nodes:

   •   Challenge 1: installation of IoT nodes in the network.
        ‒ The installation of IoT nodes and the organization of their operation in the network
            are carried out in such a way that the topology of the network is initially developed,
            the types and functions of its elements are determined, then the elements of the
            network are prepared, mounted in the proper places, and the interaction is set up
              and debugged. Each network node must be connected to the computer in order to
              configure its built-in FPGA.
   •   Challenge 2: changes of IoT node functions in the network.
         ‒ This need may arise as a result of changing the coordinates of the IoT node (the
              fog node, in particular) and / or the parameters of the environment in which it
              operates, as a consequence of the IoT node interaction with the environment, other
              IoT nodes or elements of the network, or the need to change the node functions
              with time. The changing of the node functions is performed by changing the logic
              (program) of its operation while keeping the sensor and power supply system as
              well as the executive system untouched. Example 1: Performing the operation of
              cryptographic data protection. Example 2: Performing the operation of a sensor /
              data fusion function, which produces a new metric parameter.
   •   Challenge 3: upgrading / optimizing a network or its individual nodes without changing
       functionality.
         ‒ The upgrading and optimizing can be performed in order to improve the
              parameters of the IoT node operation – to reduce the time of function execution
              and power consumption etc.
   •   Challenge 4: creating configurations for the IoT node built-in FPGA and its configuring,
       i.e., realization of processors for specialized computations, interface controllers and
       other components of built-in FPGAs.
         ‒ Firstly, implementing in FPGA requires specialized processors IP cores designing
              (or getting ready-made solutions from the third parties). Designing process is
              laborious and requires significant financial and time costs as it involves
              architectural designing of the specialized processors, IP cores development and
              debugging by using the hardware description language and their logic synthesis in
              the target FPGA. As a result of the logic synthesis, the FPGA configuration code is
              obtained.
         ‒ Secondly, after the specialized processor designing, a problem of loading the
              configuration code into the IoT node built-in FPGA arises. For its solution, it is
              necessary to connect the above-mentioned node to a computer with the relevant
              software installed in order to perform the configuration procedure. Taking into
              account the scale of the network (that may involve hundreds or thousands
              geographically distant nodes), one may realize how longstanding and complicated
              this process can be. Moreover, changing functions or even adjusting operating
              parameters of the IoT node may require FPGA reconfiguration which makes the
              network rigid, inert and hardly suitable for modernization or re-profiling.

6. Automatic Design and Synthesis Tools application for Self-
   Configuring of FPGA-Based IoT Nodes
To enable a rapid and automatic change of IoT nodes functionality, perform optimization and
updating, adapt to environmental conditions, we need to create an approach for high-level
hardware-independent specification of the operating algorithms which the nodes have to
execute in the IoT system. Our task is also to develop a complex of software tools that would
receive this hardware-independent specification and create universal microprocessors
executable files and FPGA configurations for FPGA-based IoT nodes automatically.
   The core of such tools is a software that allows generating the HDL-models of SPs
automatically, by inputting the description of the algorithm to be performed in a high-level
programming language. This software is primarily aimed to solve above mentioned issues of
SPs conventional design flow. In our research the Chameleon C2HDL design tool developed by
Intron was used [25].
   In order to generate SP HDL models with the Chameleon, the following should be included
into the specification:

   •   The algorithm, which a SP has to execute, represented as ANSI C language software
       module;
   •   Test vectors for functional verification (if needed);
   •   The SP interface: the number of input/output signals and their width;
   •   Data format (width, signed/unsigned, unfixed/fixed point);
   •   Constrains for the algorithm execution time (the time between the moment of the last
       input data item submission to the SP and the moment of the last result coming out from
       the SP).

   The preparation and submission of the listed above is incomparably simpler and faster than
a manual design of a SP according to the conventional design process. Therefore, in our
research, the Chameleon tool (or other similar tools) can perform the automatic design of SPs
for FPGA-based IoT nodes.
   Our next step, in order to obtain FPGA configurations for FPGA-based IoT nodes, is to
compile the design with logic synthesis tools. Such tools are able to perform this task
automatically, by inputting the HDL description and design specification – FPGA type and
package, pin assignment information, area and performance constrains, etc. Xilinx ISE, Intel
Quartus II are widely used tools for logic synthesis. Such automatic design flow is shown in
Figure 3 on the right, while the conventional design flow is depicted on the left.




Figure 3: Benefits of C2HDL Design Tools application: conventional FPGA-based SP design
flow (left) and design flow with C2HDL Design Tools (right).
    Finally, there is a need for the high-level hardware-independent specification of the
operating algorithms to be split between the IoT node embedded processing units – the
universal processor and FPGA. This task can be done with computational load balancing
systems, examples of which are given in [26], [27], [28], [29]. Such systems split input source
program onto two parts – the first one, comprising mostly of the control flow, should be
executed on the universal processor, and the second one, with the computationally intensive
data processing parts, should be executed by high-performance computing units. We suggest
this second part to be further implemented in FPGA, after automatic C2HDL conversion and SP
design and automatic logic synthesis.
    Thus, a total chain of SP design and synthesis with the mentioned tools can be performed
automatically. Moreover, since these processes should pass in IoT system without human
assistance, and imply creating and acquiring of the hardware structure (on the level of FPGA),
we can talk about the self-configuring of FPGA-based nodes in IoT system. This process is
illustrated in Figure 4.




Figure 4: Diagram of an FPGA-based IoT node self-configuring.

7. Method and Framework for Self-Configuring of FPGA-based
   Nodes in IoT Systems
Suppose the operation of nodes in IoT system is defined by the software modules written on
high-level programming language, for example C. These software modules can be refreshed or
updated periodically when the IoT system optimization or changes of the IoT node functions in
the network take place. The set of software modules comprises a full range of operational
algorithms the nodes can execute while functioning in IoT system, by preserving the abilities
to change the functionality, being mobile, manageable and highly productive. The function of
each node in an IoT system is defined according to its coordinates, state and environment
parameters.
    We propose placing these software modules into a repository (a library) at the IoT processing
layer and indexing them according to functionality they specify.
    The IoT node sends its coordinates, state and environment parameters to the IoT processing
layer, together with the parameters of its embedded universal microprocessor and FPGA, in the
following cases:

   •   at the time of the IoT system installation and its initial configuration,
   •   during the IoT system reprofiling or modernization,
   •   when its coordinates, state or environment parameters are changed (such behavior
       should be defined additionally according to IoT system operation characteristics).

   At the IoT processing layer, the index of the software module PHLL, which specifies the
function of the node in the IoT system, is determined according to the node coordinates, state
and environment parameters: index = f(C,S,EP); PHLL = SWML[index], where C is IoT node
coordinates, S – its state, and EP – its environment parameters in the IoT system, SWML –
software modules library. This module is then taken from the repository and sent, together with
the parameters of the IoT node embedded universal microprocessor (UPP) and reconfigurable
hardware platform, i.e., FPGA (RHPP), to the cloud-based automatic design and synthesis tools,
the complex of which is hereinafter referred to as the IoT Node Configuration Generation System.
When the IoT Node Configuration Generation System receives the above software module and
parameters, it performs the following operations:

   •   automatically selects the most computationally intensive fragments in the software
       module and splits it onto two subprograms – the first one, SPUP, for the universal
       processor, and the second one, SPRHP, which is constructed from the selected fragments,
       for the reconfigurable hardware platform (i.e., FPGA): {SPUP&SPRHP} = CLB(PHLL), where
       CLB denotes the computational load balancing;
   •   performs the compilation of the first subprogram into the executable file obj suitable for
       the universal processor architecture and creates from the second subprogram the FPGA
       configuration file conf corresponding to FPGA parameters. The sequence of
       transformations performed during the SPRHP subprogram compilation includes the
       automatic generation of the SP HDL source code and its further logic synthesis with the
       corresponding design tools: conf = LS(HDLG(SPRHP)), where LS denotes the logic
       synthesis, HDLG – SP HDL source code generation;
   •   returns two files, obj and conf, to the IoT node.

    The IoT node acquires the configuration automatically after it receives the above-mentioned
files.
    The framework for IoT nodes self-configuring in the network is illustrated in Figure 5.
    To carry out the above-mentioned actions, the IoT Node Configuration Generation System
will contain a complex of software tools, namely:

   •   Computational load balancing tools for splitting the input program module into two
       subprograms, for the universal processor and FPGA respectively.
   •   Compiler(s) for the universal processor subprograms compilation from the input
       language they are written, into the object codes that may be directly executed by the
       universal processor of the IoT node (the processor parameters are considered).
   •   Tools for the automatic generation of the specialized processors HDL models from the
       RHP subprograms (the FPGA parameters are considered).
   •   Logic synthesis tools for specialized processors HDL models synthesis for the target
       FPGAs (the FPGA parameters are considered).
   There are two sets of the FPGA parameters. The first set consists of the FPGA type and
series, the package and the number of pins. It is the input information for the logic synthesis
tools. The second set of parameters are as follows: the amount and organization of the
embedded memory units, the arithmetic and logic devices, the basic logic elements and the
input/output blocks amount, the operating clock frequency and the energy consumption
constrains. These parameters are necessary for the specialized processor HDL model’s
generation tools to determine the specialized processor characteristics, particularly, the number
of parallel computational units, the maximum instruction memory size, the interface capacity,
etc.




Figure 5: The proposed framework for self-configuring of FPGA-based nodes in IoT system
with the automatic design and synthesis tools.

8. The Benefits of IoT Nodes Self-Configuring
The basic methodological and technological approaches which are used in the framework for
IoT nodes self-configuring are the following:
   •   the method of self-configuring of the computer system with reconfigurable logic, which
       enables the automation of the specialized processor HDL models design and synthesis
       processes [30];
   •   the “Software as a Service” model for software delivering via a network, which enables
       the above-mentioned processes to be performed as a service for the IoT nodes;
   •   the IoT technology itself, which is aimed to ensure that the configuration creation is
       initiated and transferred by the IoT node without human assistance.

   The proposed method and the framework for IoT nodes self-configuring imply the dynamic
reconfiguration of FPGA in the IoT nodes using the cloud-based automatic design and synthesis
service, which allows to provide IoT systems with advanced capabilities of automatic
adaptation, function changing, upgrading and optimizing. It is aimed to bring solutions to the
challenges specified in Sect. 5 of the paper, as follows:

   •   Solution to the challenge 1 (installation of the IoT nodes in the network):
        ‒ In order to get rid of the need to create the configurations of all IoT nodes in
            advance, and then mount them in the envisaged locations, it is possible to pre-place
            them at the locations in the network, and then each node, by providing its
            coordinates and environment parameters, will automatically receive the necessary
            configuration of the FPGA in order to perform the functions corresponding with
            these coordinates and the parameters of the environment.
   •   Solution to the challenge 2 (changes of the IoT node functions in the network):
        ‒ The changing of the IoT node functions is traditionally performed by the way of
            demounting each of them from a network location, connecting to a computer to
            change the configuration of its built-in FPGA, and re-mounting back to a location,
            or simply by replacing the node with a new one with the desired configuration.
            The volume of work is extremely large if the network consists of many territorially
            distanced nodes, and in the worst case is close to re-installation of the network.
        ‒ In order to eliminate the need for manual demounting of the IoT node, its
            reconfiguration and re-installation, the node can provide the relevant information
            to the cloud and obtain a new FPGA configuration automatically. The FPGA
            reconfiguration is also possible on the initiative of the network control nodes to
            change network functions.
   •   Solution to the challenge 3 (upgrading / optimizing of a network or its individual nodes
       without changing functionality):
        ‒ The upgrading of the IoT node is performed in the same way as the changing of
            functions, as described above. In order not to reconfigure the required IoT node
            manually, it is possible to do this remotely and automatically, for example, by
            replacing programs that specify the functions of the nodes and the corresponding
            change in the configuration of their built-in FPGAs.
   •   Solution to the challenge 4 (creating the configurations for the IoT node built-in FPGA
       and its configuring):
        ‒ The proposed framework for IoT nodes self-configuring enables to automate the
            processes of configuration, technical support, re-profiling and upgrading
            (modernization) of the networks which involve FPGA-based IoT nodes and replace
            the responsibility of their execution from the human to the system that applies
            cloud-based service with the automatic design and synthesis tools.

   In addition to solving the challenges described above, the proposed framework brings
essentially new properties to IoT systems with FPGA-based nodes – flexibility, functional self-
adjustment and adaptability. The latter property can be implemented at the level of hardware
(the concept of adaptive hardware: the optimization of the FPGA configuration) and at the level
of software (the concept of self-adaptive software: the optimization of the IoT node operation
algorithm, which is performed autonomously). Finally, the proposed technology opens up the
opportunity for creating smart networks, that will be, in essence, a new generation of networks
for IoT and cyber-physical systems.

9. Conclusions
The proposed method and framework for FPGA-based node self-configuring in IoT systems use
the method of self-configuring of the computer system with the reconfigurable logic, the
“Software as a Service” model, the Internet of Things technology and implies the automatic
generation of the specialized processors IP cores, their compilation and logic synthesis allowing
the specialized processors automatic design and synthesis to be performed as a service for the
FPGA-based IoT nodes. The framework and method are intended to solve several challenges
that are typical for their application, namely: (a) installation of the IoT nodes in the network,
(b) changes of the IoT node functions in the network, (c) upgrading / optimizing a network or
its individual nodes without changing functionality, and (d) creating configurations for the IoT
node built-in FPGA and its configuring.
    The framework and a method for FPGA-based IoT node self-configuring enable the
automation of the processes of initial configuring, technical support, re-profiling and upgrading
(modernization) of the IoT systems which involve FPGA-based nodes and replaces the
responsibility of their execution from the human to the system that applies cloud-based service
with the automatic design and synthesis tools. Additionally to flexibility and adaptability, they
provide IoT systems built with FPGA-based nodes with essentially new properties – self-
configurability, self-optimization, functional self-adjustment and re-profiling. It is a step to
creating smart networks, a new generation of networks for IoT and cyber-physical systems.

References
[1] S. Naveen and M. R. Kounte, Key Technologies and challenges in IoT Edge Computing,
    2019 Third International conference on I-SMAC (IoT in Social, Mobile, Analytics and
    Cloud) (I-SMAC), 2019, pp. 61-65, doi: 10.1109/I-SMAC47947.2019.9032541.
[2] R. P. Kumar and S. Smys, A novel report on architecture, protocols and applications in
    Internet of Things (IoT), 2018 2nd International Conference on Inventive Systems and
    Control (ICISC), 2018, pp. 1156- 1161, doi: 10.1109/ICISC.2018.8398986.
[3] S. A. Goswami, B. P. Padhya and K. D. Patel, Internet of Things: Applications, Challenges
    and Research Issues, 2019 Third International conference on I-SMAC (IoT in Social, Mobile,
    Analytics and Cloud) (I-SMAC), 2019, pp. 47-50, doi: 10.1109/I-SMAC47947.2019.9032474.
[4] N. Lata and R. Kumar, Internet of Things: A Review of Architecture and Protocols, 2020
     International Conference on Decision Aid Sciences and Application (DASA), 2020, pp.
     1027-1031, doi: 10.1109/DASA51403.2020.9317091.
[5] A. Calihman, Architectures in the IoT Civilization, January 30, 2019. Available online:
     https://www.netburner.com/learn/architectural-frameworks-in-the-iot-civilization/
     (accessed on 19 May 2024).
[6] N. Thompson, S. Spanuth, The Decline of Computers as a General Purpose Technology:
     Why Deep Learning and the End of Moore’s Law are Fragmenting Computing (November
     20, 2018). Available at SSRN: https://ssrn.com/abstract=3287769 (accessed on 19 May 2024).
[7] I. Sultan, M. T. Banday, “A Study of the Design Architectures of Configurable Processors
     for the Internet of Things,” 2018 3rd International Conference on Contemporary
     Computing and Informatics (IC3I), 2018, pp. 320-325, doi: 10.1109/IC3I44769.2018.9007256.
[8] H. Rahimi, A. Zibaeenejad, A. A. Safavi, A Novel IoT Architecture based on 5G-IoT and
     Next Generation Technologies, to be presented at IEEE IEMCON conference, Vancouver,
     BC,            Canada,              Nov.           2018.            Available          online:
     https://arxiv.org/ftp/arxiv/papers/1807/1807.03065.pdf (accessed on 19 May 2024).
[9] S. Vanitha, P. Balasubramanie, K.S. Arvind, V.R. Niveditha, Saravanan Elumalai, “Internet
     of Things: a Review on Their Requisite in The Digital Era,” International Journal of
     Advanced Science and Technology Vol. 29, No. 9s, (2020), pp. 591-602.
[10] Pallavi Sethi, Smruti R. Sarangi, Internet of Things: Architectures, Protocols, and
     Applications. Journal of Electrical and Computer Engineering / 2017 (1):1-25.
[11] M. Yannuzzi, R. Milito, R. Serral-Gracia, D. Montero, and M. Nemirovsky, “Key ingredients
     in an IoT recipe: fog computing, cloud computing, and more fog computing,” in
     Proceedings of the IEEE 19th International Workshop on Computer Aided Modeling and
     Design of Communication Links and Networks (CAMAD ’14), pp. 325–329, Athens, Greece,
     December 2014.
[12] M. Iorga, L. Feldman, R. Barton, M. J. Martin, N. S. Goren, and C. Mahmoudi, “Fog
     computing conceptual model,” 2018. NIST Special Publication 500-325.
[13] M. Chiang and T. Zhang, “Fog and IoT: An overview of research opportunities,” IEEE
     Internet Things J., vol. 3, no. 6, pp. 854-864, Dec. 2016, doi: 10.1109/JIOT.2016.2584538.
[14] P. Pieta, S. Deniziak, R. Belka, Miroslaw Plaza, Malgorzata Plaza, Multi-domain model for
     simulating smart IoT-based theme parks, in Proc. SPIE 10808, Photonics Applications in
     Astronomy, Communications, Industry, and High-Energy Physics Experiments 2018,
     108082T (1 October 2018); doi: 10.1117/12.2501659.
[15] S. Lysenko, O. Bondaruk, Advanced Methods for Maintaining and Managing the Life Cycle
     of Cloud Environments: Survey. Computer Systems and Information Technologies, (1),
     2024, p. 39–45. https://doi.org/10.31891/csit-2024-1-5.
[16] A. Melnyk, Cyber-physical systems multilayer platform and research framework,
     Advances in cyber-physical systems, 1 (1), 2016, pp.1- 6.
[17] A. P. Athreya, B. DeBruhl and P. Tague, Designing for self-configuration and self-
     adaptation in the Internet of Things, 9th IEEE International Conference on Collaborative
     Computing: Networking, Applications and Worksharing, Austin, TX, 2013, pp. 585-592.
[18] M. T. Moghaddam, E. Rutten, P. Lalanda, G. Giraud, “IAS: an IoT Architectural Self-
     Adaptation Framework,” 14th European Conference on Software Architecture (ECSA), Sep.
     2020, L’Aquila, Italy. ffhal-02900674.
[19] I. Chatzigiannakis et al., True self-configuration for the IoT, 2012 3rd IEEE International
     Conference on the Internet of Things, Wuxi, 2012, pp. 9-15.
[20] R. Tessier, K. Pocek, A. DeHon, Reconfigurable Computing Architectures, in Proceedings
     of the IEEE, vol. 103, no. 3, pp. 332-354, March 2015, doi: 10.1109/JPROC.2014.2386883.
[21] J. Chen, M. Daverveldt, Z. Al-Ars, FPGA Acceleration of Zstd Compression Algorithm, 2021
     IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW),
     2021, pp. 188- 191, doi: 10.1109/IPDPSW52791.2021.00035.
[22] B. da Silva, L. Segers, Y. Rasschaert, Q. Quevy, A. Braeken, A. Touhafi, A Multimode SoC
     FPGA-Based Acoustic Camera for Wireless Sensor Networks, 2018 13th International
     Symposium on Reconfigurable Communication-centric Systems-on-Chip (ReCoSoC), 2018,
     pp. 1-8, doi: 10.1109/ReCoSoC.2018.8449381.
[23] R. Cheour, S. Khriji, D. E. Houssaini, M. Baklouti, M. Abid, O. Kanoun, “Recent Trends of
     FPGA Used for Low-Power Wireless Sensor Network,” in IEEE Aerospace and Electronic
     Systems Magazine, vol. 34, no. 10, pp. 28-38, 1 Oct. 2019, doi: 10.1109/MAES.2019.2901134.
[24] H. T. Huynh, T. K. Tran, T. P. Dang, T. T. Bui, “Security Enhancement for IoT Systems
     Based on SoC FPGA Platforms,” 2020 4th International Conference on Recent Advances in
     Signal Processing, Telecommunications Computing (SigTelCom), 2020, pp. 35-39, doi:
     10.1109/SigTelCom49868.2020.9199016.
[25] A. Melnyk, V. Melnyk, Specialized Processors Automatic Design Tools-the Basis of Self-
     Configurable Computer and Cyber-Physical Systems. 2019 IEEE International Conference
     on Advanced Trends in Information Theory, ATIT 2019 - Proceedings, pp. 326-335.
     DOI:10.1109/ATIT49449.2019.9030481.
[26] V. Melnyk, V. Stepanov, Z. Saraireh, Computational Load Balancing System Between the
     Host-Computer and Self-Configurable Accelerator, Scientific Bulletin of Chernivtsi
     National University “Computer systems and components”. 3 Issue 1 (2012) pp. 6-16.
[27] S. Amiri, S. Abdi, S. Sharifzadeh, "Simultaneous Multiprocessing on FPGA-CPU
     Heterogeneous Chips," 2021 22nd IEEE International Conference on Industrial Technology
     (ICIT), Valencia, Spain, 2021, pp. 805-809, doi: 10.1109/ICIT46573.2021.9453638.
[28] S. Amiri, M. Hosseinabady, A. Rodriguez, R. Asenjo, A. Navarro and J. Nunez-Yanez,
     "Workload Partitioning Strategy for Improved Parallelism on FPGA-CPU Heterogeneous
     Chips," 2018 28th International Conference on Field Programmable Logic and Applications
     (FPL), Dublin, Ireland, 2018, pp. 376-3764, doi: 10.1109/FPL.2018.00071.
[29] M. Khatti, X. Tian, Y. Chi, L. Guo, J. Cong, Z. Fang, "PASTA: Programming and Automation
     Support for Scalable Task-Parallel HLS Programs on Modern Multi-Die FPGAs," 2023 IEEE
     31st Annual International Symposium on Field-Programmable Custom Computing
     Machines (FCCM), Marina Del Rey, CA, USA, 2023, pp. 12-22, doi:
     10.1109/FCCM57271.2023.00011.
[30] A. Melnyk, V. Melnyk. Self-Configurable FPGA-Based Computer Systems, Advances in
     Electrical and Computer Engineering, vol. 13, no. 2, 2013, pp. 33-38.