<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://c4d.lias-lab.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Univaq</id>
	<title>COMP4DRONES - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://c4d.lias-lab.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Univaq"/>
	<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php/Special:Contributions/Univaq"/>
	<updated>2026-04-07T01:07:17Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP4-33&amp;diff=787</id>
		<title>WP4-33</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP4-33&amp;diff=787"/>
		<updated>2022-11-12T17:34:26Z</updated>

		<summary type="html">&lt;p&gt;Univaq: /* Contribution and Improvements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Autonomy, cooperation, and awareness=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP4-33&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Methodological&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Sensors, actuators and computing devices.&lt;br /&gt;
|-&lt;br /&gt;
|   Provide		|| An efficient methodology for the design of robust digital control algorithms for the autonomous and cooperative navigation of UAVs.&lt;br /&gt;
|-&lt;br /&gt;
|   Input		|| Measurements from sensors signal.&lt;br /&gt;
|-&lt;br /&gt;
|   Output		|| Control actions.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D building block		|| Flight Control.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 3-4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Detailed Description==&lt;br /&gt;
&lt;br /&gt;
One of the main challenges when dealing with drone flight control systems is to provide control algorithms taking into account possible measurement errors as well as possible actuation disturbances. Indeed, in practical operative situations, the measurements provided by the sensors to the drone flight control are often affected by errors mainly due to devices uncertainties. As well, the actuators involved in the control actions (i.e., the drone motors) are often affected by disturbances due to possible malfunctioning of the motors or to uncertainties in the devices which make use of the control input. In the literature concerning drone flight control systems, control algorithms are often provided without taking into account of such possible issues. Moreover, such control algorithms are often designed in a continuous-time basis and problems concerning the sampling and the quantization of the control law are not taken into account. These facts easily lead to a deterioration of the performances when such control algorithms are applied in practice. The drone flight control should be able to compensate and reject possible actuation disturbances and measurement uncertainties. Furthermore, the control algorithm should be designed by taking into account the sampling and the quantization of the input/output channels. In the context of UC5, the developed software concerns a novel robust sampled—data control strategy allowing the attenuation of bounded actuation disturbances as well as of bounded observation error.&lt;br /&gt;
&lt;br /&gt;
It is well-known that a swarm of drone, in which each agent locally interacts with the other agents and the environment, is able to perform complex tasks which are not achievable by the use of a single agent. Therefore, the use of multiple UAVs as an organized swarm can significantly increase the performances of the single UAV, as well as of the overall group (see [1]-[3]). Indeed, each agent of the swarm is allowed to make use of the resources and capabilities of other agents through communication and/or coordination, and provide it with extra capabilities. Many approaches to the formation control problem of UAVs have been presented in the literature (see, among the others, [4]-[9]). On the other hand, contributions which simultaneously address time-varying formation, switching topology and the collision avoidance have never been provided. In the context of UC5, the developed software concerns a novel control strategy for the deployment of multi-UAV systems in a distributed time-varying set-up, where UAVs rely on local communication and computation. In particular, the control algorithm allows the main swarm intelligence strategies, namely flight formation, swarm tracking, and social foraging. Finally, the robust control strategy proposed in Section 1.1 is integrated to the algorithm and an efficient methodology for its implementation on FPGAs is presented.&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
Robust Digital Control for Autonomous Navigation&lt;br /&gt;
&lt;br /&gt;
In the context of UC5, in order to provide a control strategy for the compensation and rejection of environmental perturbations, measurement uncertainties, and possible faults, a robustified quantized sampled-data drone flight controller is proposed. In particular, by the use of ISS (Input-to-State Stability) redesign methodology (see, for instance, [13]), a new term to be added to the feedback is designed in order to make it robust with respect to any bounded measurement error as well as any bounded actuation disturbance. Then, the stabilization in the sampled-and-hold sense theory (see [10]-[12]) is used as tool for analytically proving the existence of a suitably small sampling period and of an accurate quantization of the input/output channels such that the semi-global practical stability of the related quantized sampled-data closed-loop system with arbitrarily small final tracking error is ensured. It is highlighted that such control algorithm does not need any knowledge concerning the nature of the measurement errors and of the actuation disturbances. The only knowledges required for the implementation of the control algorithm are their amplitude bounds. Moreover, the provided algorithm is a static state feedback controller which can be easily implemented on FPGAs. Summarizing, in the context of UC5, the provided control algorithm contributes to the following requirements:&lt;br /&gt;
•	managing of critical situation with improved situation awareness (task interferences, scheduling issues, fault of failure conditions)&lt;br /&gt;
•	providing efficient digital implementation of discrete–time controllers on FPGAs&lt;br /&gt;
•	compensate and reject environmental perturbations, and measurement uncertainties.&lt;br /&gt;
Simulations of the provided control algorithm have been performed. A comparison of the robustified controller with the non-robustified one is also carried out. See figures 1-4.&lt;br /&gt;
 &lt;br /&gt;
[[File:01.jpg|400px|Figure 1. Trajectory of the quadcopter along x, y and z axes: the desired position in the space is reported with a rhomboidal black point; the trajectory of the quadcopter in the case of robustified and non robustified controller is reported in blue and red line, respectively.]] [[File:02.jpg|400px|Figure 2 Trajectory of the quadcopter along x, y and z axes: the desired trajectory in the space is reported with a yellow line; the trajectory of the quadcopter in the case of robustified and non robustified controller is reported in blue and red line, respectively.]]&lt;br /&gt;
&lt;br /&gt;
[[File:03.jpg|400px|Figure 3. Angles and positions of the UAV: the trajectory of the quadcopter in the case of robustified and non robustified controller is reported in blue and black line, respectively.]] [[File:04.jpg|400px|Figure 4. Tracking errors for angles and position of the UAV: the trajectories of the tracking errors in the case of robustified and non robustified controller are reported in blue and black lines, respectively.]]&lt;br /&gt;
&lt;br /&gt;
Controlling Swarms of Drones&lt;br /&gt;
&lt;br /&gt;
The proposed component concerns a distributed control strategy for swarms of drones based on the leader-follower consensus approach which allow to take into account time-varying formations and switching topologies, while ensuring the collision avoidance of multi-UAVs and the rejection of environmental perturbations, and measurement uncertainties. The software is based on a distributed control strategy for steering the agents of the swarm towards a collection point. In order to cope with the formation control, a procedure to arrange agents in a family of geometric formations is included in the software. Swarm tracking is allowed by including also a distributed mechanism based on the so-called leader-following consensus to move the entire swarm in accordance with a predefined trajectory. Moreover, a social foraging strategy that allows agents to avoid obstacles is included in the software by imposing on-line a time-varying formation pattern. Finally, a software component for the attenuation of actuation disturbances and measurements errors is developed and integrated to the control strategy (see forthcoming Section 4). The provided algorithm can be easily implemented on FPGAs. An efficient methodology for the implementation of the provided component will be also presented (see forthcoming Section 4). Summarizing, the developed software simultaneously addresses a challenging time-varying distributed set-up of the UAVs, characterized by the following features: &lt;br /&gt;
(i)	each UAV has limited resources in terms of communication coverage, so that it can only receive information locally from a time-varying subset of the swarm; &lt;br /&gt;
(ii)	the UAVs are required to dynamically avoid obstacles by imposing on-line a time-varying formation pattern; &lt;br /&gt;
(iii)	both the topology of communication and the configuration of leader and followers are time-varying. &lt;br /&gt;
Summarizing, in the context of UC5, the provided control algorithm contributes to the following requirements:&lt;br /&gt;
•	autonomous and cooperative flight of UAVs&lt;br /&gt;
•	managing of critical situation with improved situation awareness (obstacle avoidance, constrained communication)&lt;br /&gt;
•	providing efficient digital implementation of discrete–time controllers on FPGAs&lt;br /&gt;
•	compensate and reject environmental perturbations, and measurement uncertainties.&lt;br /&gt;
In Figs. 5-8, simulations of the proposed control algorithm are reported.&lt;br /&gt;
&lt;br /&gt;
[[File:05.jpg|400px|Figure 5. Control of the UAVs trajectories with a sinusoidal target movement.]] [[File:06.jpg|400px|Figure 6. Control of the UAVs trajectories in a narrow corridor.]]&lt;br /&gt;
&lt;br /&gt;
[[File:07.jpg|400px|Figure 7. The case of robustified (black line) and no-robustified (red line) controller.]] [[File:08.jpg|400px|Figure 8. The case of robustified (continuous  line) and no-robustified (dashed line) controller.]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] A. Bandala, E. Dadios, R. Vicerra, L. G. Lim, “Swarming algorithm for unmanned aerial vehicle (UAV) quadrotors: Swarm behavior for aggregation, foraging, formation, and tracking”, J. Adv. Comput. Intell. Intell. Inform., vol. 18, 2014, pp 745-751.&lt;br /&gt;
&lt;br /&gt;
[2] A. Kushleyev, D. Mellinger, C. Powers, V. Kumar, “Towards a swarm of agile micro quadrotors”, Auton. Robots, vol. 35, 2013, pp 287-300.&lt;br /&gt;
&lt;br /&gt;
[3] C. Wang, H. Tnunay, Z. Zuo, B. Lennox, Z. Ding, “Fixed-time formation control of multirobot systems: Design and experiments”, IEEE Trans. Ind. Electron., vol. 66, 2019, pp 6292-6301.&lt;br /&gt;
&lt;br /&gt;
[4] Z. Song, C. Duan, J. Wang, Q. Wu, “Chattering-free full-order recursive sliding mode control for finite-time attitude synchronization of rigid spacecraft”, J. Franklin Inst., vol. 356, 2019, pp 998-1020.&lt;br /&gt;
&lt;br /&gt;
[5] J. Wang, Z. Zhou, C. Wang, J. Shan, “Multiple quadrotors formation flying control design and experimental verification”, Unmanned Syst., vol. 7, 2019, pp 47-54.&lt;br /&gt;
&lt;br /&gt;
[6] Z. Gu, P. Shi, D. Yue, Z. Ding, “Decentralized adaptive event-triggered h_∞ filtering for a class of networked nonlinear interconnected systems”, IEEE Trans. Cybern., vol. 49, 2018, pp 1570-1579.&lt;br /&gt;
&lt;br /&gt;
[7] B. Mu, Y. Shi, “Distributed LQR consensus control for heterogeneous multiagent systems: Theory and experiments”, IEEE/ASME Trans. Mech., vol. 23, 2018, pp 434-443.&lt;br /&gt;
&lt;br /&gt;
[8] S. Zhao, “Affine formation maneuver control of multi-agent systems”, IEEE Trans. Autom. Contr., vol. 63, 2018, pp 4140-4155.&lt;br /&gt;
&lt;br /&gt;
[9] S. Zhao, D. Dimarogonas, Z. Sun, D. Bauso, “A general approach to coordination control of mobile agents with motion constraints”, IEEE Trans. Automat. Contr., vol. 63, 2018, pp 1509-1516.&lt;br /&gt;
&lt;br /&gt;
[10] F. H. Clarke, “Discontinuous feedback and nonlinear systems”, Plenary Lecture at IFAC Conference on Nonlinear Control Systems, 2010.&lt;br /&gt;
&lt;br /&gt;
[11] F. H. Clarke, Y. S. Ledyaev, E. D. Sontag and A. I. Subbotin, “Asymptotic controllability implies feedback stabilization”, IEEE Trans. Automat. Control, vol. 42, 1997, pp 1394-1407.&lt;br /&gt;
&lt;br /&gt;
[12] P. Pepe, ”Robustification of nonlinear stabilizers in the sample-and-hold sense”, Journal of The Franklin Institute, vol. 42, 2015, pp 4107-4128.&lt;br /&gt;
&lt;br /&gt;
[13] E. D.  Sontag, “Smooth stabilization implies coprime factorization”, IEEE Trans. Automat. Control, vol. 34, 1989, pp 435-443.&lt;br /&gt;
&lt;br /&gt;
[14] M. Di Ferdinando, P. Pepe, A. Borri, On Practical Stability Preservation under Fast Sampling and Accurate Quantization of Feedbacks for Nonlinear Time–Delay Systems, IEEE Transactions on Automatic Control, vol 66, pp 314–321, 2021. &lt;br /&gt;
&lt;br /&gt;
[15] M. Di Ferdinando, P. Pepe and S. Di Gennaro, &amp;quot;Robust Sampled-Data Consensus-Based Cooperative Control of Multi–UAVs,&amp;quot; 2021 29th Mediterranean Conference on Control and Automation (MED), 2021, pp. 167-172, doi: 10.1109/MED51440.2021.9480249.&lt;br /&gt;
 &lt;br /&gt;
[16] R. Carli, G. Cavone, N. Epicoco, M. Di Ferdinando, P. Scarabaggio and M. Dotoli, Consensus-Based Algorithms for Controlling Swarms of Unmanned Aerial Vehicles, Ad-Hoc, Mobile, and Wireless Networks. ADHOC-NOW 2020. Lecture Notes in Computer Science. &lt;br /&gt;
&lt;br /&gt;
[17] M. Di Ferdinando, D. Bianchi, S. Di Gennaro, P. Pepe, On the Robust Quantized Sampled--Data Leaderless Consensus Tracking of Nonlinear Multi--Agent Systems, IEEE Conference on Decision and Control, 2021.&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP4-33&amp;diff=786</id>
		<title>WP4-33</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP4-33&amp;diff=786"/>
		<updated>2022-11-12T17:34:18Z</updated>

		<summary type="html">&lt;p&gt;Univaq: /* Detailed Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Autonomy, cooperation, and awareness=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP4-33&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Methodological&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Sensors, actuators and computing devices.&lt;br /&gt;
|-&lt;br /&gt;
|   Provide		|| An efficient methodology for the design of robust digital control algorithms for the autonomous and cooperative navigation of UAVs.&lt;br /&gt;
|-&lt;br /&gt;
|   Input		|| Measurements from sensors signal.&lt;br /&gt;
|-&lt;br /&gt;
|   Output		|| Control actions.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D building block		|| Flight Control.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 3-4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Detailed Description==&lt;br /&gt;
&lt;br /&gt;
One of the main challenges when dealing with drone flight control systems is to provide control algorithms taking into account possible measurement errors as well as possible actuation disturbances. Indeed, in practical operative situations, the measurements provided by the sensors to the drone flight control are often affected by errors mainly due to devices uncertainties. As well, the actuators involved in the control actions (i.e., the drone motors) are often affected by disturbances due to possible malfunctioning of the motors or to uncertainties in the devices which make use of the control input. In the literature concerning drone flight control systems, control algorithms are often provided without taking into account of such possible issues. Moreover, such control algorithms are often designed in a continuous-time basis and problems concerning the sampling and the quantization of the control law are not taken into account. These facts easily lead to a deterioration of the performances when such control algorithms are applied in practice. The drone flight control should be able to compensate and reject possible actuation disturbances and measurement uncertainties. Furthermore, the control algorithm should be designed by taking into account the sampling and the quantization of the input/output channels. In the context of UC5, the developed software concerns a novel robust sampled—data control strategy allowing the attenuation of bounded actuation disturbances as well as of bounded observation error.&lt;br /&gt;
&lt;br /&gt;
It is well-known that a swarm of drone, in which each agent locally interacts with the other agents and the environment, is able to perform complex tasks which are not achievable by the use of a single agent. Therefore, the use of multiple UAVs as an organized swarm can significantly increase the performances of the single UAV, as well as of the overall group (see [1]-[3]). Indeed, each agent of the swarm is allowed to make use of the resources and capabilities of other agents through communication and/or coordination, and provide it with extra capabilities. Many approaches to the formation control problem of UAVs have been presented in the literature (see, among the others, [4]-[9]). On the other hand, contributions which simultaneously address time-varying formation, switching topology and the collision avoidance have never been provided. In the context of UC5, the developed software concerns a novel control strategy for the deployment of multi-UAV systems in a distributed time-varying set-up, where UAVs rely on local communication and computation. In particular, the control algorithm allows the main swarm intelligence strategies, namely flight formation, swarm tracking, and social foraging. Finally, the robust control strategy proposed in Section 1.1 is integrated to the algorithm and an efficient methodology for its implementation on FPGAs is presented.&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
Robust Digital Control for Autonomous Navigation&lt;br /&gt;
&lt;br /&gt;
In the context of UC 5, in order to provide a control strategy for the compensation and rejection of environmental perturbations, measurement uncertainties, and possible faults, a robustified quantized sampled-data drone flight controller is proposed. In particular, by the use of ISS (Input-to-State Stability) redesign methodology (see, for instance, [13]), a new term to be added to the feedback is designed in order to make it robust with respect to any bounded measurement error as well as any bounded actuation disturbance. Then, the stabilization in the sampled-and-hold sense theory (see [10]-[12]) is used as tool for analytically proving the existence of a suitably small sampling period and of an accurate quantization of the input/output channels such that the semi-global practical stability of the related quantized sampled-data closed-loop system with arbitrarily small final tracking error is ensured. It is highlighted that such control algorithm does not need any knowledge concerning the nature of the measurement errors and of the actuation disturbances. The only knowledges required for the implementation of the control algorithm are their amplitude bounds. Moreover, the provided algorithm is a static state feedback controller which can be easily implemented on FPGAs. Summarizing, in the context of UC5, the provided control algorithm contributes to the following requirements:&lt;br /&gt;
•	managing of critical situation with improved situation awareness (task interferences, scheduling issues, fault of failure conditions)&lt;br /&gt;
•	providing efficient digital implementation of discrete–time controllers on FPGAs&lt;br /&gt;
•	compensate and reject environmental perturbations, and measurement uncertainties.&lt;br /&gt;
Simulations of the provided control algorithm have been performed. A comparison of the robustified controller with the non-robustified one is also carried out. See figures 1-4.&lt;br /&gt;
 &lt;br /&gt;
[[File:01.jpg|400px|Figure 1. Trajectory of the quadcopter along x, y and z axes: the desired position in the space is reported with a rhomboidal black point; the trajectory of the quadcopter in the case of robustified and non robustified controller is reported in blue and red line, respectively.]] [[File:02.jpg|400px|Figure 2 Trajectory of the quadcopter along x, y and z axes: the desired trajectory in the space is reported with a yellow line; the trajectory of the quadcopter in the case of robustified and non robustified controller is reported in blue and red line, respectively.]]&lt;br /&gt;
&lt;br /&gt;
[[File:03.jpg|400px|Figure 3. Angles and positions of the UAV: the trajectory of the quadcopter in the case of robustified and non robustified controller is reported in blue and black line, respectively.]] [[File:04.jpg|400px|Figure 4. Tracking errors for angles and position of the UAV: the trajectories of the tracking errors in the case of robustified and non robustified controller are reported in blue and black lines, respectively.]]&lt;br /&gt;
&lt;br /&gt;
Controlling Swarms of Drones&lt;br /&gt;
&lt;br /&gt;
The proposed component concerns a distributed control strategy for swarms of drones based on the leader-follower consensus approach which allow to take into account time-varying formations and switching topologies, while ensuring the collision avoidance of multi-UAVs and the rejection of environmental perturbations, and measurement uncertainties. The software is based on a distributed control strategy for steering the agents of the swarm towards a collection point. In order to cope with the formation control, a procedure to arrange agents in a family of geometric formations is included in the software. Swarm tracking is allowed by including also a distributed mechanism based on the so-called leader-following consensus to move the entire swarm in accordance with a predefined trajectory. Moreover, a social foraging strategy that allows agents to avoid obstacles is included in the software by imposing on-line a time-varying formation pattern. Finally, a software component for the attenuation of actuation disturbances and measurements errors is developed and integrated to the control strategy (see forthcoming Section 4). The provided algorithm can be easily implemented on FPGAs. An efficient methodology for the implementation of the provided component will be also presented (see forthcoming Section 4). Summarizing, the developed software simultaneously addresses a challenging time-varying distributed set-up of the UAVs, characterized by the following features: &lt;br /&gt;
(i)	each UAV has limited resources in terms of communication coverage, so that it can only receive information locally from a time-varying subset of the swarm; &lt;br /&gt;
(ii)	the UAVs are required to dynamically avoid obstacles by imposing on-line a time-varying formation pattern; &lt;br /&gt;
(iii)	both the topology of communication and the configuration of leader and followers are time-varying. &lt;br /&gt;
Summarizing, in the context of UC5, the provided control algorithm contributes to the following requirements:&lt;br /&gt;
•	autonomous and cooperative flight of UAVs&lt;br /&gt;
•	managing of critical situation with improved situation awareness (obstacle avoidance, constrained communication)&lt;br /&gt;
•	providing efficient digital implementation of discrete–time controllers on FPGAs&lt;br /&gt;
•	compensate and reject environmental perturbations, and measurement uncertainties.&lt;br /&gt;
In Figs. 5-8, simulations of the proposed control algorithm are reported.&lt;br /&gt;
&lt;br /&gt;
[[File:05.jpg|400px|Figure 5. Control of the UAVs trajectories with a sinusoidal target movement.]] [[File:06.jpg|400px|Figure 6. Control of the UAVs trajectories in a narrow corridor.]]&lt;br /&gt;
&lt;br /&gt;
[[File:07.jpg|400px|Figure 7. The case of robustified (black line) and no-robustified (red line) controller.]] [[File:08.jpg|400px|Figure 8. The case of robustified (continuous  line) and no-robustified (dashed line) controller.]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] A. Bandala, E. Dadios, R. Vicerra, L. G. Lim, “Swarming algorithm for unmanned aerial vehicle (UAV) quadrotors: Swarm behavior for aggregation, foraging, formation, and tracking”, J. Adv. Comput. Intell. Intell. Inform., vol. 18, 2014, pp 745-751.&lt;br /&gt;
&lt;br /&gt;
[2] A. Kushleyev, D. Mellinger, C. Powers, V. Kumar, “Towards a swarm of agile micro quadrotors”, Auton. Robots, vol. 35, 2013, pp 287-300.&lt;br /&gt;
&lt;br /&gt;
[3] C. Wang, H. Tnunay, Z. Zuo, B. Lennox, Z. Ding, “Fixed-time formation control of multirobot systems: Design and experiments”, IEEE Trans. Ind. Electron., vol. 66, 2019, pp 6292-6301.&lt;br /&gt;
&lt;br /&gt;
[4] Z. Song, C. Duan, J. Wang, Q. Wu, “Chattering-free full-order recursive sliding mode control for finite-time attitude synchronization of rigid spacecraft”, J. Franklin Inst., vol. 356, 2019, pp 998-1020.&lt;br /&gt;
&lt;br /&gt;
[5] J. Wang, Z. Zhou, C. Wang, J. Shan, “Multiple quadrotors formation flying control design and experimental verification”, Unmanned Syst., vol. 7, 2019, pp 47-54.&lt;br /&gt;
&lt;br /&gt;
[6] Z. Gu, P. Shi, D. Yue, Z. Ding, “Decentralized adaptive event-triggered h_∞ filtering for a class of networked nonlinear interconnected systems”, IEEE Trans. Cybern., vol. 49, 2018, pp 1570-1579.&lt;br /&gt;
&lt;br /&gt;
[7] B. Mu, Y. Shi, “Distributed LQR consensus control for heterogeneous multiagent systems: Theory and experiments”, IEEE/ASME Trans. Mech., vol. 23, 2018, pp 434-443.&lt;br /&gt;
&lt;br /&gt;
[8] S. Zhao, “Affine formation maneuver control of multi-agent systems”, IEEE Trans. Autom. Contr., vol. 63, 2018, pp 4140-4155.&lt;br /&gt;
&lt;br /&gt;
[9] S. Zhao, D. Dimarogonas, Z. Sun, D. Bauso, “A general approach to coordination control of mobile agents with motion constraints”, IEEE Trans. Automat. Contr., vol. 63, 2018, pp 1509-1516.&lt;br /&gt;
&lt;br /&gt;
[10] F. H. Clarke, “Discontinuous feedback and nonlinear systems”, Plenary Lecture at IFAC Conference on Nonlinear Control Systems, 2010.&lt;br /&gt;
&lt;br /&gt;
[11] F. H. Clarke, Y. S. Ledyaev, E. D. Sontag and A. I. Subbotin, “Asymptotic controllability implies feedback stabilization”, IEEE Trans. Automat. Control, vol. 42, 1997, pp 1394-1407.&lt;br /&gt;
&lt;br /&gt;
[12] P. Pepe, ”Robustification of nonlinear stabilizers in the sample-and-hold sense”, Journal of The Franklin Institute, vol. 42, 2015, pp 4107-4128.&lt;br /&gt;
&lt;br /&gt;
[13] E. D.  Sontag, “Smooth stabilization implies coprime factorization”, IEEE Trans. Automat. Control, vol. 34, 1989, pp 435-443.&lt;br /&gt;
&lt;br /&gt;
[14] M. Di Ferdinando, P. Pepe, A. Borri, On Practical Stability Preservation under Fast Sampling and Accurate Quantization of Feedbacks for Nonlinear Time–Delay Systems, IEEE Transactions on Automatic Control, vol 66, pp 314–321, 2021. &lt;br /&gt;
&lt;br /&gt;
[15] M. Di Ferdinando, P. Pepe and S. Di Gennaro, &amp;quot;Robust Sampled-Data Consensus-Based Cooperative Control of Multi–UAVs,&amp;quot; 2021 29th Mediterranean Conference on Control and Automation (MED), 2021, pp. 167-172, doi: 10.1109/MED51440.2021.9480249.&lt;br /&gt;
 &lt;br /&gt;
[16] R. Carli, G. Cavone, N. Epicoco, M. Di Ferdinando, P. Scarabaggio and M. Dotoli, Consensus-Based Algorithms for Controlling Swarms of Unmanned Aerial Vehicles, Ad-Hoc, Mobile, and Wireless Networks. ADHOC-NOW 2020. Lecture Notes in Computer Science. &lt;br /&gt;
&lt;br /&gt;
[17] M. Di Ferdinando, D. Bianchi, S. Di Gennaro, P. Pepe, On the Robust Quantized Sampled--Data Leaderless Consensus Tracking of Nonlinear Multi--Agent Systems, IEEE Conference on Decision and Control, 2021.&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP4-33&amp;diff=785</id>
		<title>WP4-33</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP4-33&amp;diff=785"/>
		<updated>2022-11-12T17:33:38Z</updated>

		<summary type="html">&lt;p&gt;Univaq: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Autonomy, cooperation, and awareness=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP4-33&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Methodological&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Sensors, actuators and computing devices.&lt;br /&gt;
|-&lt;br /&gt;
|   Provide		|| An efficient methodology for the design of robust digital control algorithms for the autonomous and cooperative navigation of UAVs.&lt;br /&gt;
|-&lt;br /&gt;
|   Input		|| Measurements from sensors signal.&lt;br /&gt;
|-&lt;br /&gt;
|   Output		|| Control actions.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D building block		|| Flight Control.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 3-4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Detailed Description==&lt;br /&gt;
&lt;br /&gt;
One of the main challenges when dealing with drone flight control systems is to provide control algorithms taking into account possible measurement errors as well as possible actuation disturbances. Indeed, in practical operative situations, the measurements provided by the sensors to the drone flight control are often affected by errors mainly due to devices uncertainties. As well, the actuators involved in the control actions (i.e., the drone motors) are often affected by disturbances due to possible malfunctioning of the motors or to uncertainties in the devices which make use of the control input. In the literature concerning drone flight control systems, control algorithms are often provided without taking into account of such possible issues. Moreover, such control algorithms are often designed in a continuous-time basis and problems concerning the sampling and the quantization of the control law are not taken into account. These facts easily lead to a deterioration of the performances when such control algorithms are applied in practice. The drone flight control should be able to compensate and reject possible actuation disturbances and measurement uncertainties. Furthermore, the control algorithm should be designed by taking into account the sampling and the quantization of the input/output channels. In the context of UC 5, the developed software concerns a novel robust sampled—data control strategy allowing the attenuation of bounded actuation disturbances as well as of bounded observation error.&lt;br /&gt;
&lt;br /&gt;
It is well-known that a swarm of drone, in which each agent locally interacts with the other agents and the environment, is able to perform complex tasks which are not achievable by the use of a single agent. Therefore, the use of multiple UAVs as an organized swarm can significantly increase the performances of the single UAV, as well as of the overall group (see [1]-[3]). Indeed, each agent of the swarm is allowed to make use of the resources and capabilities of other agents through communication and/or coordination, and provide it with extra capabilities. Many approaches to the formation control problem of UAVs have been presented in the literature (see, among the others, [4]-[9]). On the other hand, contributions which simultaneously address time-varying formation, switching topology and the collision avoidance have never been provided. In the context of UCs 4 and 5, the developed software concerns a novel control strategy for the deployment of multi-UAV systems in a distributed time-varying set-up, where UAVs rely on local communication and computation. In particular, the control algorithm allows the main swarm intelligence strategies, namely flight formation, swarm tracking, and social foraging. Finally, the robust control strategy proposed in Section 1.1 is integrated to the algorithm and an efficient methodology for its implementation on FPGAs is presented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
Robust Digital Control for Autonomous Navigation&lt;br /&gt;
&lt;br /&gt;
In the context of UC 5, in order to provide a control strategy for the compensation and rejection of environmental perturbations, measurement uncertainties, and possible faults, a robustified quantized sampled-data drone flight controller is proposed. In particular, by the use of ISS (Input-to-State Stability) redesign methodology (see, for instance, [13]), a new term to be added to the feedback is designed in order to make it robust with respect to any bounded measurement error as well as any bounded actuation disturbance. Then, the stabilization in the sampled-and-hold sense theory (see [10]-[12]) is used as tool for analytically proving the existence of a suitably small sampling period and of an accurate quantization of the input/output channels such that the semi-global practical stability of the related quantized sampled-data closed-loop system with arbitrarily small final tracking error is ensured. It is highlighted that such control algorithm does not need any knowledge concerning the nature of the measurement errors and of the actuation disturbances. The only knowledges required for the implementation of the control algorithm are their amplitude bounds. Moreover, the provided algorithm is a static state feedback controller which can be easily implemented on FPGAs. Summarizing, in the context of UC5, the provided control algorithm contributes to the following requirements:&lt;br /&gt;
•	managing of critical situation with improved situation awareness (task interferences, scheduling issues, fault of failure conditions)&lt;br /&gt;
•	providing efficient digital implementation of discrete–time controllers on FPGAs&lt;br /&gt;
•	compensate and reject environmental perturbations, and measurement uncertainties.&lt;br /&gt;
Simulations of the provided control algorithm have been performed. A comparison of the robustified controller with the non-robustified one is also carried out. See figures 1-4.&lt;br /&gt;
 &lt;br /&gt;
[[File:01.jpg|400px|Figure 1. Trajectory of the quadcopter along x, y and z axes: the desired position in the space is reported with a rhomboidal black point; the trajectory of the quadcopter in the case of robustified and non robustified controller is reported in blue and red line, respectively.]] [[File:02.jpg|400px|Figure 2 Trajectory of the quadcopter along x, y and z axes: the desired trajectory in the space is reported with a yellow line; the trajectory of the quadcopter in the case of robustified and non robustified controller is reported in blue and red line, respectively.]]&lt;br /&gt;
&lt;br /&gt;
[[File:03.jpg|400px|Figure 3. Angles and positions of the UAV: the trajectory of the quadcopter in the case of robustified and non robustified controller is reported in blue and black line, respectively.]] [[File:04.jpg|400px|Figure 4. Tracking errors for angles and position of the UAV: the trajectories of the tracking errors in the case of robustified and non robustified controller are reported in blue and black lines, respectively.]]&lt;br /&gt;
&lt;br /&gt;
Controlling Swarms of Drones&lt;br /&gt;
&lt;br /&gt;
The proposed component concerns a distributed control strategy for swarms of drones based on the leader-follower consensus approach which allow to take into account time-varying formations and switching topologies, while ensuring the collision avoidance of multi-UAVs and the rejection of environmental perturbations, and measurement uncertainties. The software is based on a distributed control strategy for steering the agents of the swarm towards a collection point. In order to cope with the formation control, a procedure to arrange agents in a family of geometric formations is included in the software. Swarm tracking is allowed by including also a distributed mechanism based on the so-called leader-following consensus to move the entire swarm in accordance with a predefined trajectory. Moreover, a social foraging strategy that allows agents to avoid obstacles is included in the software by imposing on-line a time-varying formation pattern. Finally, a software component for the attenuation of actuation disturbances and measurements errors is developed and integrated to the control strategy (see forthcoming Section 4). The provided algorithm can be easily implemented on FPGAs. An efficient methodology for the implementation of the provided component will be also presented (see forthcoming Section 4). Summarizing, the developed software simultaneously addresses a challenging time-varying distributed set-up of the UAVs, characterized by the following features: &lt;br /&gt;
(i)	each UAV has limited resources in terms of communication coverage, so that it can only receive information locally from a time-varying subset of the swarm; &lt;br /&gt;
(ii)	the UAVs are required to dynamically avoid obstacles by imposing on-line a time-varying formation pattern; &lt;br /&gt;
(iii)	both the topology of communication and the configuration of leader and followers are time-varying. &lt;br /&gt;
Summarizing, in the context of UC5, the provided control algorithm contributes to the following requirements:&lt;br /&gt;
•	autonomous and cooperative flight of UAVs&lt;br /&gt;
•	managing of critical situation with improved situation awareness (obstacle avoidance, constrained communication)&lt;br /&gt;
•	providing efficient digital implementation of discrete–time controllers on FPGAs&lt;br /&gt;
•	compensate and reject environmental perturbations, and measurement uncertainties.&lt;br /&gt;
In Figs. 5-8, simulations of the proposed control algorithm are reported.&lt;br /&gt;
&lt;br /&gt;
[[File:05.jpg|400px|Figure 5. Control of the UAVs trajectories with a sinusoidal target movement.]] [[File:06.jpg|400px|Figure 6. Control of the UAVs trajectories in a narrow corridor.]]&lt;br /&gt;
&lt;br /&gt;
[[File:07.jpg|400px|Figure 7. The case of robustified (black line) and no-robustified (red line) controller.]] [[File:08.jpg|400px|Figure 8. The case of robustified (continuous  line) and no-robustified (dashed line) controller.]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] A. Bandala, E. Dadios, R. Vicerra, L. G. Lim, “Swarming algorithm for unmanned aerial vehicle (UAV) quadrotors: Swarm behavior for aggregation, foraging, formation, and tracking”, J. Adv. Comput. Intell. Intell. Inform., vol. 18, 2014, pp 745-751.&lt;br /&gt;
&lt;br /&gt;
[2] A. Kushleyev, D. Mellinger, C. Powers, V. Kumar, “Towards a swarm of agile micro quadrotors”, Auton. Robots, vol. 35, 2013, pp 287-300.&lt;br /&gt;
&lt;br /&gt;
[3] C. Wang, H. Tnunay, Z. Zuo, B. Lennox, Z. Ding, “Fixed-time formation control of multirobot systems: Design and experiments”, IEEE Trans. Ind. Electron., vol. 66, 2019, pp 6292-6301.&lt;br /&gt;
&lt;br /&gt;
[4] Z. Song, C. Duan, J. Wang, Q. Wu, “Chattering-free full-order recursive sliding mode control for finite-time attitude synchronization of rigid spacecraft”, J. Franklin Inst., vol. 356, 2019, pp 998-1020.&lt;br /&gt;
&lt;br /&gt;
[5] J. Wang, Z. Zhou, C. Wang, J. Shan, “Multiple quadrotors formation flying control design and experimental verification”, Unmanned Syst., vol. 7, 2019, pp 47-54.&lt;br /&gt;
&lt;br /&gt;
[6] Z. Gu, P. Shi, D. Yue, Z. Ding, “Decentralized adaptive event-triggered h_∞ filtering for a class of networked nonlinear interconnected systems”, IEEE Trans. Cybern., vol. 49, 2018, pp 1570-1579.&lt;br /&gt;
&lt;br /&gt;
[7] B. Mu, Y. Shi, “Distributed LQR consensus control for heterogeneous multiagent systems: Theory and experiments”, IEEE/ASME Trans. Mech., vol. 23, 2018, pp 434-443.&lt;br /&gt;
&lt;br /&gt;
[8] S. Zhao, “Affine formation maneuver control of multi-agent systems”, IEEE Trans. Autom. Contr., vol. 63, 2018, pp 4140-4155.&lt;br /&gt;
&lt;br /&gt;
[9] S. Zhao, D. Dimarogonas, Z. Sun, D. Bauso, “A general approach to coordination control of mobile agents with motion constraints”, IEEE Trans. Automat. Contr., vol. 63, 2018, pp 1509-1516.&lt;br /&gt;
&lt;br /&gt;
[10] F. H. Clarke, “Discontinuous feedback and nonlinear systems”, Plenary Lecture at IFAC Conference on Nonlinear Control Systems, 2010.&lt;br /&gt;
&lt;br /&gt;
[11] F. H. Clarke, Y. S. Ledyaev, E. D. Sontag and A. I. Subbotin, “Asymptotic controllability implies feedback stabilization”, IEEE Trans. Automat. Control, vol. 42, 1997, pp 1394-1407.&lt;br /&gt;
&lt;br /&gt;
[12] P. Pepe, ”Robustification of nonlinear stabilizers in the sample-and-hold sense”, Journal of The Franklin Institute, vol. 42, 2015, pp 4107-4128.&lt;br /&gt;
&lt;br /&gt;
[13] E. D.  Sontag, “Smooth stabilization implies coprime factorization”, IEEE Trans. Automat. Control, vol. 34, 1989, pp 435-443.&lt;br /&gt;
&lt;br /&gt;
[14] M. Di Ferdinando, P. Pepe, A. Borri, On Practical Stability Preservation under Fast Sampling and Accurate Quantization of Feedbacks for Nonlinear Time–Delay Systems, IEEE Transactions on Automatic Control, vol 66, pp 314–321, 2021. &lt;br /&gt;
&lt;br /&gt;
[15] M. Di Ferdinando, P. Pepe and S. Di Gennaro, &amp;quot;Robust Sampled-Data Consensus-Based Cooperative Control of Multi–UAVs,&amp;quot; 2021 29th Mediterranean Conference on Control and Automation (MED), 2021, pp. 167-172, doi: 10.1109/MED51440.2021.9480249.&lt;br /&gt;
 &lt;br /&gt;
[16] R. Carli, G. Cavone, N. Epicoco, M. Di Ferdinando, P. Scarabaggio and M. Dotoli, Consensus-Based Algorithms for Controlling Swarms of Unmanned Aerial Vehicles, Ad-Hoc, Mobile, and Wireless Networks. ADHOC-NOW 2020. Lecture Notes in Computer Science. &lt;br /&gt;
&lt;br /&gt;
[17] M. Di Ferdinando, D. Bianchi, S. Di Gennaro, P. Pepe, On the Robust Quantized Sampled--Data Leaderless Consensus Tracking of Nonlinear Multi--Agent Systems, IEEE Conference on Decision and Control, 2021.&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP3-24&amp;diff=784</id>
		<title>WP3-24</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP3-24&amp;diff=784"/>
		<updated>2022-11-12T17:32:01Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Efficient digital implementation of controllers on FPGAs=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP3-24&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Methodological&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| FPGAs for the implementation of the proposed control algorithms&lt;br /&gt;
|-&lt;br /&gt;
|   Provide		|| An efficient methodology for the implementation of digital control algorithms on FPGAs based on the pipeline approach.&lt;br /&gt;
|-&lt;br /&gt;
|   Input		|| Control algorithms for the autonomous navigation of drones to be implemented on FPGAs&lt;br /&gt;
|-&lt;br /&gt;
|   Output		|| Lower execution times, and hence smaller sampling times, than its naive implementation. Lower power consumption of the pipelined control algorithm.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D building block		|| Flight Control.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 3-4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Detailed Description==&lt;br /&gt;
&lt;br /&gt;
Efficient digital implementation of controllers on FPGAs. In the context of C4D project, the component WP3-24 aims to provide an efficient methodology for the digital implementation of controllers on FPGAs. It is well-known that the use of UAVs in many complex tasks has increased the complexity of the embedded control algorithms that are necessary in order to face more challenging performances, such as: detection and avoiding of obstacles; cooperation among drones; efficient trajectory execution; etc. However, many software solutions also present some limitations, due to its fixed internal architecture. This leads to a full serialization of the data treatment. The more complex is the control and decision algorithm, the longer is its execution time. This, in turn, constitutes a lower bound for the sampling time that can be used in the specific application. Clearly, longer sampling times determine worse controller performances. To obtain higher control performances, one can work in two possible directions. The first is methodological, and consists of designing the control algorithms on the basis of better discrete-time dynamic representations of the vehicle. The second is technological, and regards the use of more performing devices used to implement a given controller. As far as the technological solution is concerned, field-programmable gate arrays (FPGAs) can ensure better performances than software solutions, thanks to the possibility of parallelism and to the increasing integration density, which allows implementing complex control algorithms. In fact, FPGAs are full system-on-chip (SoC) solutions. They allow more flexibility for the implementation of embedded controllers, due to the fact that they include in the same chip various components (processors, memories, hardware multiplier blocks, analog–digital converters, matrix of programmable logic elements-fabric-and buses). The fact that FPGAs integrate both software and hardware resources allow faster implementations of controllers making use of the parallelism. Therefore, FPGAs constitute a valid hardware solution, since it is possible to design an architecture that is customized for the control algorithm to be implemented. This ensures shorter execution times of the algorithm. To further reduce the execution time in FPGAs, some techniques can be used that allow transforming the circuit structure, in order to reduce this time, and possibly the power consumption, maintaining the desired functionality, i.e., implementing the required control input. These (methodological, not technological) techniques include retiming/pipelining, folding/unfolding, interleaving, etc. The proposed methodology for the efficient implementation of controllers on FPGA is focused on retiming and pipelining. The former is a transformation technique used to change the locations of the delay elements in a circuit without affecting the input/output characteristics of the circuit. Pipelining is a special case of retiming used to reduce the critical path, introducing pipelining latches along the data path. Shortening the critical paths, one can increase the clock speed or the sample speed, or one can reduce the power consumption at the same speed.&lt;br /&gt;
&lt;br /&gt;
In order to be functional, the resulting controller must respect certain constraints given by the specific application, in this case:&lt;br /&gt;
&lt;br /&gt;
•	Real–time execution represents a hard constraint, meaning that exceeding the allowed time for the control action calculation is unacceptable.&lt;br /&gt;
&lt;br /&gt;
•	Power consumption is significant because the final controller will be powered from the UAV’s battery.&lt;br /&gt;
&lt;br /&gt;
•	Size and weight are directly related to power consumption, but also to manoeuvrability if they are too high.&lt;br /&gt;
&lt;br /&gt;
•	Precision can be traded for better performances and power efficiency if kept inside acceptable bounds.&lt;br /&gt;
&lt;br /&gt;
•	Reliability must be always ensured, although different implementations can provide several ways to obtain it.&lt;br /&gt;
&lt;br /&gt;
A perfect candidate for this application is the FPGA implementation, since it can provide strict real–time execution, high power efficiency, small size, and high reliability, at the cost of a reduced dynamic range. For instance, the Intel Cyclone 10 LP FPGA was available and corresponded to what was needed, then it has been used as a reference, it comes on a minimal board, useful for actual power consumption tests and fast prototyping, allowing installation on small UAVs for real world tests (see the figure below)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Prova01.png|400px|Figure 1. Intel Cyclone 10 LP floorplan.]]&lt;br /&gt;
&lt;br /&gt;
Depending on the final implementation strategy, the resulting architecture could be an application specific processor, with the sole purpose of managing the calculations autonomously, in other words it could result in a finite state machine managing a small arithmetic unit. This would ensure minimal area usage and maximum efficiency, yet fully respecting the timing constraints as this kind of processor will have only one task at any time:&lt;br /&gt;
&lt;br /&gt;
1.	Receive estimated state and reference input data.&lt;br /&gt;
&lt;br /&gt;
2.	Perform calculations in a fixed, appropriate allowed time frame, as a sequence of internal operations opaque to the external interface.&lt;br /&gt;
&lt;br /&gt;
3.	Provide control outputs to the actuators.&lt;br /&gt;
&lt;br /&gt;
4.	Wait to start a new cycle (if, as desired, the calculation takes less than the allowed time frame, in other words it should have minimal input–output delay).&lt;br /&gt;
&lt;br /&gt;
Other advantages of such architecture are reliability, since the entire cycle is well known in advance and the processor has no unexpected behaviors, unless there are environmental factors outside of the designer’s control, in those cases redundancy schemes can be applied, even on the same FPGA: duplicating or triplicating the same design and determining the correct output by voting, a high level of reliability can be ensured, since the stabilization control of the UAV is a critical task. Taking up very few hardware resources, the rest of the device can be used for other purposes, such as sensor data elaboration, mission planning (through a general purpose soft–processor), path planning, image elaboration, obstacle detection and avoidance, which greatly benefit from a hardware implementation. Another possible approach, yet to be explored, to improve reliability is the use of parity bits to detect errors, in fact FPGAs almost always make use of memory blocks and embedded multiply–accumulate blocks with the required bit widths, the one considered here indeed provides 9 bits per word native memory (can be used in several different configurations, such as 18 or 16 bits per word) and 18 bits in – 36 bits out multipliers (can be also used as two separate, independent 9 bits in – 18 bits out multipliers). If the word is considered as a multiple of one byte, with 8 bits per byte, then one parity bit is available since the native word is 9 bits wide. Native bit widths are especially important and need to be kept in mind for a maximally efficient implementation. Single event upset at configuration time is now fully supported by several vendors. One more thing worth mentioning, made possible by FPGAs, is the update process while the controller is still functioning: having redundant units allows an in–place reconfiguration of one of them while the others ensure functionality, through partial reconfiguration. &lt;br /&gt;
From the control point of view, this architecture choice allows to implement a supervisor to be used along with the controller, this supervisor could be a disturbance estimator, to correct and react to external unknown events (see the figures below).&lt;br /&gt;
&lt;br /&gt;
[[File:Prova02.png|400px|Figure 2. Complete controller general architecture.]]&lt;br /&gt;
[[File:Prova05.png|400px|Figure 3. Detail of the position control architecture.]]&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
The pipelined implementation technique, here proposed in the context of UAVs control (WP3-24), allows lower execution times, and hence smaller sampling times, than its naive implementation. Moreover, the power consumption of the pipelined control algorithm is lower. These two aspects constitute the main benefits of using a pipelining technique for the implementation of UAV control algorithm on an FPGA. In other words, the main aim behind the component (WP3-24) is to provide an implementation guideline for UAVs control algorithms showing that, when technological solutions such as FPGAs are used, the pipelining methodology can be successfully applied to obtain lower sampling periods, thereby allowing the implementation of more sophisticated controllers for UAVs. The efficiency of the proposed implementation methodology is shown by developing on FPGA a robust sampled—data controller for the autonomous navigation of drone which has been designed in the context of WP4 for C4D project. Finally, through experimental results, it can be shown that the pipelining methodology also allows taking into account the energetic aspects of the controller implementations, and not only the controller performance. This is another very important aspect for onboard systems as in UAVs.&lt;br /&gt;
&lt;br /&gt;
The proposed methodology has been validated through simulations. In particular, the following scenario has been addressed: the drone has to follows a trajectory resembles a complete mission with a duration of several minutes, where the UAV goes through a artichoke with a constant velocity. Such a reference is generated as a b–spline from the given waypoints. &lt;br /&gt;
&lt;br /&gt;
The system has been simulated in different combinations through the implementation steps, the quadrotor model has been always considered as continuous–time (although numerically integrated using multi–step algorithms, ensuring better accuracy and stability than single step integration). In particular, in the considered scenarios, the UAV to be controlled can be selected between different simulators:&lt;br /&gt;
&lt;br /&gt;
•	Simulink: implemented through differential equations describing the mathematical model with the main dynamics, it is the fastest in terms of simulation being directly integrated.&lt;br /&gt;
&lt;br /&gt;
•	Amesim: implemented as a complex yet detailed model, providing high fidelity dynamics, it is sufficiently fast in simulation despite the detailed model.&lt;br /&gt;
&lt;br /&gt;
•	Coppeliasim: implemented as a mixed model, calculating force and torque from the mathematical model equations, but using Coppeliasim’s physics engine, it is slower than the other choices but provides a complete 3D environment along with physical interaction with other objects such as collision.&lt;br /&gt;
&lt;br /&gt;
The controller followed this development flow, each step has an associated brief name and description for reference:&lt;br /&gt;
&lt;br /&gt;
1.	Ideal: continuous–time, double–precision floating–point arithmetic, full precision operations, ideal derivative, no internal arithmetic saturation.&lt;br /&gt;
&lt;br /&gt;
2.	Discrete: discrete–time, still with double–precision floating–point arithmetic and full precision operations and no saturation, filtered discrete–time derivative.&lt;br /&gt;
&lt;br /&gt;
3.	Normalized: discrete–time, full precision arithmetic and operations, normalized inputs, outputs, and internal variables, with internal arithmetic saturation.&lt;br /&gt;
&lt;br /&gt;
4.	Fixed–point: discrete–time, normalized fixed–point arithmetic, with full precision operations and internal arithmetic saturation, filtered derivative.&lt;br /&gt;
&lt;br /&gt;
5.	Approximated: discrete–time, normalized fixed–point arithmetic, approximated operations, arithmetic saturation, filtered derivative.&lt;br /&gt;
&lt;br /&gt;
Some simulation results are reported in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[File:Prova03.png|400px|Figure 4. Mean square error.]]&lt;br /&gt;
[[File:Prova04.png|400px|Figure 5. Propeller velocity square integral.]]&lt;br /&gt;
&lt;br /&gt;
From the performance indicators charts some conclusions can be pointed out:&lt;br /&gt;
&lt;br /&gt;
•	A trend is mostly evident, where almost all of the indicators get progressively better, from the initial continuous–time implementation up to the normalized version, but after the latter the indicators get worse, almost returning to the original performance level:&lt;br /&gt;
&lt;br /&gt;
a.	Being the starting point, the continuous–time controller represents the performance reference for subsequent versions.&lt;br /&gt;
&lt;br /&gt;
b.	The discrete–time implementation also contains a derivative optimization, leading to a slightly better performance.&lt;br /&gt;
&lt;br /&gt;
c.	The normalized version adds more improvements due to a better use of the available (double–precision floating–point) arithmetic and an accurate management of critical calculations, in fact it presents the best overall performance according to the indicators.&lt;br /&gt;
&lt;br /&gt;
d.	The introduction of fixed–point arithmetic introduces intrinsic approximations, worsening the performance gained in the previous version.&lt;br /&gt;
&lt;br /&gt;
e.	Finally substituting several operations with look–up tables introduce more approximations, taking back the improvements to the starting point.&lt;br /&gt;
&lt;br /&gt;
•	The objective of this work has been reached since the final overall performance is comparable to the original version while the final one has several advantages:&lt;br /&gt;
&lt;br /&gt;
f.	It provides a fully synthesizable code enabling FPGA implementation or even specialized ASIC manufacturing.&lt;br /&gt;
&lt;br /&gt;
g.	It results in an area/resource efficient system, allowing independent usage alongside another processing system, freeing the latter from the control task.&lt;br /&gt;
&lt;br /&gt;
h.	Lower complexity brings also lower power consumption, although marginal when considering the overall consumption.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] C. Acosta Lua, C.C. Vaca Garcia, S. Di Gennaro, B. Castillo--Toledo, and M.E. Sanchez Morales, Real--Time Hovering Control of Unmanned Aerial Vehicles, Mathematical Problems in Engineering, Vol. 2020, pp. 1--8, 2020. &lt;br /&gt;
&lt;br /&gt;
[2] J.T. Guillen--Bonilla, C.C. Vaca Garcia, S. Di Gennaro, M.E. Sanchez Morales, C. Acosta Lua, Vision--Based Nonlinear Control of Quadrotors Using the Photogrammetric Technique, Mathematical Problems in Engineering, Vol. 2020, pp. 1--10, 2020. ISSN: 1024-12. &lt;br /&gt;
&lt;br /&gt;
[3] C. A. Lúa, S. D. Gennaro et. al., Digital Implementation via FPGA of Controllers for Active Control of Ground Vehicles, IEEE Trans. on Ind. Inf., vol 15, pp 2253-2264, 2019.&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP4-33&amp;diff=783</id>
		<title>WP4-33</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP4-33&amp;diff=783"/>
		<updated>2022-11-12T17:27:54Z</updated>

		<summary type="html">&lt;p&gt;Univaq: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Autonomy, cooperation, and awareness=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP4-33&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Methodological&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Sensors, actuators and computing devices.&lt;br /&gt;
|-&lt;br /&gt;
|   Provide		|| An efficient methodology for the design of robust digital control algorithms for the autonomous and cooperative navigation of UAVs.&lt;br /&gt;
|-&lt;br /&gt;
|   Input		|| Measurements from sensors signal.&lt;br /&gt;
|-&lt;br /&gt;
|   Output		|| Control actions.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D building block		|| Flight Control.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 3-4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Detailed Description==&lt;br /&gt;
&lt;br /&gt;
One of the main challenges when dealing with drone flight control systems is to provide control algorithms taking into account possible measurement errors as well as possible actuation disturbances. Indeed, in practical operative situations, the measurements provided by the sensors to the drone flight control are often affected by errors mainly due to devices uncertainties. As well, the actuators involved in the control actions (i.e., the drone motors) are often affected by disturbances due to possible malfunctioning of the motors or to uncertainties in the devices which make use of the control input. In the literature concerning drone flight control systems, control algorithms are often provided without taking into account of such possible issues. Moreover, such control algorithms are often designed in a continuous-time basis and problems concerning the sampling and the quantization of the control law are not taken into account. These facts easily lead to a deterioration of the performances when such control algorithms are applied in practice. The drone flight control should be able to compensate and reject possible actuation disturbances and measurement uncertainties. Furthermore, the control algorithm should be designed by taking into account the sampling and the quantization of the input/output channels. In the context of UC 5, the developed software concerns a novel robust sampled—data control strategy allowing the attenuation of bounded actuation disturbances as well as of bounded observation error.&lt;br /&gt;
&lt;br /&gt;
It is well-known that a swarm of drone, in which each agent locally interacts with the other agents and the environment, is able to perform complex tasks which are not achievable by the use of a single agent. Therefore, the use of multiple UAVs as an organized swarm can significantly increase the performances of the single UAV, as well as of the overall group (see [1]-[3]). Indeed, each agent of the swarm is allowed to make use of the resources and capabilities of other agents through communication and/or coordination, and provide it with extra capabilities. Many approaches to the formation control problem of UAVs have been presented in the literature (see, among the others, [4]-[9]). On the other hand, contributions which simultaneously address time-varying formation, switching topology and the collision avoidance have never been provided. In the context of UCs 4 and 5, the developed software concerns a novel control strategy for the deployment of multi-UAV systems in a distributed time-varying set-up, where UAVs rely on local communication and computation. In particular, the control algorithm allows the main swarm intelligence strategies, namely flight formation, swarm tracking, and social foraging. Finally, the robust control strategy proposed in Section 1.1 is integrated to the algorithm and an efficient methodology for its implementation on FPGAs is presented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
Robust Digital Control for Autonomous Navigation&lt;br /&gt;
&lt;br /&gt;
In the context of UC 5, in order to provide a control strategy for the compensation and rejection of environmental perturbations, measurement uncertainties, and possible faults, a robustified quantized sampled-data drone flight controller is proposed. In particular, by the use of ISS (Input-to-State Stability) redesign methodology (see, for instance, [13]), a new term to be added to the feedback is designed in order to make it robust with respect to any bounded measurement error as well as any bounded actuation disturbance. Then, the stabilization in the sampled-and-hold sense theory (see [10]-[12]) is used as tool for analytically proving the existence of a suitably small sampling period and of an accurate quantization of the input/output channels such that the semi-global practical stability of the related quantized sampled-data closed-loop system with arbitrarily small final tracking error is ensured. It is highlighted that such control algorithm does not need any knowledge concerning the nature of the measurement errors and of the actuation disturbances. The only knowledges required for the implementation of the control algorithm are their amplitude bounds. Moreover, the provided algorithm is a static state feedback controller which can be easily implemented on FPGAs. Summarizing, in the context of UC5, the provided control algorithm contributes to the following requirements:&lt;br /&gt;
•	managing of critical situation with improved situation awareness (task interferences, scheduling issues, fault of failure conditions)&lt;br /&gt;
•	providing efficient digital implementation of discrete–time controllers on FPGAs&lt;br /&gt;
•	compensate and reject environmental perturbations, and measurement uncertainties.&lt;br /&gt;
Simulations of the provided control algorithm have been performed. A comparison of the robustified controller with the non-robustified one is also carried out. See figures 1-4.&lt;br /&gt;
 &lt;br /&gt;
[[File:01.jpg|400px|Figure 1. Trajectory of the quadcopter along x, y and z axes: the desired position in the space is reported with a rhomboidal black point; the trajectory of the quadcopter in the case of robustified and non robustified controller is reported in blue and red line, respectively.]] [[File:02.jpg|400px|Figure 2 Trajectory of the quadcopter along x, y and z axes: the desired trajectory in the space is reported with a yellow line; the trajectory of the quadcopter in the case of robustified and non robustified controller is reported in blue and red line, respectively.]]&lt;br /&gt;
&lt;br /&gt;
[[File:03.jpg|400px|Figure 3. Angles and positions of the UAV: the trajectory of the quadcopter in the case of robustified and non robustified controller is reported in blue and black line, respectively.]] [[File:04.jpg|400px|Figure 4. Tracking errors for angles and position of the UAV: the trajectories of the tracking errors in the case of robustified and non robustified controller are reported in blue and black lines, respectively.]]&lt;br /&gt;
&lt;br /&gt;
Controlling Swarms of Drones&lt;br /&gt;
&lt;br /&gt;
The proposed component concerns a distributed control strategy for swarms of drones based on the leader-follower consensus approach which allow to take into account time-varying formations and switching topologies, while ensuring the collision avoidance of multi-UAVs and the rejection of environmental perturbations, and measurement uncertainties. The software is based on a distributed control strategy for steering the agents of the swarm towards a collection point. In order to cope with the formation control, a procedure to arrange agents in a family of geometric formations is included in the software. Swarm tracking is allowed by including also a distributed mechanism based on the so-called leader-following consensus to move the entire swarm in accordance with a predefined trajectory. Moreover, a social foraging strategy that allows agents to avoid obstacles is included in the software by imposing on-line a time-varying formation pattern. Finally, a software component for the attenuation of actuation disturbances and measurements errors is developed and integrated to the control strategy (see forthcoming Section 4). The provided algorithm can be easily implemented on FPGAs. An efficient methodology for the implementation of the provided component will be also presented (see forthcoming Section 4). Summarizing, the developed software simultaneously addresses a challenging time-varying distributed set-up of the UAVs, characterized by the following features: &lt;br /&gt;
(i)	each UAV has limited resources in terms of communication coverage, so that it can only receive information locally from a time-varying subset of the swarm; &lt;br /&gt;
(ii)	the UAVs are required to dynamically avoid obstacles by imposing on-line a time-varying formation pattern; &lt;br /&gt;
(iii)	both the topology of communication and the configuration of leader and followers are time-varying. &lt;br /&gt;
Summarizing, in the context of UC5, the provided control algorithm contributes to the following requirements:&lt;br /&gt;
•	autonomous and cooperative flight of UAVs&lt;br /&gt;
•	managing of critical situation with improved situation awareness (obstacle avoidance, constrained communication)&lt;br /&gt;
•	providing efficient digital implementation of discrete–time controllers on FPGAs&lt;br /&gt;
•	compensate and reject environmental perturbations, and measurement uncertainties.&lt;br /&gt;
In Figs. 5-8, simulations of the proposed control algorithm are reported.&lt;br /&gt;
&lt;br /&gt;
[[File:05.jpg|400px|Figure 5. Control of the UAVs trajectories with a sinusoidal target movement.]] [[File:06.jpg|400px|Figure 6. Control of the UAVs trajectories in a narrow corridor.]]&lt;br /&gt;
&lt;br /&gt;
[[File:07.jpg|400px|Figure 7. The case of robustified (black line) and no-robustified (red line) controller.]] [[File:08.jpg|400px|Figure 8. The case of robustified (continuous  line) and no-robustified (dashed line) controller.]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] A. Bandala, E. Dadios, R. Vicerra, L. G. Lim, “Swarming algorithm for unmanned aerial vehicle (UAV) quadrotors: Swarm behavior for aggregation, foraging, formation, and tracking”, J. Adv. Comput. Intell. Intell. Inform., vol. 18, 2014, pp 745-751.&lt;br /&gt;
&lt;br /&gt;
[2] A. Kushleyev, D. Mellinger, C. Powers, V. Kumar, “Towards a swarm of agile micro quadrotors”, Auton. Robots, vol. 35, 2013, pp 287-300.&lt;br /&gt;
&lt;br /&gt;
[3] C. Wang, H. Tnunay, Z. Zuo, B. Lennox, Z. Ding, “Fixed-time formation control of multirobot systems: Design and experiments”, IEEE Trans. Ind. Electron., vol. 66, 2019, pp 6292-6301.&lt;br /&gt;
&lt;br /&gt;
[4] Z. Song, C. Duan, J. Wang, Q. Wu, “Chattering-free full-order recursive sliding mode control for finite-time attitude synchronization of rigid spacecraft”, J. Franklin Inst., vol. 356, 2019, pp 998-1020.&lt;br /&gt;
&lt;br /&gt;
[5] J. Wang, Z. Zhou, C. Wang, J. Shan, “Multiple quadrotors formation flying control design and experimental verification”, Unmanned Syst., vol. 7, 2019, pp 47-54.&lt;br /&gt;
&lt;br /&gt;
[6] Z. Gu, P. Shi, D. Yue, Z. Ding, “Decentralized adaptive event-triggered h_∞ filtering for a class of networked nonlinear interconnected systems”, IEEE Trans. Cybern., vol. 49, 2018, pp 1570-1579.&lt;br /&gt;
&lt;br /&gt;
[7] B. Mu, Y. Shi, “Distributed LQR consensus control for heterogeneous multiagent systems: Theory and experiments”, IEEE/ASME Trans. Mech., vol. 23, 2018, pp 434-443.&lt;br /&gt;
&lt;br /&gt;
[8] S. Zhao, “Affine formation maneuver control of multi-agent systems”, IEEE Trans. Autom. Contr., vol. 63, 2018, pp 4140-4155.&lt;br /&gt;
&lt;br /&gt;
[9] S. Zhao, D. Dimarogonas, Z. Sun, D. Bauso, “A general approach to coordination control of mobile agents with motion constraints”, IEEE Trans. Automat. Contr., vol. 63, 2018, pp 1509-1516.&lt;br /&gt;
&lt;br /&gt;
[10] F. H. Clarke, “Discontinuous feedback and nonlinear systems”, Plenary Lecture at IFAC Conference on Nonlinear Control Systems, 2010.&lt;br /&gt;
&lt;br /&gt;
[11] F. H. Clarke, Y. S. Ledyaev, E. D. Sontag and A. I. Subbotin, “Asymptotic controllability implies feedback stabilization”, IEEE Trans. Automat. Control, vol. 42, 1997, pp 1394-1407.&lt;br /&gt;
&lt;br /&gt;
[12] P. Pepe, ”Robustification of nonlinear stabilizers in the sample-and-hold sense”, Journal of The Franklin Institute, vol. 42, 2015, pp 4107-4128.&lt;br /&gt;
&lt;br /&gt;
[13] E. D.  Sontag, “Smooth stabilization implies coprime factorization”, IEEE Trans. Automat. Control, vol. 34, 1989, pp 435-443.&lt;br /&gt;
&lt;br /&gt;
[14] M. Di Ferdinando, P. Pepe, A. Borri, On Practical Stability Preservation under Fast Sampling and Accurate Quantization of Feedbacks for Nonlinear Time–Delay Systems, IEEE Transactions on Automatic Control, vol 66, pp 314–321, 2021. &lt;br /&gt;
&lt;br /&gt;
[15] M. Di Ferdinando, P. Pepe and S. Di Gennaro, &amp;quot;Robust Sampled-Data Consensus-Based Cooperative Control of Multi–UAVs,&amp;quot; 2021 29th Mediterranean Conference on Control and Automation (MED), 2021, pp. 167-172, doi: 10.1109/MED51440.2021.9480249.&lt;br /&gt;
 &lt;br /&gt;
[16] R. Carli, G. Cavone, N. Epicoco, M. Di Ferdinando, P. Scarabaggio and M. Dotoli, Consensus-Based Algorithms for Controlling Swarms of Unmanned Aerial Vehicles, {\sl Ad-Hoc, Mobile, and Wireless Networks. ADHOC-NOW 2020. Lecture Notes in Computer Science}. &lt;br /&gt;
&lt;br /&gt;
[17] M. Di Ferdinando, D. Bianchi, S. Di Gennaro, P. Pepe, On the Robust Quantized Sampled--Data Leaderless Consensus Tracking of Nonlinear Multi--Agent Systems, IEEE Conference on Decision and Control, 2021.&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP3-24&amp;diff=782</id>
		<title>WP3-24</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP3-24&amp;diff=782"/>
		<updated>2022-11-12T17:20:20Z</updated>

		<summary type="html">&lt;p&gt;Univaq: /* Contribution and Improvements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Efficient digital implementation of controllers on FPGAs=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP3-24&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Methodological&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| FPGAs for the implementation of the proposed control algorithms&lt;br /&gt;
|-&lt;br /&gt;
|   Provide		|| An efficient methodology for the implementation of digital control algorithms on FPGAs based on the pipeline approach.&lt;br /&gt;
|-&lt;br /&gt;
|   Input		|| Control algorithms for the autonomous navigation of drones to be implemented on FPGAs&lt;br /&gt;
|-&lt;br /&gt;
|   Output		|| Lower execution times, and hence smaller sampling times, than its naive implementation. Lower power consumption of the pipelined control algorithm.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D building block		|| Flight Control.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 3-4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Detailed Description==&lt;br /&gt;
&lt;br /&gt;
Efficient digital implementation of controllers on FPGAs. In the context of C4D project, the component WP3-24 aims to provide an efficient methodology for the digital implementation of controllers on FPGAs. It is well-known that the use of UAVs in many complex tasks has increased the complexity of the embedded control algorithms that are necessary in order to face more challenging performances, such as: detection and avoiding of obstacles; cooperation among drones; efficient trajectory execution; etc. However, many software solutions also present some limitations, due to its fixed internal architecture. This leads to a full serialization of the data treatment. The more complex is the control and decision algorithm, the longer is its execution time. This, in turn, constitutes a lower bound for the sampling time that can be used in the specific application. Clearly, longer sampling times determine worse controller performances. To obtain higher control performances, one can work in two possible directions. The first is methodological, and consists of designing the control algorithms on the basis of better discrete-time dynamic representations of the vehicle. The second is technological, and regards the use of more performing devices used to implement a given controller. As far as the technological solution is concerned, field-programmable gate arrays (FPGAs) can ensure better performances than software solutions, thanks to the possibility of parallelism and to the increasing integration density, which allows implementing complex control algorithms. In fact, FPGAs are full system-on-chip (SoC) solutions. They allow more flexibility for the implementation of embedded controllers, due to the fact that they include in the same chip various components (processors, memories, hardware multiplier blocks, analog–digital converters, matrix of programmable logic elements-fabric-and buses). The fact that FPGAs integrate both software and hardware resources allow faster implementations of controllers making use of the parallelism. Therefore, FPGAs constitute a valid hardware solution, since it is possible to design an architecture that is customized for the control algorithm to be implemented. This ensures shorter execution times of the algorithm. To further reduce the execution time in FPGAs, some techniques can be used that allow transforming the circuit structure, in order to reduce this time, and possibly the power consumption, maintaining the desired functionality, i.e., implementing the required control input. These (methodological, not technological) techniques include retiming/pipelining, folding/unfolding, interleaving, etc. The proposed methodology for the efficient implementation of controllers on FPGA is focused on retiming and pipelining. The former is a transformation technique used to change the locations of the delay elements in a circuit without affecting the input/output characteristics of the circuit. Pipelining is a special case of retiming used to reduce the critical path, introducing pipelining latches along the data path. Shortening the critical paths, one can increase the clock speed or the sample speed, or one can reduce the power consumption at the same speed.&lt;br /&gt;
&lt;br /&gt;
In order to be functional, the resulting controller must respect certain constraints given by the specific application, in this case:&lt;br /&gt;
&lt;br /&gt;
•	Real–time execution represents a hard constraint, meaning that exceeding the allowed time for the control action calculation is unacceptable.&lt;br /&gt;
&lt;br /&gt;
•	Power consumption is significant because the final controller will be powered from the UAV’s battery.&lt;br /&gt;
&lt;br /&gt;
•	Size and weight are directly related to power consumption, but also to manoeuvrability if they are too high.&lt;br /&gt;
&lt;br /&gt;
•	Precision can be traded for better performances and power efficiency if kept inside acceptable bounds.&lt;br /&gt;
&lt;br /&gt;
•	Reliability must be always ensured, although different implementations can provide several ways to obtain it.&lt;br /&gt;
&lt;br /&gt;
A perfect candidate for this application is the FPGA implementation, since it can provide strict real–time execution, high power efficiency, small size, and high reliability, at the cost of a reduced dynamic range. For instance, the Intel Cyclone 10 LP FPGA was available and corresponded to what was needed, then it has been used as a reference, it comes on a minimal board, useful for actual power consumption tests and fast prototyping, allowing installation on small UAVs for real world tests (see the figure below)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Prova01.png|400px|Figure 1. Intel Cyclone 10 LP floorplan.]]&lt;br /&gt;
&lt;br /&gt;
Depending on the final implementation strategy, the resulting architecture could be an application specific processor, with the sole purpose of managing the calculations autonomously, in other words it could result in a finite state machine managing a small arithmetic unit. This would ensure minimal area usage and maximum efficiency, yet fully respecting the timing constraints as this kind of processor will have only one task at any time:&lt;br /&gt;
&lt;br /&gt;
1.	Receive estimated state and reference input data.&lt;br /&gt;
&lt;br /&gt;
2.	Perform calculations in a fixed, appropriate allowed time frame, as a sequence of internal operations opaque to the external interface.&lt;br /&gt;
&lt;br /&gt;
3.	Provide control outputs to the actuators.&lt;br /&gt;
&lt;br /&gt;
4.	Wait to start a new cycle (if, as desired, the calculation takes less than the allowed time frame, in other words it should have minimal input–output delay).&lt;br /&gt;
&lt;br /&gt;
Other advantages of such architecture are reliability, since the entire cycle is well known in advance and the processor has no unexpected behaviors, unless there are environmental factors outside of the designer’s control, in those cases redundancy schemes can be applied, even on the same FPGA: duplicating or triplicating the same design and determining the correct output by voting, a high level of reliability can be ensured, since the stabilization control of the UAV is a critical task. Taking up very few hardware resources, the rest of the device can be used for other purposes, such as sensor data elaboration, mission planning (through a general purpose soft–processor), path planning, image elaboration, obstacle detection and avoidance, which greatly benefit from a hardware implementation. Another possible approach, yet to be explored, to improve reliability is the use of parity bits to detect errors, in fact FPGAs almost always make use of memory blocks and embedded multiply–accumulate blocks with the required bit widths, the one considered here indeed provides 9 bits per word native memory (can be used in several different configurations, such as 18 or 16 bits per word) and 18 bits in – 36 bits out multipliers (can be also used as two separate, independent 9 bits in – 18 bits out multipliers). If the word is considered as a multiple of one byte, with 8 bits per byte, then one parity bit is available since the native word is 9 bits wide. Native bit widths are especially important and need to be kept in mind for a maximally efficient implementation. Single event upset at configuration time is now fully supported by several vendors. One more thing worth mentioning, made possible by FPGAs, is the update process while the controller is still functioning: having redundant units allows an in–place reconfiguration of one of them while the others ensure functionality, through partial reconfiguration. &lt;br /&gt;
From the control point of view, this architecture choice allows to implement a supervisor to be used along with the controller, this supervisor could be a disturbance estimator, to correct and react to external unknown events (see the figures below).&lt;br /&gt;
&lt;br /&gt;
[[File:Prova02.png|400px|Figure 2. Complete controller general architecture.]]&lt;br /&gt;
[[File:Prova05.png|400px|Figure 3. Detail of the position control architecture.]]&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
The pipelined implementation technique, here proposed in the context of UAVs control (WP3-24), allows lower execution times, and hence smaller sampling times, than its naive implementation. Moreover, the power consumption of the pipelined control algorithm is lower. These two aspects constitute the main benefits of using a pipelining technique for the implementation of UAV control algorithm on an FPGA. In other words, the main aim behind the component (WP3-24) is to provide an implementation guideline for UAVs control algorithms showing that, when technological solutions such as FPGAs are used, the pipelining methodology can be successfully applied to obtain lower sampling periods, thereby allowing the implementation of more sophisticated controllers for UAVs. The efficiency of the proposed implementation methodology is shown by developing on FPGA a robust sampled—data controller for the autonomous navigation of drone which has been designed in the context of WP4 for C4D project. Finally, through experimental results, it can be shown that the pipelining methodology also allows taking into account the energetic aspects of the controller implementations, and not only the controller performance. This is another very important aspect for onboard systems as in UAVs.&lt;br /&gt;
&lt;br /&gt;
The proposed methodology has been validated through simulations. In particular, the following scenario has been addressed: the drone has to follows a trajectory resembles a complete mission with a duration of several minutes, where the UAV goes through a artichoke with a constant velocity. Such a reference is generated as a b–spline from the given waypoints. &lt;br /&gt;
&lt;br /&gt;
The system has been simulated in different combinations through the implementation steps, the quadrotor model has been always considered as continuous–time (although numerically integrated using multi–step algorithms, ensuring better accuracy and stability than single step integration). In particular, in the considered scenarios, the UAV to be controlled can be selected between different simulators:&lt;br /&gt;
&lt;br /&gt;
•	Simulink: implemented through differential equations describing the mathematical model with the main dynamics, it is the fastest in terms of simulation being directly integrated.&lt;br /&gt;
&lt;br /&gt;
•	Amesim: implemented as a complex yet detailed model, providing high fidelity dynamics, it is sufficiently fast in simulation despite the detailed model.&lt;br /&gt;
&lt;br /&gt;
•	Coppeliasim: implemented as a mixed model, calculating force and torque from the mathematical model equations, but using Coppeliasim’s physics engine, it is slower than the other choices but provides a complete 3D environment along with physical interaction with other objects such as collision.&lt;br /&gt;
&lt;br /&gt;
The controller followed this development flow, each step has an associated brief name and description for reference:&lt;br /&gt;
&lt;br /&gt;
1.	Ideal: continuous–time, double–precision floating–point arithmetic, full precision operations, ideal derivative, no internal arithmetic saturation.&lt;br /&gt;
&lt;br /&gt;
2.	Discrete: discrete–time, still with double–precision floating–point arithmetic and full precision operations and no saturation, filtered discrete–time derivative.&lt;br /&gt;
&lt;br /&gt;
3.	Normalized: discrete–time, full precision arithmetic and operations, normalized inputs, outputs, and internal variables, with internal arithmetic saturation.&lt;br /&gt;
&lt;br /&gt;
4.	Fixed–point: discrete–time, normalized fixed–point arithmetic, with full precision operations and internal arithmetic saturation, filtered derivative.&lt;br /&gt;
&lt;br /&gt;
5.	Approximated: discrete–time, normalized fixed–point arithmetic, approximated operations, arithmetic saturation, filtered derivative.&lt;br /&gt;
&lt;br /&gt;
Some simulation results are reported in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[File:Prova03.png|400px|Figure 4. Mean square error.]]&lt;br /&gt;
[[File:Prova04.png|400px|Figure 5. Propeller velocity square integral.]]&lt;br /&gt;
&lt;br /&gt;
From the performance indicators charts some conclusions can be pointed out:&lt;br /&gt;
&lt;br /&gt;
•	A trend is mostly evident, where almost all of the indicators get progressively better, from the initial continuous–time implementation up to the normalized version, but after the latter the indicators get worse, almost returning to the original performance level:&lt;br /&gt;
&lt;br /&gt;
a.	Being the starting point, the continuous–time controller represents the performance reference for subsequent versions.&lt;br /&gt;
&lt;br /&gt;
b.	The discrete–time implementation also contains a derivative optimization, leading to a slightly better performance.&lt;br /&gt;
&lt;br /&gt;
c.	The normalized version adds more improvements due to a better use of the available (double–precision floating–point) arithmetic and an accurate management of critical calculations, in fact it presents the best overall performance according to the indicators.&lt;br /&gt;
&lt;br /&gt;
d.	The introduction of fixed–point arithmetic introduces intrinsic approximations, worsening the performance gained in the previous version.&lt;br /&gt;
&lt;br /&gt;
e.	Finally substituting several operations with look–up tables introduce more approximations, taking back the improvements to the starting point.&lt;br /&gt;
&lt;br /&gt;
•	The objective of this work has been reached since the final overall performance is comparable to the original version while the final one has several advantages:&lt;br /&gt;
&lt;br /&gt;
f.	It provides a fully synthesizable code enabling FPGA implementation or even specialized ASIC manufacturing.&lt;br /&gt;
&lt;br /&gt;
g.	It results in an area/resource efficient system, allowing independent usage alongside another processing system, freeing the latter from the control task.&lt;br /&gt;
&lt;br /&gt;
h.	Lower complexity brings also lower power consumption, although marginal when considering the overall consumption.&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP3-24&amp;diff=781</id>
		<title>WP3-24</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP3-24&amp;diff=781"/>
		<updated>2022-11-12T17:19:14Z</updated>

		<summary type="html">&lt;p&gt;Univaq: /* Contribution and Improvements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Efficient digital implementation of controllers on FPGAs=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP3-24&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Methodological&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| FPGAs for the implementation of the proposed control algorithms&lt;br /&gt;
|-&lt;br /&gt;
|   Provide		|| An efficient methodology for the implementation of digital control algorithms on FPGAs based on the pipeline approach.&lt;br /&gt;
|-&lt;br /&gt;
|   Input		|| Control algorithms for the autonomous navigation of drones to be implemented on FPGAs&lt;br /&gt;
|-&lt;br /&gt;
|   Output		|| Lower execution times, and hence smaller sampling times, than its naive implementation. Lower power consumption of the pipelined control algorithm.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D building block		|| Flight Control.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 3-4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Detailed Description==&lt;br /&gt;
&lt;br /&gt;
Efficient digital implementation of controllers on FPGAs. In the context of C4D project, the component WP3-24 aims to provide an efficient methodology for the digital implementation of controllers on FPGAs. It is well-known that the use of UAVs in many complex tasks has increased the complexity of the embedded control algorithms that are necessary in order to face more challenging performances, such as: detection and avoiding of obstacles; cooperation among drones; efficient trajectory execution; etc. However, many software solutions also present some limitations, due to its fixed internal architecture. This leads to a full serialization of the data treatment. The more complex is the control and decision algorithm, the longer is its execution time. This, in turn, constitutes a lower bound for the sampling time that can be used in the specific application. Clearly, longer sampling times determine worse controller performances. To obtain higher control performances, one can work in two possible directions. The first is methodological, and consists of designing the control algorithms on the basis of better discrete-time dynamic representations of the vehicle. The second is technological, and regards the use of more performing devices used to implement a given controller. As far as the technological solution is concerned, field-programmable gate arrays (FPGAs) can ensure better performances than software solutions, thanks to the possibility of parallelism and to the increasing integration density, which allows implementing complex control algorithms. In fact, FPGAs are full system-on-chip (SoC) solutions. They allow more flexibility for the implementation of embedded controllers, due to the fact that they include in the same chip various components (processors, memories, hardware multiplier blocks, analog–digital converters, matrix of programmable logic elements-fabric-and buses). The fact that FPGAs integrate both software and hardware resources allow faster implementations of controllers making use of the parallelism. Therefore, FPGAs constitute a valid hardware solution, since it is possible to design an architecture that is customized for the control algorithm to be implemented. This ensures shorter execution times of the algorithm. To further reduce the execution time in FPGAs, some techniques can be used that allow transforming the circuit structure, in order to reduce this time, and possibly the power consumption, maintaining the desired functionality, i.e., implementing the required control input. These (methodological, not technological) techniques include retiming/pipelining, folding/unfolding, interleaving, etc. The proposed methodology for the efficient implementation of controllers on FPGA is focused on retiming and pipelining. The former is a transformation technique used to change the locations of the delay elements in a circuit without affecting the input/output characteristics of the circuit. Pipelining is a special case of retiming used to reduce the critical path, introducing pipelining latches along the data path. Shortening the critical paths, one can increase the clock speed or the sample speed, or one can reduce the power consumption at the same speed.&lt;br /&gt;
&lt;br /&gt;
In order to be functional, the resulting controller must respect certain constraints given by the specific application, in this case:&lt;br /&gt;
&lt;br /&gt;
•	Real–time execution represents a hard constraint, meaning that exceeding the allowed time for the control action calculation is unacceptable.&lt;br /&gt;
&lt;br /&gt;
•	Power consumption is significant because the final controller will be powered from the UAV’s battery.&lt;br /&gt;
&lt;br /&gt;
•	Size and weight are directly related to power consumption, but also to manoeuvrability if they are too high.&lt;br /&gt;
&lt;br /&gt;
•	Precision can be traded for better performances and power efficiency if kept inside acceptable bounds.&lt;br /&gt;
&lt;br /&gt;
•	Reliability must be always ensured, although different implementations can provide several ways to obtain it.&lt;br /&gt;
&lt;br /&gt;
A perfect candidate for this application is the FPGA implementation, since it can provide strict real–time execution, high power efficiency, small size, and high reliability, at the cost of a reduced dynamic range. For instance, the Intel Cyclone 10 LP FPGA was available and corresponded to what was needed, then it has been used as a reference, it comes on a minimal board, useful for actual power consumption tests and fast prototyping, allowing installation on small UAVs for real world tests (see the figure below)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Prova01.png|400px|Figure 1. Intel Cyclone 10 LP floorplan.]]&lt;br /&gt;
&lt;br /&gt;
Depending on the final implementation strategy, the resulting architecture could be an application specific processor, with the sole purpose of managing the calculations autonomously, in other words it could result in a finite state machine managing a small arithmetic unit. This would ensure minimal area usage and maximum efficiency, yet fully respecting the timing constraints as this kind of processor will have only one task at any time:&lt;br /&gt;
&lt;br /&gt;
1.	Receive estimated state and reference input data.&lt;br /&gt;
&lt;br /&gt;
2.	Perform calculations in a fixed, appropriate allowed time frame, as a sequence of internal operations opaque to the external interface.&lt;br /&gt;
&lt;br /&gt;
3.	Provide control outputs to the actuators.&lt;br /&gt;
&lt;br /&gt;
4.	Wait to start a new cycle (if, as desired, the calculation takes less than the allowed time frame, in other words it should have minimal input–output delay).&lt;br /&gt;
&lt;br /&gt;
Other advantages of such architecture are reliability, since the entire cycle is well known in advance and the processor has no unexpected behaviors, unless there are environmental factors outside of the designer’s control, in those cases redundancy schemes can be applied, even on the same FPGA: duplicating or triplicating the same design and determining the correct output by voting, a high level of reliability can be ensured, since the stabilization control of the UAV is a critical task. Taking up very few hardware resources, the rest of the device can be used for other purposes, such as sensor data elaboration, mission planning (through a general purpose soft–processor), path planning, image elaboration, obstacle detection and avoidance, which greatly benefit from a hardware implementation. Another possible approach, yet to be explored, to improve reliability is the use of parity bits to detect errors, in fact FPGAs almost always make use of memory blocks and embedded multiply–accumulate blocks with the required bit widths, the one considered here indeed provides 9 bits per word native memory (can be used in several different configurations, such as 18 or 16 bits per word) and 18 bits in – 36 bits out multipliers (can be also used as two separate, independent 9 bits in – 18 bits out multipliers). If the word is considered as a multiple of one byte, with 8 bits per byte, then one parity bit is available since the native word is 9 bits wide. Native bit widths are especially important and need to be kept in mind for a maximally efficient implementation. Single event upset at configuration time is now fully supported by several vendors. One more thing worth mentioning, made possible by FPGAs, is the update process while the controller is still functioning: having redundant units allows an in–place reconfiguration of one of them while the others ensure functionality, through partial reconfiguration. &lt;br /&gt;
From the control point of view, this architecture choice allows to implement a supervisor to be used along with the controller, this supervisor could be a disturbance estimator, to correct and react to external unknown events (see the figures below).&lt;br /&gt;
&lt;br /&gt;
[[File:Prova02.png|400px|Figure 2. Complete controller general architecture.]]&lt;br /&gt;
[[File:Prova05.png|400px|Figure 3. Detail of the position control architecture.]]&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
The pipelined implementation technique, here proposed in the context of UAVs control (WP3-24), allows lower execution times, and hence smaller sampling times, than its naive implementation. Moreover, the power consumption of the pipelined control algorithm is lower. These two aspects constitute the main benefits of using a pipelining technique for the implementation of UAV control algorithm on an FPGA. In other words, the main aim behind the component (WP3-24) is to provide an implementation guideline for UAVs control algorithms showing that, when technological solutions such as FPGAs are used, the pipelining methodology can be successfully applied to obtain lower sampling periods, thereby allowing the implementation of more sophisticated controllers for UAVs. The efficiency of the proposed implementation methodology is shown by developing on FPGA a robust sampled—data controller for the autonomous navigation of drone which has been designed in the context of WP4 for C4D project. Finally, through experimental results, it can be shown that the pipelining methodology also allows taking into account the energetic aspects of the controller implementations, and not only the controller performance. This is another very important aspect for onboard systems as in UAVs.&lt;br /&gt;
&lt;br /&gt;
The proposed methodology has been validated through simulations. In particular, the following scenario has been addressed: the drone has to follows a trajectory resembles a complete mission with a duration of several minutes, where the UAV goes through a artichoke with a constant velocity. Such a reference is generated as a b–spline from the given waypoints. &lt;br /&gt;
&lt;br /&gt;
The system has been simulated in different combinations through the implementation steps, the quadrotor model has been always considered as continuous–time (although numerically integrated using multi–step algorithms, ensuring better accuracy and stability than single step integration). In particular, in the considered scenarios, the UAV to be controlled can be selected between different simulators:&lt;br /&gt;
&lt;br /&gt;
•	Simulink: implemented through differential equations describing the mathematical model with the main dynamics, it is the fastest in terms of simulation being directly integrated.&lt;br /&gt;
&lt;br /&gt;
•	Amesim: implemented as a complex yet detailed model, providing high fidelity dynamics, it is sufficiently fast in simulation despite the detailed model.&lt;br /&gt;
&lt;br /&gt;
•	Coppeliasim: implemented as a mixed model, calculating force and torque from the mathematical model equations, but using Coppeliasim’s physics engine, it is slower than the other choices but provides a complete 3D environment along with physical interaction with other objects such as collision.&lt;br /&gt;
&lt;br /&gt;
The controller followed this development flow, each step has an associated brief name and description for reference:&lt;br /&gt;
&lt;br /&gt;
1.	Ideal: continuous–time, double–precision floating–point arithmetic, full precision operations, ideal derivative, no internal arithmetic saturation.&lt;br /&gt;
&lt;br /&gt;
2.	Discrete: discrete–time, still with double–precision floating–point arithmetic and full precision operations and no saturation, filtered discrete–time derivative.&lt;br /&gt;
&lt;br /&gt;
3.	Normalized: discrete–time, full precision arithmetic and operations, normalized inputs, outputs, and internal variables, with internal arithmetic saturation.&lt;br /&gt;
&lt;br /&gt;
4.	Fixed–point: discrete–time, normalized fixed–point arithmetic, with full precision operations and internal arithmetic saturation, filtered derivative.&lt;br /&gt;
&lt;br /&gt;
5.	Approximated: discrete–time, normalized fixed–point arithmetic, approximated operations, arithmetic saturation, filtered derivative.&lt;br /&gt;
&lt;br /&gt;
Some simulation results are reported in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[File:Prova03.png|400px|Figure 4. Mean square error.]]&lt;br /&gt;
[[File:Prova04.png|400px|Figure 5. Propeller velocity square integral.]]&lt;br /&gt;
&lt;br /&gt;
From the performance indicators charts some conclusions can be pointed out:&lt;br /&gt;
&lt;br /&gt;
•	A trend is mostly evident, where almost all of the indicators get progressively better, from the initial continuous–time implementation up to the normalized version, but after the latter the indicators get worse, almost returning to the original performance level:&lt;br /&gt;
&lt;br /&gt;
  a.	Being the starting point, the continuous–time controller represents the performance reference for subsequent versions.&lt;br /&gt;
&lt;br /&gt;
  b.	The discrete–time implementation also contains a derivative optimization, leading to a slightly better performance.&lt;br /&gt;
&lt;br /&gt;
c.	The normalized version adds more improvements due to a better use of the available (double–precision floating–point) arithmetic and an accurate management of critical calculations, in fact it presents the best overall performance according to the indicators.&lt;br /&gt;
&lt;br /&gt;
  d.	The introduction of fixed–point arithmetic introduces intrinsic approximations, worsening the performance gained in the previous version.&lt;br /&gt;
&lt;br /&gt;
  e.	Finally substituting several operations with look–up tables introduce more approximations, taking back the improvements to the starting point.&lt;br /&gt;
&lt;br /&gt;
•	The objective of this work has been reached since the final overall performance is comparable to the original version while the final one has several advantages:&lt;br /&gt;
&lt;br /&gt;
  f.	It provides a fully synthesizable code enabling FPGA implementation or even specialized ASIC manufacturing.&lt;br /&gt;
&lt;br /&gt;
  g.	It results in an area/resource efficient system, allowing independent usage alongside another processing system, freeing the latter from the control task.&lt;br /&gt;
&lt;br /&gt;
  h.	Lower complexity brings also lower power consumption, although marginal when considering the overall consumption.&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP3-24&amp;diff=780</id>
		<title>WP3-24</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP3-24&amp;diff=780"/>
		<updated>2022-11-12T17:16:23Z</updated>

		<summary type="html">&lt;p&gt;Univaq: /* Contribution and Improvements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Efficient digital implementation of controllers on FPGAs=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP3-24&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Methodological&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| FPGAs for the implementation of the proposed control algorithms&lt;br /&gt;
|-&lt;br /&gt;
|   Provide		|| An efficient methodology for the implementation of digital control algorithms on FPGAs based on the pipeline approach.&lt;br /&gt;
|-&lt;br /&gt;
|   Input		|| Control algorithms for the autonomous navigation of drones to be implemented on FPGAs&lt;br /&gt;
|-&lt;br /&gt;
|   Output		|| Lower execution times, and hence smaller sampling times, than its naive implementation. Lower power consumption of the pipelined control algorithm.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D building block		|| Flight Control.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 3-4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Detailed Description==&lt;br /&gt;
&lt;br /&gt;
Efficient digital implementation of controllers on FPGAs. In the context of C4D project, the component WP3-24 aims to provide an efficient methodology for the digital implementation of controllers on FPGAs. It is well-known that the use of UAVs in many complex tasks has increased the complexity of the embedded control algorithms that are necessary in order to face more challenging performances, such as: detection and avoiding of obstacles; cooperation among drones; efficient trajectory execution; etc. However, many software solutions also present some limitations, due to its fixed internal architecture. This leads to a full serialization of the data treatment. The more complex is the control and decision algorithm, the longer is its execution time. This, in turn, constitutes a lower bound for the sampling time that can be used in the specific application. Clearly, longer sampling times determine worse controller performances. To obtain higher control performances, one can work in two possible directions. The first is methodological, and consists of designing the control algorithms on the basis of better discrete-time dynamic representations of the vehicle. The second is technological, and regards the use of more performing devices used to implement a given controller. As far as the technological solution is concerned, field-programmable gate arrays (FPGAs) can ensure better performances than software solutions, thanks to the possibility of parallelism and to the increasing integration density, which allows implementing complex control algorithms. In fact, FPGAs are full system-on-chip (SoC) solutions. They allow more flexibility for the implementation of embedded controllers, due to the fact that they include in the same chip various components (processors, memories, hardware multiplier blocks, analog–digital converters, matrix of programmable logic elements-fabric-and buses). The fact that FPGAs integrate both software and hardware resources allow faster implementations of controllers making use of the parallelism. Therefore, FPGAs constitute a valid hardware solution, since it is possible to design an architecture that is customized for the control algorithm to be implemented. This ensures shorter execution times of the algorithm. To further reduce the execution time in FPGAs, some techniques can be used that allow transforming the circuit structure, in order to reduce this time, and possibly the power consumption, maintaining the desired functionality, i.e., implementing the required control input. These (methodological, not technological) techniques include retiming/pipelining, folding/unfolding, interleaving, etc. The proposed methodology for the efficient implementation of controllers on FPGA is focused on retiming and pipelining. The former is a transformation technique used to change the locations of the delay elements in a circuit without affecting the input/output characteristics of the circuit. Pipelining is a special case of retiming used to reduce the critical path, introducing pipelining latches along the data path. Shortening the critical paths, one can increase the clock speed or the sample speed, or one can reduce the power consumption at the same speed.&lt;br /&gt;
&lt;br /&gt;
In order to be functional, the resulting controller must respect certain constraints given by the specific application, in this case:&lt;br /&gt;
&lt;br /&gt;
•	Real–time execution represents a hard constraint, meaning that exceeding the allowed time for the control action calculation is unacceptable.&lt;br /&gt;
&lt;br /&gt;
•	Power consumption is significant because the final controller will be powered from the UAV’s battery.&lt;br /&gt;
&lt;br /&gt;
•	Size and weight are directly related to power consumption, but also to manoeuvrability if they are too high.&lt;br /&gt;
&lt;br /&gt;
•	Precision can be traded for better performances and power efficiency if kept inside acceptable bounds.&lt;br /&gt;
&lt;br /&gt;
•	Reliability must be always ensured, although different implementations can provide several ways to obtain it.&lt;br /&gt;
&lt;br /&gt;
A perfect candidate for this application is the FPGA implementation, since it can provide strict real–time execution, high power efficiency, small size, and high reliability, at the cost of a reduced dynamic range. For instance, the Intel Cyclone 10 LP FPGA was available and corresponded to what was needed, then it has been used as a reference, it comes on a minimal board, useful for actual power consumption tests and fast prototyping, allowing installation on small UAVs for real world tests (see the figure below)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Prova01.png|400px|Figure 1. Intel Cyclone 10 LP floorplan.]]&lt;br /&gt;
&lt;br /&gt;
Depending on the final implementation strategy, the resulting architecture could be an application specific processor, with the sole purpose of managing the calculations autonomously, in other words it could result in a finite state machine managing a small arithmetic unit. This would ensure minimal area usage and maximum efficiency, yet fully respecting the timing constraints as this kind of processor will have only one task at any time:&lt;br /&gt;
&lt;br /&gt;
1.	Receive estimated state and reference input data.&lt;br /&gt;
&lt;br /&gt;
2.	Perform calculations in a fixed, appropriate allowed time frame, as a sequence of internal operations opaque to the external interface.&lt;br /&gt;
&lt;br /&gt;
3.	Provide control outputs to the actuators.&lt;br /&gt;
&lt;br /&gt;
4.	Wait to start a new cycle (if, as desired, the calculation takes less than the allowed time frame, in other words it should have minimal input–output delay).&lt;br /&gt;
&lt;br /&gt;
Other advantages of such architecture are reliability, since the entire cycle is well known in advance and the processor has no unexpected behaviors, unless there are environmental factors outside of the designer’s control, in those cases redundancy schemes can be applied, even on the same FPGA: duplicating or triplicating the same design and determining the correct output by voting, a high level of reliability can be ensured, since the stabilization control of the UAV is a critical task. Taking up very few hardware resources, the rest of the device can be used for other purposes, such as sensor data elaboration, mission planning (through a general purpose soft–processor), path planning, image elaboration, obstacle detection and avoidance, which greatly benefit from a hardware implementation. Another possible approach, yet to be explored, to improve reliability is the use of parity bits to detect errors, in fact FPGAs almost always make use of memory blocks and embedded multiply–accumulate blocks with the required bit widths, the one considered here indeed provides 9 bits per word native memory (can be used in several different configurations, such as 18 or 16 bits per word) and 18 bits in – 36 bits out multipliers (can be also used as two separate, independent 9 bits in – 18 bits out multipliers). If the word is considered as a multiple of one byte, with 8 bits per byte, then one parity bit is available since the native word is 9 bits wide. Native bit widths are especially important and need to be kept in mind for a maximally efficient implementation. Single event upset at configuration time is now fully supported by several vendors. One more thing worth mentioning, made possible by FPGAs, is the update process while the controller is still functioning: having redundant units allows an in–place reconfiguration of one of them while the others ensure functionality, through partial reconfiguration. &lt;br /&gt;
From the control point of view, this architecture choice allows to implement a supervisor to be used along with the controller, this supervisor could be a disturbance estimator, to correct and react to external unknown events (see the figures below).&lt;br /&gt;
&lt;br /&gt;
[[File:Prova02.png|400px|Figure 2. Complete controller general architecture.]]&lt;br /&gt;
[[File:Prova05.png|400px|Figure 3. Detail of the position control architecture.]]&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
The pipelined implementation technique, here proposed in the context of UAVs control (WP3-24), allows lower execution times, and hence smaller sampling times, than its naive implementation. Moreover, the power consumption of the pipelined control algorithm is lower. These two aspects constitute the main benefits of using a pipelining technique for the implementation of UAV control algorithm on an FPGA. In other words, the main aim behind the component (WP3-24) is to provide an implementation guideline for UAVs control algorithms showing that, when technological solutions such as FPGAs are used, the pipelining methodology can be successfully applied to obtain lower sampling periods, thereby allowing the implementation of more sophisticated controllers for UAVs. The efficiency of the proposed implementation methodology is shown by developing on FPGA a robust sampled—data controller for the autonomous navigation of drone which has been designed in the context of WP4 for C4D project. Finally, through experimental results, it can be shown that the pipelining methodology also allows taking into account the energetic aspects of the controller implementations, and not only the controller performance. This is another very important aspect for onboard systems as in UAVs.&lt;br /&gt;
&lt;br /&gt;
The proposed methodology has been validated through simulations. In particular, the following scenario has been addressed: the drone has to follows a trajectory resembles a complete mission with a duration of several minutes, where the UAV goes through a artichoke with a constant velocity. Such a reference is generated as a b–spline from the given waypoints. &lt;br /&gt;
&lt;br /&gt;
The system has been simulated in different combinations through the implementation steps, the quadrotor model has been always considered as continuous–time (although numerically integrated using multi–step algorithms, ensuring better accuracy and stability than single step integration). In particular, in the considered scenarios, the UAV to be controlled can be selected between different simulators:&lt;br /&gt;
&lt;br /&gt;
•	Simulink: implemented through differential equations describing the mathematical model with the main dynamics, it is the fastest in terms of simulation being directly integrated.&lt;br /&gt;
&lt;br /&gt;
•	Amesim: implemented as a complex yet detailed model, providing high fidelity dynamics, it is sufficiently fast in simulation despite the detailed model.&lt;br /&gt;
&lt;br /&gt;
•	Coppeliasim: implemented as a mixed model, calculating force and torque from the mathematical model equations, but using Coppeliasim’s physics engine, it is slower than the other choices but provides a complete 3D environment along with physical interaction with other objects such as collision.&lt;br /&gt;
&lt;br /&gt;
The controller followed this development flow, each step has an associated brief name and description for reference:&lt;br /&gt;
&lt;br /&gt;
1.	Ideal: continuous–time, double–precision floating–point arithmetic, full precision operations, ideal derivative, no internal arithmetic saturation.&lt;br /&gt;
&lt;br /&gt;
2.	Discrete: discrete–time, still with double–precision floating–point arithmetic and full precision operations and no saturation, filtered discrete–time derivative.&lt;br /&gt;
&lt;br /&gt;
3.	Normalized: discrete–time, full precision arithmetic and operations, normalized inputs, outputs, and internal variables, with internal arithmetic saturation.&lt;br /&gt;
&lt;br /&gt;
4.	Fixed–point: discrete–time, normalized fixed–point arithmetic, with full precision operations and internal arithmetic saturation, filtered derivative.&lt;br /&gt;
&lt;br /&gt;
5.	Approximated: discrete–time, normalized fixed–point arithmetic, approximated operations, arithmetic saturation, filtered derivative.&lt;br /&gt;
&lt;br /&gt;
Some simulation results are reported in the figure below.&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP3-24&amp;diff=779</id>
		<title>WP3-24</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP3-24&amp;diff=779"/>
		<updated>2022-11-12T17:11:07Z</updated>

		<summary type="html">&lt;p&gt;Univaq: /* Detailed Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Efficient digital implementation of controllers on FPGAs=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP3-24&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Methodological&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| FPGAs for the implementation of the proposed control algorithms&lt;br /&gt;
|-&lt;br /&gt;
|   Provide		|| An efficient methodology for the implementation of digital control algorithms on FPGAs based on the pipeline approach.&lt;br /&gt;
|-&lt;br /&gt;
|   Input		|| Control algorithms for the autonomous navigation of drones to be implemented on FPGAs&lt;br /&gt;
|-&lt;br /&gt;
|   Output		|| Lower execution times, and hence smaller sampling times, than its naive implementation. Lower power consumption of the pipelined control algorithm.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D building block		|| Flight Control.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 3-4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Detailed Description==&lt;br /&gt;
&lt;br /&gt;
Efficient digital implementation of controllers on FPGAs. In the context of C4D project, the component WP3-24 aims to provide an efficient methodology for the digital implementation of controllers on FPGAs. It is well-known that the use of UAVs in many complex tasks has increased the complexity of the embedded control algorithms that are necessary in order to face more challenging performances, such as: detection and avoiding of obstacles; cooperation among drones; efficient trajectory execution; etc. However, many software solutions also present some limitations, due to its fixed internal architecture. This leads to a full serialization of the data treatment. The more complex is the control and decision algorithm, the longer is its execution time. This, in turn, constitutes a lower bound for the sampling time that can be used in the specific application. Clearly, longer sampling times determine worse controller performances. To obtain higher control performances, one can work in two possible directions. The first is methodological, and consists of designing the control algorithms on the basis of better discrete-time dynamic representations of the vehicle. The second is technological, and regards the use of more performing devices used to implement a given controller. As far as the technological solution is concerned, field-programmable gate arrays (FPGAs) can ensure better performances than software solutions, thanks to the possibility of parallelism and to the increasing integration density, which allows implementing complex control algorithms. In fact, FPGAs are full system-on-chip (SoC) solutions. They allow more flexibility for the implementation of embedded controllers, due to the fact that they include in the same chip various components (processors, memories, hardware multiplier blocks, analog–digital converters, matrix of programmable logic elements-fabric-and buses). The fact that FPGAs integrate both software and hardware resources allow faster implementations of controllers making use of the parallelism. Therefore, FPGAs constitute a valid hardware solution, since it is possible to design an architecture that is customized for the control algorithm to be implemented. This ensures shorter execution times of the algorithm. To further reduce the execution time in FPGAs, some techniques can be used that allow transforming the circuit structure, in order to reduce this time, and possibly the power consumption, maintaining the desired functionality, i.e., implementing the required control input. These (methodological, not technological) techniques include retiming/pipelining, folding/unfolding, interleaving, etc. The proposed methodology for the efficient implementation of controllers on FPGA is focused on retiming and pipelining. The former is a transformation technique used to change the locations of the delay elements in a circuit without affecting the input/output characteristics of the circuit. Pipelining is a special case of retiming used to reduce the critical path, introducing pipelining latches along the data path. Shortening the critical paths, one can increase the clock speed or the sample speed, or one can reduce the power consumption at the same speed.&lt;br /&gt;
&lt;br /&gt;
In order to be functional, the resulting controller must respect certain constraints given by the specific application, in this case:&lt;br /&gt;
&lt;br /&gt;
•	Real–time execution represents a hard constraint, meaning that exceeding the allowed time for the control action calculation is unacceptable.&lt;br /&gt;
&lt;br /&gt;
•	Power consumption is significant because the final controller will be powered from the UAV’s battery.&lt;br /&gt;
&lt;br /&gt;
•	Size and weight are directly related to power consumption, but also to manoeuvrability if they are too high.&lt;br /&gt;
&lt;br /&gt;
•	Precision can be traded for better performances and power efficiency if kept inside acceptable bounds.&lt;br /&gt;
&lt;br /&gt;
•	Reliability must be always ensured, although different implementations can provide several ways to obtain it.&lt;br /&gt;
&lt;br /&gt;
A perfect candidate for this application is the FPGA implementation, since it can provide strict real–time execution, high power efficiency, small size, and high reliability, at the cost of a reduced dynamic range. For instance, the Intel Cyclone 10 LP FPGA was available and corresponded to what was needed, then it has been used as a reference, it comes on a minimal board, useful for actual power consumption tests and fast prototyping, allowing installation on small UAVs for real world tests (see the figure below)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Prova01.png|400px|Figure 1. Intel Cyclone 10 LP floorplan.]]&lt;br /&gt;
&lt;br /&gt;
Depending on the final implementation strategy, the resulting architecture could be an application specific processor, with the sole purpose of managing the calculations autonomously, in other words it could result in a finite state machine managing a small arithmetic unit. This would ensure minimal area usage and maximum efficiency, yet fully respecting the timing constraints as this kind of processor will have only one task at any time:&lt;br /&gt;
&lt;br /&gt;
1.	Receive estimated state and reference input data.&lt;br /&gt;
&lt;br /&gt;
2.	Perform calculations in a fixed, appropriate allowed time frame, as a sequence of internal operations opaque to the external interface.&lt;br /&gt;
&lt;br /&gt;
3.	Provide control outputs to the actuators.&lt;br /&gt;
&lt;br /&gt;
4.	Wait to start a new cycle (if, as desired, the calculation takes less than the allowed time frame, in other words it should have minimal input–output delay).&lt;br /&gt;
&lt;br /&gt;
Other advantages of such architecture are reliability, since the entire cycle is well known in advance and the processor has no unexpected behaviors, unless there are environmental factors outside of the designer’s control, in those cases redundancy schemes can be applied, even on the same FPGA: duplicating or triplicating the same design and determining the correct output by voting, a high level of reliability can be ensured, since the stabilization control of the UAV is a critical task. Taking up very few hardware resources, the rest of the device can be used for other purposes, such as sensor data elaboration, mission planning (through a general purpose soft–processor), path planning, image elaboration, obstacle detection and avoidance, which greatly benefit from a hardware implementation. Another possible approach, yet to be explored, to improve reliability is the use of parity bits to detect errors, in fact FPGAs almost always make use of memory blocks and embedded multiply–accumulate blocks with the required bit widths, the one considered here indeed provides 9 bits per word native memory (can be used in several different configurations, such as 18 or 16 bits per word) and 18 bits in – 36 bits out multipliers (can be also used as two separate, independent 9 bits in – 18 bits out multipliers). If the word is considered as a multiple of one byte, with 8 bits per byte, then one parity bit is available since the native word is 9 bits wide. Native bit widths are especially important and need to be kept in mind for a maximally efficient implementation. Single event upset at configuration time is now fully supported by several vendors. One more thing worth mentioning, made possible by FPGAs, is the update process while the controller is still functioning: having redundant units allows an in–place reconfiguration of one of them while the others ensure functionality, through partial reconfiguration. &lt;br /&gt;
From the control point of view, this architecture choice allows to implement a supervisor to be used along with the controller, this supervisor could be a disturbance estimator, to correct and react to external unknown events (see the figures below).&lt;br /&gt;
&lt;br /&gt;
[[File:Prova02.png|400px|Figure 2. Complete controller general architecture.]]&lt;br /&gt;
[[File:Prova05.png|400px|Figure 3. Detail of the position control architecture.]]&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
The pipelined implementation technique, here proposed in the context of UAVs control (WP3-24), allows lower execution times, and hence smaller sampling times, than its naive implementation. Moreover, the power consumption of the pipelined control algorithm is lower. These two aspects constitute the main benefits of using a pipelining technique for the implementation of UAV control algorithm on an FPGA. In other words, the main aim behind the component (WP3-24) is to provide an implementation guideline for UAVs control algorithms showing that, when technological solutions such as FPGAs are used, the pipelining methodology can be successfully applied to obtain lower sampling periods, thereby allowing the implementation of more sophisticated controllers for UAVs. The efficiency of the proposed implementation methodology is shown by developing on FPGA a robust sampled—data controller for the autonomous navigation of drone which has been designed in the context of WP4 for C4D project. Finally, through experimental results, it can be shown that the pipelining methodology also allows taking into account the energetic aspects of the controller implementations, and not only the controller performance. This is another very important aspect for onboard systems as in UAVs.&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP3-24&amp;diff=778</id>
		<title>WP3-24</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP3-24&amp;diff=778"/>
		<updated>2022-11-12T17:09:11Z</updated>

		<summary type="html">&lt;p&gt;Univaq: /* Detailed Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Efficient digital implementation of controllers on FPGAs=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP3-24&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Methodological&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| FPGAs for the implementation of the proposed control algorithms&lt;br /&gt;
|-&lt;br /&gt;
|   Provide		|| An efficient methodology for the implementation of digital control algorithms on FPGAs based on the pipeline approach.&lt;br /&gt;
|-&lt;br /&gt;
|   Input		|| Control algorithms for the autonomous navigation of drones to be implemented on FPGAs&lt;br /&gt;
|-&lt;br /&gt;
|   Output		|| Lower execution times, and hence smaller sampling times, than its naive implementation. Lower power consumption of the pipelined control algorithm.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D building block		|| Flight Control.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 3-4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Detailed Description==&lt;br /&gt;
&lt;br /&gt;
Efficient digital implementation of controllers on FPGAs. In the context of C4D project, the component WP3-24 aims to provide an efficient methodology for the digital implementation of controllers on FPGAs. It is well-known that the use of UAVs in many complex tasks has increased the complexity of the embedded control algorithms that are necessary in order to face more challenging performances, such as: detection and avoiding of obstacles; cooperation among drones; efficient trajectory execution; etc. However, many software solutions also present some limitations, due to its fixed internal architecture. This leads to a full serialization of the data treatment. The more complex is the control and decision algorithm, the longer is its execution time. This, in turn, constitutes a lower bound for the sampling time that can be used in the specific application. Clearly, longer sampling times determine worse controller performances. To obtain higher control performances, one can work in two possible directions. The first is methodological, and consists of designing the control algorithms on the basis of better discrete-time dynamic representations of the vehicle. The second is technological, and regards the use of more performing devices used to implement a given controller. As far as the technological solution is concerned, field-programmable gate arrays (FPGAs) can ensure better performances than software solutions, thanks to the possibility of parallelism and to the increasing integration density, which allows implementing complex control algorithms. In fact, FPGAs are full system-on-chip (SoC) solutions. They allow more flexibility for the implementation of embedded controllers, due to the fact that they include in the same chip various components (processors, memories, hardware multiplier blocks, analog–digital converters, matrix of programmable logic elements-fabric-and buses). The fact that FPGAs integrate both software and hardware resources allow faster implementations of controllers making use of the parallelism. Therefore, FPGAs constitute a valid hardware solution, since it is possible to design an architecture that is customized for the control algorithm to be implemented. This ensures shorter execution times of the algorithm. To further reduce the execution time in FPGAs, some techniques can be used that allow transforming the circuit structure, in order to reduce this time, and possibly the power consumption, maintaining the desired functionality, i.e., implementing the required control input. These (methodological, not technological) techniques include retiming/pipelining, folding/unfolding, interleaving, etc. The proposed methodology for the efficient implementation of controllers on FPGA is focused on retiming and pipelining. The former is a transformation technique used to change the locations of the delay elements in a circuit without affecting the input/output characteristics of the circuit. Pipelining is a special case of retiming used to reduce the critical path, introducing pipelining latches along the data path. Shortening the critical paths, one can increase the clock speed or the sample speed, or one can reduce the power consumption at the same speed.&lt;br /&gt;
&lt;br /&gt;
In order to be functional, the resulting controller must respect certain constraints given by the specific application, in this case:&lt;br /&gt;
&lt;br /&gt;
•	Real–time execution represents a hard constraint, meaning that exceeding the allowed time for the control action calculation is unacceptable.&lt;br /&gt;
&lt;br /&gt;
•	Power consumption is significant because the final controller will be powered from the UAV’s battery.&lt;br /&gt;
&lt;br /&gt;
•	Size and weight are directly related to power consumption, but also to manoeuvrability if they are too high.&lt;br /&gt;
&lt;br /&gt;
•	Precision can be traded for better performances and power efficiency if kept inside acceptable bounds.&lt;br /&gt;
&lt;br /&gt;
•	Reliability must be always ensured, although different implementations can provide several ways to obtain it.&lt;br /&gt;
&lt;br /&gt;
A perfect candidate for this application is the FPGA implementation, since it can provide strict real–time execution, high power efficiency, small size, and high reliability, at the cost of a reduced dynamic range. For instance, the Intel Cyclone 10 LP FPGA was available and corresponded to what was needed, then it has been used as a reference, it comes on a minimal board, useful for actual power consumption tests and fast prototyping, allowing installation on small UAVs for real world tests (see the figure below)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Prova01.png|400px|Figure 1. Intel Cyclone 10 LP floorplan.]]&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
The pipelined implementation technique, here proposed in the context of UAVs control (WP3-24), allows lower execution times, and hence smaller sampling times, than its naive implementation. Moreover, the power consumption of the pipelined control algorithm is lower. These two aspects constitute the main benefits of using a pipelining technique for the implementation of UAV control algorithm on an FPGA. In other words, the main aim behind the component (WP3-24) is to provide an implementation guideline for UAVs control algorithms showing that, when technological solutions such as FPGAs are used, the pipelining methodology can be successfully applied to obtain lower sampling periods, thereby allowing the implementation of more sophisticated controllers for UAVs. The efficiency of the proposed implementation methodology is shown by developing on FPGA a robust sampled—data controller for the autonomous navigation of drone which has been designed in the context of WP4 for C4D project. Finally, through experimental results, it can be shown that the pipelining methodology also allows taking into account the energetic aspects of the controller implementations, and not only the controller performance. This is another very important aspect for onboard systems as in UAVs.&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=File:Prova05.png&amp;diff=777</id>
		<title>File:Prova05.png</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=File:Prova05.png&amp;diff=777"/>
		<updated>2022-11-12T17:08:19Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP3-24&amp;diff=776</id>
		<title>WP3-24</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP3-24&amp;diff=776"/>
		<updated>2022-11-12T17:08:06Z</updated>

		<summary type="html">&lt;p&gt;Univaq: /* Detailed Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Efficient digital implementation of controllers on FPGAs=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP3-24&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Methodological&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| FPGAs for the implementation of the proposed control algorithms&lt;br /&gt;
|-&lt;br /&gt;
|   Provide		|| An efficient methodology for the implementation of digital control algorithms on FPGAs based on the pipeline approach.&lt;br /&gt;
|-&lt;br /&gt;
|   Input		|| Control algorithms for the autonomous navigation of drones to be implemented on FPGAs&lt;br /&gt;
|-&lt;br /&gt;
|   Output		|| Lower execution times, and hence smaller sampling times, than its naive implementation. Lower power consumption of the pipelined control algorithm.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D building block		|| Flight Control.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 3-4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Detailed Description==&lt;br /&gt;
&lt;br /&gt;
Efficient digital implementation of controllers on FPGAs. In the context of C4D project, the component WP3-24 aims to provide an efficient methodology for the digital implementation of controllers on FPGAs. It is well-known that the use of UAVs in many complex tasks has increased the complexity of the embedded control algorithms that are necessary in order to face more challenging performances, such as: detection and avoiding of obstacles; cooperation among drones; efficient trajectory execution; etc. However, many software solutions also present some limitations, due to its fixed internal architecture. This leads to a full serialization of the data treatment. The more complex is the control and decision algorithm, the longer is its execution time. This, in turn, constitutes a lower bound for the sampling time that can be used in the specific application. Clearly, longer sampling times determine worse controller performances. To obtain higher control performances, one can work in two possible directions. The first is methodological, and consists of designing the control algorithms on the basis of better discrete-time dynamic representations of the vehicle. The second is technological, and regards the use of more performing devices used to implement a given controller. As far as the technological solution is concerned, field-programmable gate arrays (FPGAs) can ensure better performances than software solutions, thanks to the possibility of parallelism and to the increasing integration density, which allows implementing complex control algorithms. In fact, FPGAs are full system-on-chip (SoC) solutions. They allow more flexibility for the implementation of embedded controllers, due to the fact that they include in the same chip various components (processors, memories, hardware multiplier blocks, analog–digital converters, matrix of programmable logic elements-fabric-and buses). The fact that FPGAs integrate both software and hardware resources allow faster implementations of controllers making use of the parallelism. Therefore, FPGAs constitute a valid hardware solution, since it is possible to design an architecture that is customized for the control algorithm to be implemented. This ensures shorter execution times of the algorithm. To further reduce the execution time in FPGAs, some techniques can be used that allow transforming the circuit structure, in order to reduce this time, and possibly the power consumption, maintaining the desired functionality, i.e., implementing the required control input. These (methodological, not technological) techniques include retiming/pipelining, folding/unfolding, interleaving, etc. The proposed methodology for the efficient implementation of controllers on FPGA is focused on retiming and pipelining. The former is a transformation technique used to change the locations of the delay elements in a circuit without affecting the input/output characteristics of the circuit. Pipelining is a special case of retiming used to reduce the critical path, introducing pipelining latches along the data path. Shortening the critical paths, one can increase the clock speed or the sample speed, or one can reduce the power consumption at the same speed.&lt;br /&gt;
&lt;br /&gt;
In order to be functional, the resulting controller must respect certain constraints given by the specific application, in this case:&lt;br /&gt;
•	Real–time execution represents a hard constraint, meaning that exceeding the allowed time for the control action calculation is unacceptable.&lt;br /&gt;
•	Power consumption is significant because the final controller will be powered from the UAV’s battery.&lt;br /&gt;
•	Size and weight are directly related to power consumption, but also to manoeuvrability if they are too high.&lt;br /&gt;
•	Precision can be traded for better performances and power efficiency if kept inside acceptable bounds.&lt;br /&gt;
•	Reliability must be always ensured, although different implementations can provide several ways to obtain it.&lt;br /&gt;
A perfect candidate for this application is the FPGA implementation, since it can provide strict real–time execution, high power efficiency, small size, and high reliability, at the cost of a reduced dynamic range. For instance, the Intel Cyclone 10 LP FPGA was available and corresponded to what was needed, then it has been used as a reference, it comes on a minimal board, useful for actual power consumption tests and fast prototyping, allowing installation on small UAVs for real world tests (see the figure below)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Prova01.png|400px|Figure 1. Intel Cyclone 10 LP floorplan.]]&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
The pipelined implementation technique, here proposed in the context of UAVs control (WP3-24), allows lower execution times, and hence smaller sampling times, than its naive implementation. Moreover, the power consumption of the pipelined control algorithm is lower. These two aspects constitute the main benefits of using a pipelining technique for the implementation of UAV control algorithm on an FPGA. In other words, the main aim behind the component (WP3-24) is to provide an implementation guideline for UAVs control algorithms showing that, when technological solutions such as FPGAs are used, the pipelining methodology can be successfully applied to obtain lower sampling periods, thereby allowing the implementation of more sophisticated controllers for UAVs. The efficiency of the proposed implementation methodology is shown by developing on FPGA a robust sampled—data controller for the autonomous navigation of drone which has been designed in the context of WP4 for C4D project. Finally, through experimental results, it can be shown that the pipelining methodology also allows taking into account the energetic aspects of the controller implementations, and not only the controller performance. This is another very important aspect for onboard systems as in UAVs.&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP3-24&amp;diff=775</id>
		<title>WP3-24</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP3-24&amp;diff=775"/>
		<updated>2022-11-12T17:07:06Z</updated>

		<summary type="html">&lt;p&gt;Univaq: /* Detailed Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Efficient digital implementation of controllers on FPGAs=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP3-24&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Methodological&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| FPGAs for the implementation of the proposed control algorithms&lt;br /&gt;
|-&lt;br /&gt;
|   Provide		|| An efficient methodology for the implementation of digital control algorithms on FPGAs based on the pipeline approach.&lt;br /&gt;
|-&lt;br /&gt;
|   Input		|| Control algorithms for the autonomous navigation of drones to be implemented on FPGAs&lt;br /&gt;
|-&lt;br /&gt;
|   Output		|| Lower execution times, and hence smaller sampling times, than its naive implementation. Lower power consumption of the pipelined control algorithm.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D building block		|| Flight Control.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 3-4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Detailed Description==&lt;br /&gt;
&lt;br /&gt;
Efficient digital implementation of controllers on FPGAs. In the context of C4D project, the component WP3-24 aims to provide an efficient methodology for the digital implementation of controllers on FPGAs. It is well-known that the use of UAVs in many complex tasks has increased the complexity of the embedded control algorithms that are necessary in order to face more challenging performances, such as: detection and avoiding of obstacles; cooperation among drones; efficient trajectory execution; etc. However, many software solutions also present some limitations, due to its fixed internal architecture. This leads to a full serialization of the data treatment. The more complex is the control and decision algorithm, the longer is its execution time. This, in turn, constitutes a lower bound for the sampling time that can be used in the specific application. Clearly, longer sampling times determine worse controller performances. To obtain higher control performances, one can work in two possible directions. The first is methodological, and consists of designing the control algorithms on the basis of better discrete-time dynamic representations of the vehicle. The second is technological, and regards the use of more performing devices used to implement a given controller. As far as the technological solution is concerned, field-programmable gate arrays (FPGAs) can ensure better performances than software solutions, thanks to the possibility of parallelism and to the increasing integration density, which allows implementing complex control algorithms. In fact, FPGAs are full system-on-chip (SoC) solutions. They allow more flexibility for the implementation of embedded controllers, due to the fact that they include in the same chip various components (processors, memories, hardware multiplier blocks, analog–digital converters, matrix of programmable logic elements-fabric-and buses). The fact that FPGAs integrate both software and hardware resources allow faster implementations of controllers making use of the parallelism. Therefore, FPGAs constitute a valid hardware solution, since it is possible to design an architecture that is customized for the control algorithm to be implemented. This ensures shorter execution times of the algorithm. To further reduce the execution time in FPGAs, some techniques can be used that allow transforming the circuit structure, in order to reduce this time, and possibly the power consumption, maintaining the desired functionality, i.e., implementing the required control input. These (methodological, not technological) techniques include retiming/pipelining, folding/unfolding, interleaving, etc. The proposed methodology for the efficient implementation of controllers on FPGA is focused on retiming and pipelining. The former is a transformation technique used to change the locations of the delay elements in a circuit without affecting the input/output characteristics of the circuit. Pipelining is a special case of retiming used to reduce the critical path, introducing pipelining latches along the data path. Shortening the critical paths, one can increase the clock speed or the sample speed, or one can reduce the power consumption at the same speed.&lt;br /&gt;
&lt;br /&gt;
In order to be functional, the resulting controller must respect certain constraints given by the specific application, in this case:&lt;br /&gt;
•	Real–time execution represents a hard constraint, meaning that exceeding the allowed time for the control action calculation is unacceptable.&lt;br /&gt;
•	Power consumption is significant because the final controller will be powered from the UAV’s battery.&lt;br /&gt;
•	Size and weight are directly related to power consumption, but also to manoeuvrability if they are too high.&lt;br /&gt;
•	Precision can be traded for better performances and power efficiency if kept inside acceptable bounds.&lt;br /&gt;
•	Reliability must be always ensured, although different implementations can provide several ways to obtain it.&lt;br /&gt;
A perfect candidate for this application is the FPGA implementation, since it can provide strict real–time execution, high power efficiency, small size, and high reliability, at the cost of a reduced dynamic range. For instance, the Intel Cyclone 10 LP FPGA was available and corresponded to what was needed, then it has been used as a reference, it comes on a minimal board, useful for actual power consumption tests and fast prototyping, allowing installation on small UAVs for real world tests (see Figure 1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Prova01.png|400px|Figure 1. Intel Cyclone 10 LP floorplan.]]&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
The pipelined implementation technique, here proposed in the context of UAVs control (WP3-24), allows lower execution times, and hence smaller sampling times, than its naive implementation. Moreover, the power consumption of the pipelined control algorithm is lower. These two aspects constitute the main benefits of using a pipelining technique for the implementation of UAV control algorithm on an FPGA. In other words, the main aim behind the component (WP3-24) is to provide an implementation guideline for UAVs control algorithms showing that, when technological solutions such as FPGAs are used, the pipelining methodology can be successfully applied to obtain lower sampling periods, thereby allowing the implementation of more sophisticated controllers for UAVs. The efficiency of the proposed implementation methodology is shown by developing on FPGA a robust sampled—data controller for the autonomous navigation of drone which has been designed in the context of WP4 for C4D project. Finally, through experimental results, it can be shown that the pipelining methodology also allows taking into account the energetic aspects of the controller implementations, and not only the controller performance. This is another very important aspect for onboard systems as in UAVs.&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP3-24&amp;diff=774</id>
		<title>WP3-24</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP3-24&amp;diff=774"/>
		<updated>2022-11-12T17:06:36Z</updated>

		<summary type="html">&lt;p&gt;Univaq: /* Detailed Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Efficient digital implementation of controllers on FPGAs=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP3-24&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Methodological&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| FPGAs for the implementation of the proposed control algorithms&lt;br /&gt;
|-&lt;br /&gt;
|   Provide		|| An efficient methodology for the implementation of digital control algorithms on FPGAs based on the pipeline approach.&lt;br /&gt;
|-&lt;br /&gt;
|   Input		|| Control algorithms for the autonomous navigation of drones to be implemented on FPGAs&lt;br /&gt;
|-&lt;br /&gt;
|   Output		|| Lower execution times, and hence smaller sampling times, than its naive implementation. Lower power consumption of the pipelined control algorithm.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D building block		|| Flight Control.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 3-4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Detailed Description==&lt;br /&gt;
&lt;br /&gt;
Efficient digital implementation of controllers on FPGAs. In the context of C4D project, the component WP3-24 aims to provide an efficient methodology for the digital implementation of controllers on FPGAs. It is well-known that the use of UAVs in many complex tasks has increased the complexity of the embedded control algorithms that are necessary in order to face more challenging performances, such as: detection and avoiding of obstacles; cooperation among drones; efficient trajectory execution; etc. However, many software solutions also present some limitations, due to its fixed internal architecture. This leads to a full serialization of the data treatment. The more complex is the control and decision algorithm, the longer is its execution time. This, in turn, constitutes a lower bound for the sampling time that can be used in the specific application. Clearly, longer sampling times determine worse controller performances. To obtain higher control performances, one can work in two possible directions. The first is methodological, and consists of designing the control algorithms on the basis of better discrete-time dynamic representations of the vehicle. The second is technological, and regards the use of more performing devices used to implement a given controller. As far as the technological solution is concerned, field-programmable gate arrays (FPGAs) can ensure better performances than software solutions, thanks to the possibility of parallelism and to the increasing integration density, which allows implementing complex control algorithms. In fact, FPGAs are full system-on-chip (SoC) solutions. They allow more flexibility for the implementation of embedded controllers, due to the fact that they include in the same chip various components (processors, memories, hardware multiplier blocks, analog–digital converters, matrix of programmable logic elements-fabric-and buses). The fact that FPGAs integrate both software and hardware resources allow faster implementations of controllers making use of the parallelism. Therefore, FPGAs constitute a valid hardware solution, since it is possible to design an architecture that is customized for the control algorithm to be implemented. This ensures shorter execution times of the algorithm. To further reduce the execution time in FPGAs, some techniques can be used that allow transforming the circuit structure, in order to reduce this time, and possibly the power consumption, maintaining the desired functionality, i.e., implementing the required control input. These (methodological, not technological) techniques include retiming/pipelining, folding/unfolding, interleaving, etc. The proposed methodology for the efficient implementation of controllers on FPGA is focused on retiming and pipelining. The former is a transformation technique used to change the locations of the delay elements in a circuit without affecting the input/output characteristics of the circuit. Pipelining is a special case of retiming used to reduce the critical path, introducing pipelining latches along the data path. Shortening the critical paths, one can increase the clock speed or the sample speed, or one can reduce the power consumption at the same speed.&lt;br /&gt;
&lt;br /&gt;
In order to be functional, the resulting controller must respect certain constraints given by the specific application, in this case:&lt;br /&gt;
•	Real–time execution represents a hard constraint, meaning that exceeding the allowed time for the control action calculation is unacceptable.&lt;br /&gt;
•	Power consumption is significant because the final controller will be powered from the UAV’s battery.&lt;br /&gt;
•	Size and weight are directly related to power consumption, but also to manoeuvrability if they are too high.&lt;br /&gt;
•	Precision can be traded for better performances and power efficiency if kept inside acceptable bounds.&lt;br /&gt;
•	Reliability must be always ensured, although different implementations can provide several ways to obtain it.&lt;br /&gt;
A perfect candidate for this application is the FPGA implementation, since it can provide strict real–time execution, high power efficiency, small size, and high reliability, at the cost of a reduced dynamic range. For instance, the Intel Cyclone 10 LP FPGA was available and corresponded to what was needed, then it has been used as a reference, it comes on a minimal board, useful for actual power consumption tests and fast prototyping, allowing installation on small UAVs for real world tests (see Figure 1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Prova01.jpg|400px|Figure 1. Intel Cyclone 10 LP floorplan.]]&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
The pipelined implementation technique, here proposed in the context of UAVs control (WP3-24), allows lower execution times, and hence smaller sampling times, than its naive implementation. Moreover, the power consumption of the pipelined control algorithm is lower. These two aspects constitute the main benefits of using a pipelining technique for the implementation of UAV control algorithm on an FPGA. In other words, the main aim behind the component (WP3-24) is to provide an implementation guideline for UAVs control algorithms showing that, when technological solutions such as FPGAs are used, the pipelining methodology can be successfully applied to obtain lower sampling periods, thereby allowing the implementation of more sophisticated controllers for UAVs. The efficiency of the proposed implementation methodology is shown by developing on FPGA a robust sampled—data controller for the autonomous navigation of drone which has been designed in the context of WP4 for C4D project. Finally, through experimental results, it can be shown that the pipelining methodology also allows taking into account the energetic aspects of the controller implementations, and not only the controller performance. This is another very important aspect for onboard systems as in UAVs.&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=File:Prova04.png&amp;diff=773</id>
		<title>File:Prova04.png</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=File:Prova04.png&amp;diff=773"/>
		<updated>2022-11-12T17:02:20Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=File:Prova03.png&amp;diff=772</id>
		<title>File:Prova03.png</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=File:Prova03.png&amp;diff=772"/>
		<updated>2022-11-12T17:01:57Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=File:Prova02.png&amp;diff=771</id>
		<title>File:Prova02.png</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=File:Prova02.png&amp;diff=771"/>
		<updated>2022-11-12T17:01:41Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=File:Prova01.png&amp;diff=770</id>
		<title>File:Prova01.png</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=File:Prova01.png&amp;diff=770"/>
		<updated>2022-11-12T17:01:11Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-34&amp;diff=499</id>
		<title>WP6-34</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-34&amp;diff=499"/>
		<updated>2022-10-03T12:42:35Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HEPSYCODE SystemC SIMulator Version 2.0 (HEPSIM2)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSIM2&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, SystemC code&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Co-Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Logs and performance metrics&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
HEPSIM2 (i.e., HEPSYCODE Simulator Version 2.0) is a SystemC-based tool for functional and timing/energy HW/SW co-simulation/analysis at the system-level, integrated into a reference Electronic System-Level (ESL) HW/SW co-design methodology, called HEPSYCODE ([1][2][3][4]), targeting heterogeneous parallel embedded systems. The following text describes the main features of the tool by mainly focusing on the improvements and extensions done in C4D with respect to a previous version [41].&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
HEPSIM2 is based on SystemC, and the HEPSIM2 System Behaviour Model (SBM, i.e., the application model, see HEPSYCODE wiki page) is based on the CSP (Communicating Sequential Processes) Model of Computation (MoC) [5]. HEPSIM2 really works at ESL, i.e., at an abstraction layer similar to TLM but mainly considering only the behavioural view of the system. In fact, it allows considering the effects that the mapping on the HW platform would have on the system behaviour without the need to develop a corresponding TLM structural model. This is obtained by exploiting an approach inspired by the native simulation one [7] but combined with offline statement-level timing estimations [6] to avoid the need for binary code analysis. This feature allows a faster what-if analysis since it doesn’t require ISS or HDL integration into virtual platforms. The main drawback is the possible reduced accuracy in the timing performance estimation with respect to TLM analysis, but the proposed approach can be used to reduce the design space early and quickly by selecting the most promising “configurations” that can be then transformed into TLM (or RTL) models for more accurate analysis by means of specific tools. Moreover, other than performing functional and HW/SW timing co-simulations, HEPSIM2 is able to perform also co-analysis and co-estimations. In fact, it is able to provide information about communication and potential concurrency (both for processes and channels) in the CSP model. Moreover, it is able to perform the estimation of the loads that CSP-processes execution (and the bandwidth that CSP-channels communications) would impose, respectively, to processors and physical links, in order to satisfy imposed timing constraints. Such information allows the reference ESL HW/SW co-design flow to exploit in a more effective way the targeted heterogeneous parallel embedded architecture. Finally, HEPSIM2 is strictly integrated into the HEPSYCODE ESL HW/SW co-design methodology ([1][2][3][4]) but it can be used also as a stand-alone tool relying on an HW architecture directly provided by the designer (i.e., manual DSE).&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
Some key aspects of the HEPSIM2 for analysis improvement are:&lt;br /&gt;
&lt;br /&gt;
* HEPSIM2 simulation time is no more dependent on the time granularity related to the events generated by the environment. This feature has been obtained by re-designing the second-level schedulers used to model scheduling activities on GPP/ASP in order to reduce the overhead associated with the scheduling management and preserve usability and scalability.&lt;br /&gt;
* The improved second-level scheduler design provides better usability and scalability from two main points of view:&lt;br /&gt;
*# The first is related to the scalability of the time intervals among different inputs from STIMULUS. With the old HEPSIM, a time interval of 1000 ms would be completely unfeasible due to the duration of the simulation. So, it is possible to state that, on average, simulation time has been reduced by an amount greater than 15%.&lt;br /&gt;
*# The second analysis is related to the scalability with respect to the number of CSP processes and CSP channels in the SBM, and processors and schedulers in the HW/SW architecture. The strategy has been to create even more complex SBMs (by replicating several times a basic one) and simulating them by considering several architecture/mapping items built to mix GPP/ASP and SP.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
HEPSIM2, the SystemC simulator used in HEPSICODE, has demonstrated interoperability with S3D in the ECSEL project MegaMart2. Interoperability with ESDE can be established with SystemC. HEPSIM2 simulations can be adapted to another Model of Computation such as Data Flow (DF), allowing integration with UNISS MDC and UNIMORE OODK. Therefore, the interoperability graph for HEPSIM2 is as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-34_1_01.png|300px|thumb|frame|center| HEPSIM2 interoperability graph]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] L. Pomante. “System-level design space exploration for dedicated heterogeneous multi-processor systems”. IEEE Int. Conf. on Application-specific Systems, Architectures and Processors, 2011.&lt;br /&gt;
&lt;br /&gt;
[2] L. Pomante, D. Sciuto, F. Salice, W. Fornaciari, C. Brandolese. “Affinity-Driven System Design Exploration for Heterogeneous Multiprocessor SoC”. IEEE Transactions on Computers, vol. 55, no. 5, May 2006.&lt;br /&gt;
&lt;br /&gt;
[3] “HEPSYCODE”, https://www.hepsycode.com/.&lt;br /&gt;
&lt;br /&gt;
[4] Pomante, L., Muttillo, V., Santic, M., Serri, P. “SystemC-based electronic system-level design space exploration environment for dedicated heterogeneous multi-processor systems”. Microprocessors and Microsystems, 72, 2020&lt;br /&gt;
&lt;br /&gt;
[5] Hoare C.A.R. (1978) “Communicating Sequential Processes”. In: Hansen P.B. (eds) The Origin of Concurrent Programming. Springer, New York, NY&lt;br /&gt;
&lt;br /&gt;
[6] V. Muttillo, G. Valente, L. Pomante, V. Stoico, F. D’Antonio, and F. Salice, “CC4CS: an Off-the-Shelf Unifying Statement-Level Performance Metric for HW/SW Technologies”, In Companion of the 2018 ACM/SPEC Int. Conf. on Performance Engineering (ICPE '18)&lt;br /&gt;
&lt;br /&gt;
[7] L. Diaz, E. Gonzalez, E. Villar and P. Sanchez, &amp;quot;VIPPE, parallel simulation and performance analysis of multi-core embedded systems on multi-core platforms,&amp;quot; Design of Circuits and Integrated Systems, Madrid, 2014, pp. 1-7&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-34&amp;diff=498</id>
		<title>WP6-34</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-34&amp;diff=498"/>
		<updated>2022-10-03T12:40:34Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HEPSYCODE SystemC SIMulator Version 2.0 (HEPSIM2)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSIM2&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, SystemC code&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Co-Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Logs and performance metrics&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
HEPSIM2 (i.e., HEPSYCODE Simulator Version 2.0) is a SystemC-based tool for functional and timing/energy HW/SW co-simulation/analysis at the system-level, integrated into a reference Electronic System-Level (ESL) HW/SW co-design methodology, called HEPSYCODE ([1][2][3][4]), targeting heterogeneous parallel embedded systems. The following text describes the main features of the tool by mainly focusing on the improvements and extensions done in C4D with respect to a previous version [41].&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
HEPSIM2 is based on SystemC, and the HEPSIM2 System Behaviour Model (SBM, i.e., the application model, see HEPSYCODE wiki page) is based on the CSP (Communicating Sequential Processes) Model of Computation (MoC) [5]. HEPSIM2 really works at ESL, i.e., at an abstraction layer similar to TLM but mainly considering only the behavioural view of the system. In fact, it allows considering the effects that the mapping on the HW platform would have on the system behaviour without the need to develop a corresponding TLM structural model. This is obtained by exploiting an approach inspired by the native simulation one [7] but combined with offline statement-level timing estimations [6] to avoid the need for binary code analysis. This feature allows a faster what-if analysis since it doesn’t require ISS or HDL integration into virtual platforms. The main drawback is the possible reduced accuracy in the timing performance estimation with respect to TLM analysis, but the proposed approach can be used to reduce the design space early and quickly by selecting the most promising “configurations” that can be then transformed into TLM (or RTL) models for more accurate analysis by means of specific tools. Moreover, other than performing functional and HW/SW timing co-simulations, HEPSIM2 is able to perform also co-analysis and co-estimations. In fact, it is able to provide information about communication and potential concurrency (both for processes and channels) in the CSP model. Moreover, it is able to perform the estimation of the loads that CSP-processes execution (and the bandwidth that CSP-channels communications) would impose, respectively, to processors and physical links, in order to satisfy imposed timing constraints. Such information, as described below, allows the reference ESL HW/SW co-design flow to exploit in a more effective way the targeted heterogeneous parallel embedded architecture. Finally, HEPSIM2 is strictly integrated into the HEPSYCODE ESL HW/SW co-design methodology ([1][2][3][4]) but it can be used also as a stand-alone tool relying on an HW architecture directly provided by the designer (i.e., manual DSE).&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
Some key aspects of the HEPSIM2 for analysis improvement are:&lt;br /&gt;
&lt;br /&gt;
* HEPSIM2 simulation time is no more dependent on the time granularity related to the events generated by the environment. This feature has been obtained by re-designing the second-level schedulers used to model scheduling activities on GPP/ASP in order to reduce the overhead associated with the scheduling management and preserve usability and scalability.&lt;br /&gt;
* The improved second-level scheduler design provides better usability and scalability from two main points of view:&lt;br /&gt;
*# The first is related to the scalability of the time intervals among different inputs from STIMULUS. With the old HEPSIM, a time interval of 1000 ms would be completely unfeasible due to the duration of the simulation. So, it is possible to state that, on average, simulation time has been reduced by an amount greater than 15%.&lt;br /&gt;
*# The second analysis is related to the scalability with respect to the number of CSP processes and CSP channels in the SBM, and processors and schedulers in the HW/SW architecture. The strategy has been to create even more complex SBMs (by replicating several times a basic one) and simulating them by considering several architecture/mapping items built to mix GPP/ASP and SP.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
HEPSIM2, the SystemC simulator used in HEPSICODE, has demonstrated interoperability with S3D in the ECSEL project MegaMart2. Interoperability with ESDE can be established with SystemC. HEPSIM2 simulations can be adapted to another Model of Computation such as Data Flow (DF), allowing integration with UNISS MDC and UNIMORE OODK. Therefore, the interoperability graph for HEPSIM2 is as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-34_1_01.png|300px|thumb|frame|center| HEPSIM2 interoperability graph]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] L. Pomante. “System-level design space exploration for dedicated heterogeneous multi-processor systems”. IEEE Int. Conf. on Application-specific Systems, Architectures and Processors, 2011.&lt;br /&gt;
&lt;br /&gt;
[2] L. Pomante, D. Sciuto, F. Salice, W. Fornaciari, C. Brandolese. “Affinity-Driven System Design Exploration for Heterogeneous Multiprocessor SoC”. IEEE Transactions on Computers, vol. 55, no. 5, May 2006.&lt;br /&gt;
&lt;br /&gt;
[3] “HEPSYCODE”, https://www.hepsycode.com/.&lt;br /&gt;
&lt;br /&gt;
[4] Pomante, L., Muttillo, V., Santic, M., Serri, P. “SystemC-based electronic system-level design space exploration environment for dedicated heterogeneous multi-processor systems”. Microprocessors and Microsystems, 72, 2020&lt;br /&gt;
&lt;br /&gt;
[5] Hoare C.A.R. (1978) “Communicating Sequential Processes”. In: Hansen P.B. (eds) The Origin of Concurrent Programming. Springer, New York, NY&lt;br /&gt;
&lt;br /&gt;
[6] V. Muttillo, G. Valente, L. Pomante, V. Stoico, F. D’Antonio, and F. Salice, “CC4CS: an Off-the-Shelf Unifying Statement-Level Performance Metric for HW/SW Technologies”, In Companion of the 2018 ACM/SPEC Int. Conf. on Performance Engineering (ICPE '18)&lt;br /&gt;
&lt;br /&gt;
[7] L. Diaz, E. Gonzalez, E. Villar and P. Sanchez, &amp;quot;VIPPE, parallel simulation and performance analysis of multi-core embedded systems on multi-core platforms,&amp;quot; Design of Circuits and Integrated Systems, Madrid, 2014, pp. 1-7&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-34&amp;diff=497</id>
		<title>WP6-34</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-34&amp;diff=497"/>
		<updated>2022-10-03T12:39:57Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HEPSYCODE SystemC SIMulator Version 2.0 (HEPSIM2)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSIM2&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, SystemC code&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Co-Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Logs and performance metrics&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
HEPSIM2 (i.e., HEPSYCODE Simulator Version 2.0) is a SystemC-based tool for functional and timing/energy HW/SW co-simulation/analysis at the system-level, integrated into a reference Electronic System-Level (ESL) HW/SW co-design methodology, called HEPSYCODE ([1][2][3][4]), targeting heterogeneous parallel embedded systems. The following text describes the main features of the tool by mainly focusing on the improvements and extensions done in C4D with respect to a previous version [41].&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
HEPSIM2 is based on SystemC, and the HEPSIM2 System Behaviour Model (SBM, i.e., the application model, see the previous section about HEPSYCODE) is based on the CSP (Communicating Sequential Processes) Model of Computation (MoC) [5]. HEPSIM2 really works at ESL, i.e., at an abstraction layer similar to TLM but mainly considering only the behavioural view of the system. In fact, it allows considering the effects that the mapping on the HW platform would have on the system behaviour without the need to develop a corresponding TLM structural model. This is obtained by exploiting an approach inspired by the native simulation one [7] but combined with offline statement-level timing estimations [6] to avoid the need for binary code analysis. This feature allows a faster what-if analysis since it doesn’t require ISS or HDL integration into virtual platforms. The main drawback is the possible reduced accuracy in the timing performance estimation with respect to TLM analysis, but the proposed approach can be used to reduce the design space early and quickly by selecting the most promising “configurations” that can be then transformed into TLM (or RTL) models for more accurate analysis by means of specific tools. Moreover, other than performing functional and HW/SW timing co-simulations, HEPSIM2 is able to perform also co-analysis and co-estimations. In fact, it is able to provide information about communication and potential concurrency (both for processes and channels) in the CSP model. Moreover, it is able to perform the estimation of the loads that CSP-processes execution (and the bandwidth that CSP-channels communications) would impose, respectively, to processors and physical links, in order to satisfy imposed timing constraints. Such information, as described below, allows the reference ESL HW/SW co-design flow to exploit in a more effective way the targeted heterogeneous parallel embedded architecture. Finally, HEPSIM2 is strictly integrated into the HEPSYCODE ESL HW/SW co-design methodology ([1][2][3][4]) but it can be used also as a stand-alone tool relying on an HW architecture directly provided by the designer (i.e., manual DSE).&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
Some key aspects of the HEPSIM2 for analysis improvement are:&lt;br /&gt;
&lt;br /&gt;
* HEPSIM2 simulation time is no more dependent on the time granularity related to the events generated by the environment. This feature has been obtained by re-designing the second-level schedulers used to model scheduling activities on GPP/ASP in order to reduce the overhead associated with the scheduling management and preserve usability and scalability.&lt;br /&gt;
* The improved second-level scheduler design provides better usability and scalability from two main points of view:&lt;br /&gt;
*# The first is related to the scalability of the time intervals among different inputs from STIMULUS. With the old HEPSIM, a time interval of 1000 ms would be completely unfeasible due to the duration of the simulation. So, it is possible to state that, on average, simulation time has been reduced by an amount greater than 15%.&lt;br /&gt;
*# The second analysis is related to the scalability with respect to the number of CSP processes and CSP channels in the SBM, and processors and schedulers in the HW/SW architecture. The strategy has been to create even more complex SBMs (by replicating several times a basic one) and simulating them by considering several architecture/mapping items built to mix GPP/ASP and SP.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
HEPSIM2, the SystemC simulator used in HEPSICODE, has demonstrated interoperability with S3D in the ECSEL project MegaMart2. Interoperability with ESDE can be established with SystemC. HEPSIM2 simulations can be adapted to another Model of Computation such as Data Flow (DF), allowing integration with UNISS MDC and UNIMORE OODK. Therefore, the interoperability graph for HEPSIM2 is as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-34_1_01.png|300px|thumb|frame|center| HEPSIM2 interoperability graph]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] L. Pomante. “System-level design space exploration for dedicated heterogeneous multi-processor systems”. IEEE Int. Conf. on Application-specific Systems, Architectures and Processors, 2011.&lt;br /&gt;
&lt;br /&gt;
[2] L. Pomante, D. Sciuto, F. Salice, W. Fornaciari, C. Brandolese. “Affinity-Driven System Design Exploration for Heterogeneous Multiprocessor SoC”. IEEE Transactions on Computers, vol. 55, no. 5, May 2006.&lt;br /&gt;
&lt;br /&gt;
[3] “HEPSYCODE”, https://www.hepsycode.com/.&lt;br /&gt;
&lt;br /&gt;
[4] Pomante, L., Muttillo, V., Santic, M., Serri, P. “SystemC-based electronic system-level design space exploration environment for dedicated heterogeneous multi-processor systems”. Microprocessors and Microsystems, 72, 2020&lt;br /&gt;
&lt;br /&gt;
[5] Hoare C.A.R. (1978) “Communicating Sequential Processes”. In: Hansen P.B. (eds) The Origin of Concurrent Programming. Springer, New York, NY&lt;br /&gt;
&lt;br /&gt;
[6] V. Muttillo, G. Valente, L. Pomante, V. Stoico, F. D’Antonio, and F. Salice, “CC4CS: an Off-the-Shelf Unifying Statement-Level Performance Metric for HW/SW Technologies”, In Companion of the 2018 ACM/SPEC Int. Conf. on Performance Engineering (ICPE '18)&lt;br /&gt;
&lt;br /&gt;
[7] L. Diaz, E. Gonzalez, E. Villar and P. Sanchez, &amp;quot;VIPPE, parallel simulation and performance analysis of multi-core embedded systems on multi-core platforms,&amp;quot; Design of Circuits and Integrated Systems, Madrid, 2014, pp. 1-7&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-34&amp;diff=496</id>
		<title>WP6-34</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-34&amp;diff=496"/>
		<updated>2022-10-03T12:39:35Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HEPSYCODE SystemC SIMulator Version 2.0 (HEPSIM2)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSIM2&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, SystemC code&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Co-Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Logs and performance metrics&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
HEPSIM2 (i.e., HEPSYCODE Simulator Version 2.0) is a SystemC-based tool for functional and timing HW/SW co-simulation/analysis at the system-level, integrated into a reference Electronic System-Level (ESL) HW/SW co-design methodology, called HEPSYCODE ([1][2][3][4]), targeting heterogeneous parallel embedded systems. The following text describes the main features of the tool by mainly focusing on the improvements and extensions done in C4D with respect to a previous version [41].&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
HEPSIM2 is based on SystemC, and the HEPSIM2 System Behaviour Model (SBM, i.e., the application model, see the previous section about HEPSYCODE) is based on the CSP (Communicating Sequential Processes) Model of Computation (MoC) [5]. HEPSIM2 really works at ESL, i.e., at an abstraction layer similar to TLM but mainly considering only the behavioural view of the system. In fact, it allows considering the effects that the mapping on the HW platform would have on the system behaviour without the need to develop a corresponding TLM structural model. This is obtained by exploiting an approach inspired by the native simulation one [7] but combined with offline statement-level timing estimations [6] to avoid the need for binary code analysis. This feature allows a faster what-if analysis since it doesn’t require ISS or HDL integration into virtual platforms. The main drawback is the possible reduced accuracy in the timing performance estimation with respect to TLM analysis, but the proposed approach can be used to reduce the design space early and quickly by selecting the most promising “configurations” that can be then transformed into TLM (or RTL) models for more accurate analysis by means of specific tools. Moreover, other than performing functional and HW/SW timing co-simulations, HEPSIM2 is able to perform also co-analysis and co-estimations. In fact, it is able to provide information about communication and potential concurrency (both for processes and channels) in the CSP model. Moreover, it is able to perform the estimation of the loads that CSP-processes execution (and the bandwidth that CSP-channels communications) would impose, respectively, to processors and physical links, in order to satisfy imposed timing constraints. Such information, as described below, allows the reference ESL HW/SW co-design flow to exploit in a more effective way the targeted heterogeneous parallel embedded architecture. Finally, HEPSIM2 is strictly integrated into the HEPSYCODE ESL HW/SW co-design methodology ([1][2][3][4]) but it can be used also as a stand-alone tool relying on an HW architecture directly provided by the designer (i.e., manual DSE).&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
Some key aspects of the HEPSIM2 for analysis improvement are:&lt;br /&gt;
&lt;br /&gt;
* HEPSIM2 simulation time is no more dependent on the time granularity related to the events generated by the environment. This feature has been obtained by re-designing the second-level schedulers used to model scheduling activities on GPP/ASP in order to reduce the overhead associated with the scheduling management and preserve usability and scalability.&lt;br /&gt;
* The improved second-level scheduler design provides better usability and scalability from two main points of view:&lt;br /&gt;
*# The first is related to the scalability of the time intervals among different inputs from STIMULUS. With the old HEPSIM, a time interval of 1000 ms would be completely unfeasible due to the duration of the simulation. So, it is possible to state that, on average, simulation time has been reduced by an amount greater than 15%.&lt;br /&gt;
*# The second analysis is related to the scalability with respect to the number of CSP processes and CSP channels in the SBM, and processors and schedulers in the HW/SW architecture. The strategy has been to create even more complex SBMs (by replicating several times a basic one) and simulating them by considering several architecture/mapping items built to mix GPP/ASP and SP.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
HEPSIM2, the SystemC simulator used in HEPSICODE, has demonstrated interoperability with S3D in the ECSEL project MegaMart2. Interoperability with ESDE can be established with SystemC. HEPSIM2 simulations can be adapted to another Model of Computation such as Data Flow (DF), allowing integration with UNISS MDC and UNIMORE OODK. Therefore, the interoperability graph for HEPSIM2 is as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-34_1_01.png|300px|thumb|frame|center| HEPSIM2 interoperability graph]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] L. Pomante. “System-level design space exploration for dedicated heterogeneous multi-processor systems”. IEEE Int. Conf. on Application-specific Systems, Architectures and Processors, 2011.&lt;br /&gt;
&lt;br /&gt;
[2] L. Pomante, D. Sciuto, F. Salice, W. Fornaciari, C. Brandolese. “Affinity-Driven System Design Exploration for Heterogeneous Multiprocessor SoC”. IEEE Transactions on Computers, vol. 55, no. 5, May 2006.&lt;br /&gt;
&lt;br /&gt;
[3] “HEPSYCODE”, https://www.hepsycode.com/.&lt;br /&gt;
&lt;br /&gt;
[4] Pomante, L., Muttillo, V., Santic, M., Serri, P. “SystemC-based electronic system-level design space exploration environment for dedicated heterogeneous multi-processor systems”. Microprocessors and Microsystems, 72, 2020&lt;br /&gt;
&lt;br /&gt;
[5] Hoare C.A.R. (1978) “Communicating Sequential Processes”. In: Hansen P.B. (eds) The Origin of Concurrent Programming. Springer, New York, NY&lt;br /&gt;
&lt;br /&gt;
[6] V. Muttillo, G. Valente, L. Pomante, V. Stoico, F. D’Antonio, and F. Salice, “CC4CS: an Off-the-Shelf Unifying Statement-Level Performance Metric for HW/SW Technologies”, In Companion of the 2018 ACM/SPEC Int. Conf. on Performance Engineering (ICPE '18)&lt;br /&gt;
&lt;br /&gt;
[7] L. Diaz, E. Gonzalez, E. Villar and P. Sanchez, &amp;quot;VIPPE, parallel simulation and performance analysis of multi-core embedded systems on multi-core platforms,&amp;quot; Design of Circuits and Integrated Systems, Madrid, 2014, pp. 1-7&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=Component_repository&amp;diff=495</id>
		<title>Component repository</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=Component_repository&amp;diff=495"/>
		<updated>2022-10-03T12:39:12Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This repository aims at providing common components usable in different application domains, in particular those covered by project use-cases.&lt;br /&gt;
&lt;br /&gt;
The requirements for using a components will be listed, as well as a documentation on how to use it. The component itself will be hosted by the partner who provides it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Components list==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|ID &lt;br /&gt;
|Contributor &lt;br /&gt;
|Title&lt;br /&gt;
|-&lt;br /&gt;
|[[WP3-01]]&lt;br /&gt;
|IKERLAN&lt;br /&gt;
|Safety function - Pre-Certified SOM&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-02]] &lt;br /&gt;
|EDI &lt;br /&gt;
|Modular SoC-based embedded reference architecture&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-03]]&lt;br /&gt;
|BUT	&lt;br /&gt;
|Sensor information algorithms&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-04]]	&lt;br /&gt;
|HIB	&lt;br /&gt;
|Computer Vision Components for drones&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-10]]	&lt;br /&gt;
|IFAT	&lt;br /&gt;
|Component for trusted communication&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-13]]	&lt;br /&gt;
|ENAC	&lt;br /&gt;
|Paparazzi UAV&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-14_1]]	&lt;br /&gt;
|ENSMA	&lt;br /&gt;
|Collision avoidance and geo-fencing&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-14_2]]	&lt;br /&gt;
|ENSMA	&lt;br /&gt;
|Distributed control of multi-drone system&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-15_1]]	&lt;br /&gt;
|ACORDE	&lt;br /&gt;
|UWB based indoor positioning&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-15_2]]&lt;br /&gt;
|ACORDE	&lt;br /&gt;
|Multi-antenna GNSS/INS based navigation&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-16]]	&lt;br /&gt;
|SCALIAN	&lt;br /&gt;
|EZ_Chains Fleet Architecture&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-19_1]]	&lt;br /&gt;
|IMEC	&lt;br /&gt;
|Hyperspectral payload&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-19_2]]	&lt;br /&gt;
|IMEC	&lt;br /&gt;
|Hyperspectral image processing&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-20]]	&lt;br /&gt;
|MODIS	&lt;br /&gt;
|Multi-sensor positioning&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-22]]	&lt;br /&gt;
|UNIMORE	&lt;br /&gt;
|Onboard Compute Platform Desing Methodology&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-24]]	&lt;br /&gt;
|UNIVAQ	&lt;br /&gt;
|Efficient digital implementation of controllers&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-26]]	&lt;br /&gt;
|UWB	&lt;br /&gt;
|Droneport: an autonomous drone battery management system&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-28]]	&lt;br /&gt;
|UNISS	&lt;br /&gt;
|Accelerator Design Methodology for OOCP&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-36_1]]	&lt;br /&gt;
|UDANET	&lt;br /&gt;
|Smart and predictive energy management system&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-36_2]]&lt;br /&gt;
|UDANET	&lt;br /&gt;
|AI drone system modules&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-37]]	&lt;br /&gt;
|Aitek	&lt;br /&gt;
|Video and data analytics&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-2]]	&lt;br /&gt;
|SCALIAN	&lt;br /&gt;
|EZ_Land Precision landing&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-5]]	&lt;br /&gt;
|SCALIAN	&lt;br /&gt;
|AI detection for clearance&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-10]]	&lt;br /&gt;
|ALM&lt;br /&gt;
|Cooperative Planner&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-14]]	&lt;br /&gt;
|ALM&lt;br /&gt;
|Map Enhancement Service&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-15]]	&lt;br /&gt;
|ALM&lt;br /&gt;
|Visual Analytics&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-16]]	&lt;br /&gt;
|ACORDE&lt;br /&gt;
|Enhanced Navigation Software&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-17]]	&lt;br /&gt;
|ACORDE&lt;br /&gt;
|Anchor&amp;amp;Tag firmware of the Indoor  Positioning System &lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-18_A]]	&lt;br /&gt;
|TEKNE	&lt;br /&gt;
|Drone-Rover Transponder&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-20]]	&lt;br /&gt;
|ALM&lt;br /&gt;
|Attractor-based Navigation&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-22]]	&lt;br /&gt;
|ALM&lt;br /&gt;
|Shared Reference Frame&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-32]]	&lt;br /&gt;
|SHERPA&lt;br /&gt;
|Dynamic control development for navigation and precision landing&lt;br /&gt;
|-&lt;br /&gt;
|[[WP4-33]]	&lt;br /&gt;
|UNIVAQ	&lt;br /&gt;
|Autonomy, cooperation, and awareness&lt;br /&gt;
|-&lt;br /&gt;
|[[WP4-36]]	&lt;br /&gt;
|IMCS&lt;br /&gt;
|Autonomous Decision Making in Critical Situations&lt;br /&gt;
|-&lt;br /&gt;
|[[WP4-37]]	&lt;br /&gt;
|IMCS&lt;br /&gt;
|Algorithms for Runtime Safety Monitoring&lt;br /&gt;
|-  &lt;br /&gt;
|[[WP4-39]]	&lt;br /&gt;
|HIB&lt;br /&gt;
|Simulated data aggregator supporting intelligent decision in computer vision components&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-42]]	&lt;br /&gt;
|SCALIAN	&lt;br /&gt;
|AI Stabilization&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-02]]	&lt;br /&gt;
|IKERLAN&lt;br /&gt;
|Security Management Toolchain&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-03]]	&lt;br /&gt;
|SCALIAN	&lt;br /&gt;
|EZ_Com Safe fleet communication&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-09]]	&lt;br /&gt;
|ABI	&lt;br /&gt;
|Communication scheme for unified system management&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-05_A]]	&lt;br /&gt;
|TEKNE	&lt;br /&gt;
|LP-WAN for UAV identification and monitoring&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-11_ACO]]	&lt;br /&gt;
|ACORDE&lt;br /&gt;
|Navigation system with anti-jamming and anti-spoofing features&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-16-AIT]]	&lt;br /&gt;
|AIT&lt;br /&gt;
|Cryptographic algorithms adapted for drones&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-19_ACO]]	&lt;br /&gt;
|ACORDE&lt;br /&gt;
|Robust communication for an improved Indoor Positioning System&lt;br /&gt;
|- &lt;br /&gt;
|[[WP6-P4R]]	&lt;br /&gt;
|CEA	&lt;br /&gt;
|Model driven engineering&lt;br /&gt;
|- &lt;br /&gt;
|[[WP6-ESDE]]	&lt;br /&gt;
|ACORDE&lt;br /&gt;
|ESL embedded SW Design Environment (ESDE)&lt;br /&gt;
|- &lt;br /&gt;
|[[WP6-IPS-MAF]]	&lt;br /&gt;
|ACORDE&lt;br /&gt;
|Indoor Positioning System Modelling&amp;amp;Analysis Framework (IPS-MAF)&lt;br /&gt;
|- &lt;br /&gt;
|[[WP6-17]]	&lt;br /&gt;
|UNIVAQ&lt;br /&gt;
|HW/SW CO-DEsign of HEterogeneous Parallel dedicated SYstems (HEPSYCODE)&lt;br /&gt;
|- &lt;br /&gt;
|[[WP6-34]]	&lt;br /&gt;
|UNIVAQ&lt;br /&gt;
|HEPSYCODE SystemC SIMulator Version 2.0 (HEPSIM2)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=494</id>
		<title>WP6-17</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=494"/>
		<updated>2022-10-03T12:38:45Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HW/SW CO-DEsign of HEterogeneous Parallel dedicated Systems (HEPSYCODE)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSYCODE&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, SystemC code, UML/MARTE model&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Architectural solutions&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| HW/SW Partitioning, Mapping and Architecture Definition&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The increasing complexity of nowadays embedded digital systems, especially those based on advanced system-on-chip (SoC) that explicitly use heterogeneous parallel architectures (e.g., [1][2]) to meet demanding timing performance and power consumption requirements, and their shorter time-to-market are radically changing standard industrial design methodologies. Traditional design approaches based on the independent design of HW/SW components are no longer sufficient to efficiently exploit sub-areas of such SoCs. For this reason, system-level HW/SW co-design methods, where designers can early check system-level constraints and evaluate tradeoffs between cost and performance, are becoming increasingly important [3]. These methods are capable of guiding system-level activities using appropriate models, metrics, and tools, and assisting the designer in all those tasks normally entrusted only to his or her experience (e.g., HW / SW architecture definition and system-level HW /SW partitioning ). In this context, this repository presents a reference methodology for electronic system level (ESL) HW/SW co-design, called HEPSYCODE (e.g., [4][5][6][7]), targeting heterogeneous parallel embedded systems. It has been extended in C4D to meet mixed-criticality requirements and to be integrated into UML/MARTE specifications.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
Figure below shows the reference ESL HW/SW co-design flow while its main steps are briefly described below by giving emphasis (red elements in Figure below) to the interactions with the HEPSIM2 simulator/analysis tool. More details about the whole methodology can be found in [4][5][6][7].&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-17_1_01.png|600px|thumb|frame|center| Reference ESL HW/SW Co-Design Flow]]&lt;br /&gt;
&lt;br /&gt;
The entry point of the reference HW /SW co-design flow is the System Behaviour Model (SBM), which is based on a CSP -like MoC and described using SystemC. It is enriched by timing constraints (TCs) and reference inputs (RI). The first step of the reference flow, performed using HEPSIM2, is the functional simulation. It allows checking the correctness of the SBM with respect to RI. In the following steps, the reference ESL HW /SW co-design flow is supported by a Technologies Library (TL), which can be considered as a database that provides a characterization of all HW technologies used to define the so-called Basic Blocks (BBs) to build the final system. The TL contains information about available General-Purpose Processors (GPPs), Application Specific Processors (ASPs), Single Purpose Processors (SPPs) [8], memory, and interconnects (i.e., physical links). The next step is co-analysis and co-estimation. During co-analysis, the SBM is analyzed to evaluate three metrics: affinity, communication, and concurrency. The first one represents how much a CSP process is suitable to be executed on a specific processor class (i.e., GPP, ASP, SPP) [5]. The second one is the evaluation of the number of bits that the various CSP process pairs exchanged over the corresponding CSP channels during simulation. The third refers to how many concurrencies have been found during the simulation in the activities of the CSP processes and CSP channels (it is evaluated using HEPSIM2 in a given configuration). Co-estimation is responsible for estimating timing, size, and load. Timing represents the time needed by each processor in the TL to execute an SBM statement. Size represents the number of bytes in RAM and ROM needed to store data and instructions for each CSP process implemented in SW. For the implementation of HW CSP processes, it is the number of mm2 (depending on the target HW technology, equivalent metrics such as Equivalent Gates, Look Up Table, etc. may be used) needed to implement processing, memory, and interconnect elements. Load represents the utilization percentage that each CSP process when implemented in SW, would impose on each GPP/ASP (used to define the BBs) to meet a timing constraint specified by the designer (i.e., it is actually a time to completion, TTC). After this step, the flow enters Design Space Exploration (DSE), which consists of 2 activities, &amp;quot;HW /SW Partitioning, Architecture Definition and Mapping&amp;quot; and &amp;quot;Timing HW /SW Co-simulation&amp;quot;. The first activity is responsible for defining the HW architecture of the target system and for HW /SW partitioning and mapping processes and channels to available processors and physical connections. This data is then provided to HEPSIM2 to verify that the proposed architecture or mapping meets the timing constraints. Data exchange between the different steps of the entire ESL HW /SW co-design flow is supported by appropriate XML files.&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
&lt;br /&gt;
The design activity in HEPSYCODE begins with a high-level abstraction modeling language (called HEPSYCODE Modeling Language, HML). The initial HML model is then transformed into an executable SystemC model based on the Communicating Sequential Processes (CSP) Model of Computation (MoC), first described by Hoare [9]. HEPSYCODE defines two system-level models, the SBM and the TL. The former is realized from the original HML. The latter contains all necessary and low-level hardware architectural details (e.g., PUs, MUs, CUs). Such models are supported by some C++ libraries that extend the standard SystemC library to implement CSP. The language of Communicating Sequential Processes (CSP) was developed for describing systems of interacting components and is supported by an underlying theory for reasoning about them.&lt;br /&gt;
CSP processes are modeled by using classic SC_THREAD while CSP channels have been modeled by introducing a proper sc_csp_channel as better described later. A “CSP SC_THREAD” presents an init section and an infinite loop behavior while accessing only its local variables and so communicating with other “CSP SC_THREAD” only by means of CSP channels. Finally, in a “CSP SC_THREAD”, only basic C/C++ statements and C++/SystemC data types are allowed while avoiding a full OOP approach since it could introduce critical issues for estimation and HW synthesis activities (in fact, the adopted restrictions have been inspired by [10]). Since the SBM is based on CSP, the SystemC library has been extended to properly model CSP channels with a sc_csp_channel class.&lt;br /&gt;
HEPSYCODE supports the UML/MARTE modeling language for system modeling. The integration of UML/MARTE allows the designer to use one of the most used languages in the embedded systems industry. Moreover, MARTE is a standard UML profile to represent quantitative non-functional properties (e.g., time, performance). This variant of HEPSYCODE provides several steps of verification and validation (V&amp;amp;V) intending to discover eventual design flaws before the implementation. The novelty lies in the adoption of formal models to check the satisfiability of non-functional requirements and estimate system properties.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
HEPSYCODE has demonstrated interoperability with S3D in the ECSEL project MegaMart2. Interoperability with ESDE can be established using SystemC simulation tool (HEPSIM2). Since the modeling methodology of Papyrus4Robotics is based on MARTE, potential interoperability with this tool seems possible with the new HEPSYCODE extension. HEPSYCODE models can be adapted to another Model of Computation such as Data Flow (DF), allowing integration with UNISS MDC and UNIMORE OODK. Therefore, the interoperability graph for HEPSYCODE is the following:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-17_1_02.png|300px|thumb|frame|center| HEPSYCODE interoperability graph]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] “Xilinx Zynq SoC family”, http://www.xilinx.com&lt;br /&gt;
&lt;br /&gt;
[2] “Intel/Altera Cyclone V family”, http://www.intel.com&lt;br /&gt;
&lt;br /&gt;
[3] J. Teich. “Hardware/software co-design: The past, the present, and predicting the future”. Proceedings of the IEEE, 100 (Special Centennial Issue):1411-1430, May 2012.&lt;br /&gt;
&lt;br /&gt;
[4] L. Pomante. “System-level design space exploration for dedicated heterogeneous multi-processor systems”. IEEE Int. Conf. on Application-specific Systems, Architectures, and Processors, 2011.&lt;br /&gt;
&lt;br /&gt;
[5] L. Pomante, D. Sciuto, F. Salice, W. Fornaciari, C. Brandolese. “Affinity-Driven System Design Exploration for Heterogeneous Multiprocessor SoC”. IEEE Transactions on Computers, vol. 55, no. 5, May 2006.&lt;br /&gt;
&lt;br /&gt;
[6] “HEPSYCODE”, https://www.hepsycode.com/.&lt;br /&gt;
&lt;br /&gt;
[7] Pomante, L., Muttillo, V., Santic, M., Serri, P. “SystemC-based electronic system-level design space exploration environment for dedicated heterogeneous multi-processor systems”. Microprocessors and Microsystems, 72, 2020&lt;br /&gt;
&lt;br /&gt;
[8] Frank Vahid and Tony Givargis. 2001. “Embedded System Design: A Unified Hardware/Software Introduction”. John Wiley &amp;amp; Sons, Inc.&lt;br /&gt;
&lt;br /&gt;
[9] C. A. R. Hoare. 1978. “Communicating sequential processes”. Commun. ACM 21, 8 (Aug. 1978), 666–677.&lt;br /&gt;
&lt;br /&gt;
[10] “SystemC Synthesis Subset Language Reference Manual”, https://www.accellera.org/community/systemc&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-34&amp;diff=425</id>
		<title>WP6-34</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-34&amp;diff=425"/>
		<updated>2022-09-22T19:51:07Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HEPSYCODE SystemC SIMulator Version 2.0 (HEPSIM2)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSIM2&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, SystemC code&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Co-Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Logs and performance metrics&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
HEPSIM2 (i.e., HEPSYCODE Simulator 2) is a SystemC-based tool for functional and timing HW/SW co-simulation/analysis at the system-level, integrated into a reference Electronic System-Level (ESL) HW/SW co-design methodology, called HEPSYCODE ([1][2][3][4]), targeting heterogeneous parallel embedded systems. The following text describes the main features of the tool by mainly focusing on the improvements and extensions done in C4D with respect to a previous version [41].&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
HEPSIM2 is based on SystemC, and the HEPSIM2 System Behaviour Model (SBM, i.e., the application model, see the previous section about HEPSYCODE) is based on the CSP (Communicating Sequential Processes) Model of Computation (MoC) [5]. HEPSIM2 really works at ESL, i.e., at an abstraction layer similar to TLM but mainly considering only the behavioural view of the system. In fact, it allows considering the effects that the mapping on the HW platform would have on the system behaviour without the need to develop a corresponding TLM structural model. This is obtained by exploiting an approach inspired by the native simulation one [7] but combined with offline statement-level timing estimations [6] to avoid the need for binary code analysis. This feature allows a faster what-if analysis since it doesn’t require ISS or HDL integration into virtual platforms. The main drawback is the possible reduced accuracy in the timing performance estimation with respect to TLM analysis, but the proposed approach can be used to reduce the design space early and quickly by selecting the most promising “configurations” that can be then transformed into TLM (or RTL) models for more accurate analysis by means of specific tools. Moreover, other than performing functional and HW/SW timing co-simulations, HEPSIM2 is able to perform also co-analysis and co-estimations. In fact, it is able to provide information about communication and potential concurrency (both for processes and channels) in the CSP model. Moreover, it is able to perform the estimation of the loads that CSP-processes execution (and the bandwidth that CSP-channels communications) would impose, respectively, to processors and physical links, in order to satisfy imposed timing constraints. Such information, as described below, allows the reference ESL HW/SW co-design flow to exploit in a more effective way the targeted heterogeneous parallel embedded architecture. Finally, HEPSIM2 is strictly integrated into the HEPSYCODE ESL HW/SW co-design methodology ([1][2][3][4]) but it can be used also as a stand-alone tool relying on an HW architecture directly provided by the designer (i.e., manual DSE).&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
Some key aspects of the HEPSIM2 for analysis improvement are:&lt;br /&gt;
&lt;br /&gt;
* HEPSIM2 simulation time is no more dependent on the time granularity related to the events generated by the environment. This feature has been obtained by re-designing the second-level schedulers used to model scheduling activities on GPP/ASP in order to reduce the overhead associated with the scheduling management and preserve usability and scalability.&lt;br /&gt;
* The improved second-level scheduler design provides better usability and scalability from two main points of view:&lt;br /&gt;
*# The first is related to the scalability of the time intervals among different inputs from STIMULUS. With the old HEPSIM, a time interval of 1000 ms would be completely unfeasible due to the duration of the simulation. So, it is possible to state that, on average, simulation time has been reduced by an amount greater than 15%.&lt;br /&gt;
*# The second analysis is related to the scalability with respect to the number of CSP processes and CSP channels in the SBM, and processors and schedulers in the HW/SW architecture. The strategy has been to create even more complex SBMs (by replicating several times a basic one) and simulating them by considering several architecture/mapping items built to mix GPP/ASP and SP.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
HEPSIM2, the SystemC simulator used in HEPSICODE, has demonstrated interoperability with S3D in the ECSEL project MegaMart2. Interoperability with ESDE can be established with SystemC. HEPSIM2 simulations can be adapted to another Model of Computation such as Data Flow (DF), allowing integration with UNISS MDC and UNIMORE OODK. Therefore, the interoperability graph for HEPSIM2 is as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-34_1_01.png|300px|thumb|frame|center| HEPSIM2 interoperability graph]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] L. Pomante. “System-level design space exploration for dedicated heterogeneous multi-processor systems”. IEEE Int. Conf. on Application-specific Systems, Architectures and Processors, 2011.&lt;br /&gt;
&lt;br /&gt;
[2] L. Pomante, D. Sciuto, F. Salice, W. Fornaciari, C. Brandolese. “Affinity-Driven System Design Exploration for Heterogeneous Multiprocessor SoC”. IEEE Transactions on Computers, vol. 55, no. 5, May 2006.&lt;br /&gt;
&lt;br /&gt;
[3] “HEPSYCODE”, https://www.hepsycode.com/.&lt;br /&gt;
&lt;br /&gt;
[4] Pomante, L., Muttillo, V., Santic, M., Serri, P. “SystemC-based electronic system-level design space exploration environment for dedicated heterogeneous multi-processor systems”. Microprocessors and Microsystems, 72, 2020&lt;br /&gt;
&lt;br /&gt;
[5] Hoare C.A.R. (1978) “Communicating Sequential Processes”. In: Hansen P.B. (eds) The Origin of Concurrent Programming. Springer, New York, NY&lt;br /&gt;
&lt;br /&gt;
[6] V. Muttillo, G. Valente, L. Pomante, V. Stoico, F. D’Antonio, and F. Salice, “CC4CS: an Off-the-Shelf Unifying Statement-Level Performance Metric for HW/SW Technologies”, In Companion of the 2018 ACM/SPEC Int. Conf. on Performance Engineering (ICPE '18)&lt;br /&gt;
&lt;br /&gt;
[7] L. Diaz, E. Gonzalez, E. Villar and P. Sanchez, &amp;quot;VIPPE, parallel simulation and performance analysis of multi-core embedded systems on multi-core platforms,&amp;quot; Design of Circuits and Integrated Systems, Madrid, 2014, pp. 1-7&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=424</id>
		<title>WP6-17</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=424"/>
		<updated>2022-09-22T19:50:05Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HW/SW CO-DEsign of HEterogeneous Parallel dedicated Systems (HEPSYCODE)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSYCODE&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, SystemC code, UML/MARTE model&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Architectural solutions&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| HW/SW Partitioning, Mapping and Architecture Definition&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The increasing complexity of nowadays embedded digital systems, especially those based on advanced system-on-chip (SoC) that explicitly use heterogeneous parallel architectures (e.g., [1][2]) to meet demanding timing performance and power consumption requirements, and their shorter time-to-market are radically changing standard industrial design methodologies. Traditional design approaches based on the independent design of HW/SW components are no longer sufficient to efficiently exploit sub-areas of such SoCs. For this reason, system-level HW/SW co-design methods, where designers can early check system-level constraints and evaluate tradeoffs between cost and performance, are becoming increasingly important [3]. These methods are capable of guiding system-level activities using appropriate models, metrics, and tools, and assisting the designer in all those tasks normally entrusted only to his or her experience (e.g., HW / SW architecture definition and system-level HW /SW partitioning ). In this context, this repository presents a reference methodology for electronic system level (ESL) HW/SW co-design, called HEPSYCODE (e.g., [4][5][6][7]), targeting heterogeneous parallel embedded systems. It has been extended in C4D to meet mixed-criticality requirements and to be integrated into UML/MARTE specifications.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
Figure below shows the reference ESL HW/SW co-design flow while its main steps are briefly described below by giving emphasis (red elements in Figure below) to the interactions with the HEPSIM2 simulator/analysis tool. More details about the whole methodology can be found in [4][5][6][7].&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-17_1_01.png|600px|thumb|frame|center| Reference ESL HW/SW Co-Design Flow]]&lt;br /&gt;
&lt;br /&gt;
The entry point of the reference HW /SW co-design flow is the System Behaviour Model (SBM), which is based on a CSP -like MoC and described using SystemC. It is enriched by timing constraints (TCs) and reference inputs (RI). The first step of the reference flow, performed using HEPSIM2, is the functional simulation. It allows checking the correctness of the SBM with respect to RI. In the following steps, the reference ESL HW /SW co-design flow is supported by a Technologies Library (TL), which can be considered as a database that provides a characterization of all HW technologies used to define the so-called Basic Blocks (BBs) to build the final system. The TL contains information about available General-Purpose Processors (GPPs), Application Specific Processors (ASPs), Single Purpose Processors (SPPs) [8], memory, and interconnects (i.e., physical links). The next step is co-analysis and co-estimation. During co-analysis, the SBM is analyzed to evaluate three metrics: affinity, communication, and concurrency. The first one represents how much a CSP process is suitable to be executed on a specific processor class (i.e., GPP, ASP, SPP) [5]. The second one is the evaluation of the number of bits that the various CSP process pairs exchanged over the corresponding CSP channels during simulation. The third refers to how many concurrencies have been found during the simulation in the activities of the CSP processes and CSP channels (it is evaluated using HEPSIM2 in a given configuration). Co-estimation is responsible for estimating timing, size, and load. Timing represents the time needed by each processor in the TL to execute an SBM statement. Size represents the number of bytes in RAM and ROM needed to store data and instructions for each CSP process implemented in SW. For the implementation of HW CSP processes, it is the number of mm2 (depending on the target HW technology, equivalent metrics such as Equivalent Gates, Look Up Table, etc. may be used) needed to implement processing, memory, and interconnect elements. Load represents the utilization percentage that each CSP process when implemented in SW, would impose on each GPP/ASP (used to define the BBs) to meet a timing constraint specified by the designer (i.e., it is actually a time to completion, TTC). After this step, the flow enters Design Space Exploration (DSE), which consists of 2 activities, &amp;quot;HW /SW Partitioning, Architecture Definition and Mapping&amp;quot; and &amp;quot;Timing HW /SW Co-simulation&amp;quot;. The first activity is responsible for defining the HW architecture of the target system and for HW /SW partitioning and mapping processes and channels to available processors and physical connections. This data is then provided to HEPSIM2 to verify that the proposed architecture or mapping meets the timing constraints. Data exchange between the different steps of the entire ESL HW /SW co-design flow is supported by appropriate XML files.&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
&lt;br /&gt;
The design activity in HEPSYCODE begins with a high-level abstraction modeling language (called HEPSYCODE Modeling Language, HML). The initial HML model is then transformed into an executable SystemC model based on the Communicating Sequential Processes (CSP) Model of Computation (MoC), first described by Hoare [9]. HEPSYCODE defines two system-level models, the SBM and the TL. The former is realized from the original HML. The latter contains all necessary and low-level hardware architectural details (e.g., PUs, MUs, CUs). Such models are supported by some C++ libraries that extend the standard SystemC library to implement CSP. The language of Communicating Sequential Processes (CSP) was developed for describing systems of interacting components and is supported by an underlying theory for reasoning about them.&lt;br /&gt;
CSP processes are modeled by using classic SC_THREAD while CSP channels have been modeled by introducing a proper sc_csp_channel as better described later. A “CSP SC_THREAD” presents an init section and an infinite loop behavior while accessing only its local variables and so communicating with other “CSP SC_THREAD” only by means of CSP channels. Finally, in a “CSP SC_THREAD”, only basic C/C++ statements and C++/SystemC data types are allowed while avoiding a full OOP approach since it could introduce critical issues for estimation and HW synthesis activities (in fact, the adopted restrictions have been inspired by [10]). Since the SBM is based on CSP, the SystemC library has been extended to properly model CSP channels with a sc_csp_channel class.&lt;br /&gt;
HEPSYCODE supports the UML/MARTE modeling language for system modeling. The integration of UML/MARTE allows the designer to use one of the most used languages in the embedded systems industry [17]. Moreover, MARTE is a standard UML profile to represent quantitative non-functional properties (e.g., time, performance). This variant of HEPSYCODE provides several steps of verification and validation (V&amp;amp;V) intending to discover eventual design flaws before the implementation. The novelty lies in the adoption of formal models to check the satisfiability of non-functional requirements and estimate system properties.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
HEPSYCODE has demonstrated interoperability with S3D in the ECSEL project MegaMart2. Interoperability with ESDE can be established using SystemC simulation tool (HEPSIM2). Since the modeling methodology of Papyrus4Robotics is based on MARTE, potential interoperability with this tool seems possible with the new HEPSYCODE extension. HEPSYCODE models can be adapted to another Model of Computation such as Data Flow (DF), allowing integration with UNISS MDC and UNIMORE OODK. Therefore, the interoperability graph for HEPSYCODE is the following:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-17_1_02.png|300px|thumb|frame|center| HEPSYCODE interoperability graph]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] “Xilinx Zynq SoC family”, http://www.xilinx.com&lt;br /&gt;
&lt;br /&gt;
[2] “Intel/Altera Cyclone V family”, http://www.intel.com&lt;br /&gt;
&lt;br /&gt;
[3] J. Teich. “Hardware/software co-design: The past, the present, and predicting the future”. Proceedings of the IEEE, 100 (Special Centennial Issue):1411-1430, May 2012.&lt;br /&gt;
&lt;br /&gt;
[4] L. Pomante. “System-level design space exploration for dedicated heterogeneous multi-processor systems”. IEEE Int. Conf. on Application-specific Systems, Architectures, and Processors, 2011.&lt;br /&gt;
&lt;br /&gt;
[5] L. Pomante, D. Sciuto, F. Salice, W. Fornaciari, C. Brandolese. “Affinity-Driven System Design Exploration for Heterogeneous Multiprocessor SoC”. IEEE Transactions on Computers, vol. 55, no. 5, May 2006.&lt;br /&gt;
&lt;br /&gt;
[6] “HEPSYCODE”, https://www.hepsycode.com/.&lt;br /&gt;
&lt;br /&gt;
[7] Pomante, L., Muttillo, V., Santic, M., Serri, P. “SystemC-based electronic system-level design space exploration environment for dedicated heterogeneous multi-processor systems”. Microprocessors and Microsystems, 72, 2020&lt;br /&gt;
&lt;br /&gt;
[8] Frank Vahid and Tony Givargis. 2001. “Embedded System Design: A Unified Hardware/Software Introduction”. John Wiley &amp;amp; Sons, Inc.&lt;br /&gt;
&lt;br /&gt;
[9] C. A. R. Hoare. 1978. “Communicating sequential processes”. Commun. ACM 21, 8 (Aug. 1978), 666–677.&lt;br /&gt;
&lt;br /&gt;
[10] “SystemC Synthesis Subset Language Reference Manual”, https://www.accellera.org/community/systemc&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=423</id>
		<title>WP6-17</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=423"/>
		<updated>2022-09-22T19:49:49Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HW/SW CO-DEsign of HEterogeneous Parallel dedicated Systems (HEPSYCODE)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSYCODE&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, SystemC code, UML/MARTE model&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Architectural solutions&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model.&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| HW/SW Partitioning, Mapping and Architecture Definition.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The increasing complexity of nowadays embedded digital systems, especially those based on advanced system-on-chip (SoC) that explicitly use heterogeneous parallel architectures (e.g., [1][2]) to meet demanding timing performance and power consumption requirements, and their shorter time-to-market are radically changing standard industrial design methodologies. Traditional design approaches based on the independent design of HW/SW components are no longer sufficient to efficiently exploit sub-areas of such SoCs. For this reason, system-level HW/SW co-design methods, where designers can early check system-level constraints and evaluate tradeoffs between cost and performance, are becoming increasingly important [3]. These methods are capable of guiding system-level activities using appropriate models, metrics, and tools, and assisting the designer in all those tasks normally entrusted only to his or her experience (e.g., HW / SW architecture definition and system-level HW /SW partitioning ). In this context, this repository presents a reference methodology for electronic system level (ESL) HW/SW co-design, called HEPSYCODE (e.g., [4][5][6][7]), targeting heterogeneous parallel embedded systems. It has been extended in C4D to meet mixed-criticality requirements and to be integrated into UML/MARTE specifications.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
Figure below shows the reference ESL HW/SW co-design flow while its main steps are briefly described below by giving emphasis (red elements in Figure below) to the interactions with the HEPSIM2 simulator/analysis tool. More details about the whole methodology can be found in [4][5][6][7].&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-17_1_01.png|600px|thumb|frame|center| Reference ESL HW/SW Co-Design Flow]]&lt;br /&gt;
&lt;br /&gt;
The entry point of the reference HW /SW co-design flow is the System Behaviour Model (SBM), which is based on a CSP -like MoC and described using SystemC. It is enriched by timing constraints (TCs) and reference inputs (RI). The first step of the reference flow, performed using HEPSIM2, is the functional simulation. It allows checking the correctness of the SBM with respect to RI. In the following steps, the reference ESL HW /SW co-design flow is supported by a Technologies Library (TL), which can be considered as a database that provides a characterization of all HW technologies used to define the so-called Basic Blocks (BBs) to build the final system. The TL contains information about available General-Purpose Processors (GPPs), Application Specific Processors (ASPs), Single Purpose Processors (SPPs) [8], memory, and interconnects (i.e., physical links). The next step is co-analysis and co-estimation. During co-analysis, the SBM is analyzed to evaluate three metrics: affinity, communication, and concurrency. The first one represents how much a CSP process is suitable to be executed on a specific processor class (i.e., GPP, ASP, SPP) [5]. The second one is the evaluation of the number of bits that the various CSP process pairs exchanged over the corresponding CSP channels during simulation. The third refers to how many concurrencies have been found during the simulation in the activities of the CSP processes and CSP channels (it is evaluated using HEPSIM2 in a given configuration). Co-estimation is responsible for estimating timing, size, and load. Timing represents the time needed by each processor in the TL to execute an SBM statement. Size represents the number of bytes in RAM and ROM needed to store data and instructions for each CSP process implemented in SW. For the implementation of HW CSP processes, it is the number of mm2 (depending on the target HW technology, equivalent metrics such as Equivalent Gates, Look Up Table, etc. may be used) needed to implement processing, memory, and interconnect elements. Load represents the utilization percentage that each CSP process when implemented in SW, would impose on each GPP/ASP (used to define the BBs) to meet a timing constraint specified by the designer (i.e., it is actually a time to completion, TTC). After this step, the flow enters Design Space Exploration (DSE), which consists of 2 activities, &amp;quot;HW /SW Partitioning, Architecture Definition and Mapping&amp;quot; and &amp;quot;Timing HW /SW Co-simulation&amp;quot;. The first activity is responsible for defining the HW architecture of the target system and for HW /SW partitioning and mapping processes and channels to available processors and physical connections. This data is then provided to HEPSIM2 to verify that the proposed architecture or mapping meets the timing constraints. Data exchange between the different steps of the entire ESL HW /SW co-design flow is supported by appropriate XML files.&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
&lt;br /&gt;
The design activity in HEPSYCODE begins with a high-level abstraction modeling language (called HEPSYCODE Modeling Language, HML). The initial HML model is then transformed into an executable SystemC model based on the Communicating Sequential Processes (CSP) Model of Computation (MoC), first described by Hoare [9]. HEPSYCODE defines two system-level models, the SBM and the TL. The former is realized from the original HML. The latter contains all necessary and low-level hardware architectural details (e.g., PUs, MUs, CUs). Such models are supported by some C++ libraries that extend the standard SystemC library to implement CSP. The language of Communicating Sequential Processes (CSP) was developed for describing systems of interacting components and is supported by an underlying theory for reasoning about them.&lt;br /&gt;
CSP processes are modeled by using classic SC_THREAD while CSP channels have been modeled by introducing a proper sc_csp_channel as better described later. A “CSP SC_THREAD” presents an init section and an infinite loop behavior while accessing only its local variables and so communicating with other “CSP SC_THREAD” only by means of CSP channels. Finally, in a “CSP SC_THREAD”, only basic C/C++ statements and C++/SystemC data types are allowed while avoiding a full OOP approach since it could introduce critical issues for estimation and HW synthesis activities (in fact, the adopted restrictions have been inspired by [10]). Since the SBM is based on CSP, the SystemC library has been extended to properly model CSP channels with a sc_csp_channel class.&lt;br /&gt;
HEPSYCODE supports the UML/MARTE modeling language for system modeling. The integration of UML/MARTE allows the designer to use one of the most used languages in the embedded systems industry [17]. Moreover, MARTE is a standard UML profile to represent quantitative non-functional properties (e.g., time, performance). This variant of HEPSYCODE provides several steps of verification and validation (V&amp;amp;V) intending to discover eventual design flaws before the implementation. The novelty lies in the adoption of formal models to check the satisfiability of non-functional requirements and estimate system properties.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
HEPSYCODE has demonstrated interoperability with S3D in the ECSEL project MegaMart2. Interoperability with ESDE can be established using SystemC simulation tool (HEPSIM2). Since the modeling methodology of Papyrus4Robotics is based on MARTE, potential interoperability with this tool seems possible with the new HEPSYCODE extension. HEPSYCODE models can be adapted to another Model of Computation such as Data Flow (DF), allowing integration with UNISS MDC and UNIMORE OODK. Therefore, the interoperability graph for HEPSYCODE is the following:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-17_1_02.png|300px|thumb|frame|center| HEPSYCODE interoperability graph]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] “Xilinx Zynq SoC family”, http://www.xilinx.com&lt;br /&gt;
&lt;br /&gt;
[2] “Intel/Altera Cyclone V family”, http://www.intel.com&lt;br /&gt;
&lt;br /&gt;
[3] J. Teich. “Hardware/software co-design: The past, the present, and predicting the future”. Proceedings of the IEEE, 100 (Special Centennial Issue):1411-1430, May 2012.&lt;br /&gt;
&lt;br /&gt;
[4] L. Pomante. “System-level design space exploration for dedicated heterogeneous multi-processor systems”. IEEE Int. Conf. on Application-specific Systems, Architectures, and Processors, 2011.&lt;br /&gt;
&lt;br /&gt;
[5] L. Pomante, D. Sciuto, F. Salice, W. Fornaciari, C. Brandolese. “Affinity-Driven System Design Exploration for Heterogeneous Multiprocessor SoC”. IEEE Transactions on Computers, vol. 55, no. 5, May 2006.&lt;br /&gt;
&lt;br /&gt;
[6] “HEPSYCODE”, https://www.hepsycode.com/.&lt;br /&gt;
&lt;br /&gt;
[7] Pomante, L., Muttillo, V., Santic, M., Serri, P. “SystemC-based electronic system-level design space exploration environment for dedicated heterogeneous multi-processor systems”. Microprocessors and Microsystems, 72, 2020&lt;br /&gt;
&lt;br /&gt;
[8] Frank Vahid and Tony Givargis. 2001. “Embedded System Design: A Unified Hardware/Software Introduction”. John Wiley &amp;amp; Sons, Inc.&lt;br /&gt;
&lt;br /&gt;
[9] C. A. R. Hoare. 1978. “Communicating sequential processes”. Commun. ACM 21, 8 (Aug. 1978), 666–677.&lt;br /&gt;
&lt;br /&gt;
[10] “SystemC Synthesis Subset Language Reference Manual”, https://www.accellera.org/community/systemc&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-34&amp;diff=422</id>
		<title>WP6-34</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-34&amp;diff=422"/>
		<updated>2022-09-22T19:44:27Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HEPSYCODE SystemC SIMulator Version 2.0 (HEPSIM2)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSIM2&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| TODO.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
HEPSIM2 (i.e., HEPSYCODE Simulator 2) is a SystemC-based tool for functional and timing HW/SW co-simulation/analysis at the system-level, integrated into a reference Electronic System-Level (ESL) HW/SW co-design methodology, called HEPSYCODE ([1][2][3][4]), targeting heterogeneous parallel embedded systems. The following text describes the main features of the tool by mainly focusing on the improvements and extensions done in C4D with respect to a previous version [41].&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
HEPSIM2 is based on SystemC, and the HEPSIM2 System Behaviour Model (SBM, i.e., the application model, see the previous section about HEPSYCODE) is based on the CSP (Communicating Sequential Processes) Model of Computation (MoC) [5]. HEPSIM2 really works at ESL, i.e., at an abstraction layer similar to TLM but mainly considering only the behavioural view of the system. In fact, it allows considering the effects that the mapping on the HW platform would have on the system behaviour without the need to develop a corresponding TLM structural model. This is obtained by exploiting an approach inspired by the native simulation one [7] but combined with offline statement-level timing estimations [6] to avoid the need for binary code analysis. This feature allows a faster what-if analysis since it doesn’t require ISS or HDL integration into virtual platforms. The main drawback is the possible reduced accuracy in the timing performance estimation with respect to TLM analysis, but the proposed approach can be used to reduce the design space early and quickly by selecting the most promising “configurations” that can be then transformed into TLM (or RTL) models for more accurate analysis by means of specific tools. Moreover, other than performing functional and HW/SW timing co-simulations, HEPSIM2 is able to perform also co-analysis and co-estimations. In fact, it is able to provide information about communication and potential concurrency (both for processes and channels) in the CSP model. Moreover, it is able to perform the estimation of the loads that CSP-processes execution (and the bandwidth that CSP-channels communications) would impose, respectively, to processors and physical links, in order to satisfy imposed timing constraints. Such information, as described below, allows the reference ESL HW/SW co-design flow to exploit in a more effective way the targeted heterogeneous parallel embedded architecture. Finally, HEPSIM2 is strictly integrated into the HEPSYCODE ESL HW/SW co-design methodology ([1][2][3][4]) but it can be used also as a stand-alone tool relying on an HW architecture directly provided by the designer (i.e., manual DSE).&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
Some key aspects of the HEPSIM2 for analysis improvement are:&lt;br /&gt;
&lt;br /&gt;
* HEPSIM2 simulation time is no more dependent on the time granularity related to the events generated by the environment. This feature has been obtained by re-designing the second-level schedulers used to model scheduling activities on GPP/ASP in order to reduce the overhead associated with the scheduling management and preserve usability and scalability.&lt;br /&gt;
* The improved second-level scheduler design provides better usability and scalability from two main points of view:&lt;br /&gt;
*# The first is related to the scalability of the time intervals among different inputs from STIMULUS. With the old HEPSIM, a time interval of 1000 ms would be completely unfeasible due to the duration of the simulation. So, it is possible to state that, on average, simulation time has been reduced by an amount greater than 15%.&lt;br /&gt;
*# The second analysis is related to the scalability with respect to the number of CSP processes and CSP channels in the SBM, and processors and schedulers in the HW/SW architecture. The strategy has been to create even more complex SBMs (by replicating several times a basic one) and simulating them by considering several architecture/mapping items built to mix GPP/ASP and SP.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
HEPSIM2, the SystemC simulator used in HEPSICODE, has demonstrated interoperability with S3D in the ECSEL project MegaMart2. Interoperability with ESDE can be established with SystemC. HEPSIM2 simulations can be adapted to another Model of Computation such as Data Flow (DF), allowing integration with UNISS MDC and UNIMORE OODK. Therefore, the interoperability graph for HEPSIM2 is as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-34_1_01.png|300px|thumb|frame|center| HEPSIM2 interoperability graph]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] L. Pomante. “System-level design space exploration for dedicated heterogeneous multi-processor systems”. IEEE Int. Conf. on Application-specific Systems, Architectures and Processors, 2011.&lt;br /&gt;
&lt;br /&gt;
[2] L. Pomante, D. Sciuto, F. Salice, W. Fornaciari, C. Brandolese. “Affinity-Driven System Design Exploration for Heterogeneous Multiprocessor SoC”. IEEE Transactions on Computers, vol. 55, no. 5, May 2006.&lt;br /&gt;
&lt;br /&gt;
[3] “HEPSYCODE”, https://www.hepsycode.com/.&lt;br /&gt;
&lt;br /&gt;
[4] Pomante, L., Muttillo, V., Santic, M., Serri, P. “SystemC-based electronic system-level design space exploration environment for dedicated heterogeneous multi-processor systems”. Microprocessors and Microsystems, 72, 2020&lt;br /&gt;
&lt;br /&gt;
[5] Hoare C.A.R. (1978) “Communicating Sequential Processes”. In: Hansen P.B. (eds) The Origin of Concurrent Programming. Springer, New York, NY&lt;br /&gt;
&lt;br /&gt;
[6] V. Muttillo, G. Valente, L. Pomante, V. Stoico, F. D’Antonio, and F. Salice, “CC4CS: an Off-the-Shelf Unifying Statement-Level Performance Metric for HW/SW Technologies”, In Companion of the 2018 ACM/SPEC Int. Conf. on Performance Engineering (ICPE '18)&lt;br /&gt;
&lt;br /&gt;
[7] L. Diaz, E. Gonzalez, E. Villar and P. Sanchez, &amp;quot;VIPPE, parallel simulation and performance analysis of multi-core embedded systems on multi-core platforms,&amp;quot; Design of Circuits and Integrated Systems, Madrid, 2014, pp. 1-7&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-34&amp;diff=421</id>
		<title>WP6-34</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-34&amp;diff=421"/>
		<updated>2022-09-22T19:43:43Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HEPSYCODE SystemC SIMulator Version 2.0 (HEPSIM2)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSIM2&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| TODO.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
HEPSIM2 (i.e., HEPSYCODE Simulator 2) is a SystemC-based tool for functional and timing HW/SW co-simulation/analysis at the system-level, integrated into a reference Electronic System-Level (ESL) HW/SW co-design methodology, called HEPSYCODE ([1][2][3][4]), targeting heterogeneous parallel embedded systems. The following text describes the main features of the tool by mainly focusing on the improvements and extensions done in C4D with respect to a previous version [41].&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
HEPSIM2 is based on SystemC, and the HEPSIM2 System Behaviour Model (SBM, i.e., the application model, see the previous section about HEPSYCODE) is based on the CSP (Communicating Sequential Processes) Model of Computation (MoC) [5]. HEPSIM2 really works at ESL, i.e., at an abstraction layer similar to TLM but mainly considering only the behavioural view of the system. In fact, it allows considering the effects that the mapping on the HW platform would have on the system behaviour without the need to develop a corresponding TLM structural model. This is obtained by exploiting an approach inspired by the native simulation one [7] but combined with offline statement-level timing estimations [6] to avoid the need for binary code analysis. This feature allows a faster what-if analysis since it doesn’t require ISS or HDL integration into virtual platforms. The main drawback is the possible reduced accuracy in the timing performance estimation with respect to TLM analysis, but the proposed approach can be used to reduce the design space early and quickly by selecting the most promising “configurations” that can be then transformed into TLM (or RTL) models for more accurate analysis by means of specific tools. Moreover, other than performing functional and HW/SW timing co-simulations, HEPSIM2 is able to perform also co-analysis and co-estimations. In fact, it is able to provide information about communication and potential concurrency (both for processes and channels) in the CSP model. Moreover, it is able to perform the estimation of the loads that CSP-processes execution (and the bandwidth that CSP-channels communications) would impose, respectively, to processors and physical links, in order to satisfy imposed timing constraints. Such information, as described below, allows the reference ESL HW/SW co-design flow to exploit in a more effective way the targeted heterogeneous parallel embedded architecture. Finally, HEPSIM2 is strictly integrated into the HEPSYCODE ESL HW/SW co-design methodology ([1][2][3][4]) but it can be used also as a stand-alone tool relying on an HW architecture directly provided by the designer (i.e., manual DSE).&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
Some key aspects of the HEPSIM2 for analysis improvement are:&lt;br /&gt;
&lt;br /&gt;
* HEPSIM2 simulation time is no more dependent on the time granularity related to the events generated by the environment. This feature has been obtained by re-designing the second-level schedulers used to model scheduling activities on GPP/ASP in order to reduce the overhead associated with the scheduling management and preserve usability and scalability.&lt;br /&gt;
* The improved second-level scheduler design provides better usability and scalability from two main points of view:&lt;br /&gt;
*# The first is related to the scalability of the time intervals among different inputs from STIMULUS. With the old HEPSIM, a time interval of 1000 ms would be completely unfeasible due to the duration of the simulation. So, it is possible to state that, on average, simulation time has been reduced by an amount greater than 15%.&lt;br /&gt;
*# The second analysis is related to the scalability with respect to the number of CSP processes and CSP channels in the SBM, and processors and schedulers in the HW/SW architecture. The strategy has been to create even more complex SBMs (by replicating several times a basic one) and simulating them by considering several architecture/mapping items built to mix GPP/ASP and SP.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
HEPSIM2, the SystemC simulator used in HEPSICODE, has demonstrated interoperability with S3D in the ECSEL project MegaMart2. Interoperability with ESDE can be established with SystemC. HEPSIM2 simulations can be adapted to another Model of Computation such as Data Flow (DF), allowing integration with UNISS MDC and UNIMORE OODK. Therefore, the interoperability graph for HEPSIM2 is as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-34_1_01.png|300px|thumb|frame|center| HEPSIM2 interoperability graph]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] L. Pomante. “System-level design space exploration for dedicated heterogeneous multi-processor systems”. IEEE Int. Conf. on Application-specific Systems, Architectures and Processors, 2011.&lt;br /&gt;
&lt;br /&gt;
[2] L. Pomante, D. Sciuto, F. Salice, W. Fornaciari, C. Brandolese. Affinity-Driven System Design Exploration for Heterogeneous Multiprocessor SoC. IEEE Transactions on Computers, vol. 55, no. 5, May 2006.&lt;br /&gt;
&lt;br /&gt;
[3] HEPSYCODE, https://www.hepsycode.com/.&lt;br /&gt;
&lt;br /&gt;
[4] Pomante, L., Muttillo, V., Santic, M., Serri, P. SystemC-based electronic system-level design space exploration environment for dedicated heterogeneous multi-processor systems. Microprocessors and Microsystems, 72, 2020&lt;br /&gt;
&lt;br /&gt;
[5] Hoare C.A.R. (1978) Communicating Sequential Processes. In: Hansen P.B. (eds) The Origin of Concurrent Programming. Springer, New York, NY&lt;br /&gt;
&lt;br /&gt;
[6] V. Muttillo, G. Valente, L. Pomante, V. Stoico, F. D’Antonio, and F. Salice, “CC4CS: an Off-the-Shelf Unifying Statement-Level Performance Metric for HW/SW Technologies”, In Companion of the 2018 ACM/SPEC Int. Conf. on Performance Engineering (ICPE '18)&lt;br /&gt;
&lt;br /&gt;
[7] L. Diaz, E. Gonzalez, E. Villar and P. Sanchez, &amp;quot;VIPPE, parallel simulation and performance analysis of multi-core embedded systems on multi-core platforms,&amp;quot; Design of Circuits and Integrated Systems, Madrid, 2014, pp. 1-7&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-34&amp;diff=420</id>
		<title>WP6-34</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-34&amp;diff=420"/>
		<updated>2022-09-22T19:43:21Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HEPSYCODE SystemC SIMulator Version 2.0 (HEPSIM2)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSIM2&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| TODO.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
HEPSIM2 (i.e., HEPSYCODE Simulator 2) is a SystemC-based tool for functional and timing HW/SW co-simulation/analysis at the system-level, integrated into a reference Electronic System-Level (ESL) HW/SW co-design methodology, called HEPSYCODE ([1][2][3][4]), targeting heterogeneous parallel embedded systems. The following text describes the main features of the tool by mainly focusing on the improvements and extensions done in C4D with respect to a previous version [41].&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
HEPSIM2 is based on SystemC, and the HEPSIM2 System Behaviour Model (SBM, i.e., the application model, see the previous section about HEPSYCODE) is based on the CSP (Communicating Sequential Processes) Model of Computation (MoC) [5]. HEPSIM2 really works at ESL, i.e., at an abstraction layer similar to TLM but mainly considering only the behavioural view of the system. In fact, it allows considering the effects that the mapping on the HW platform would have on the system behaviour without the need to develop a corresponding TLM structural model. This is obtained by exploiting an approach inspired by the native simulation one [7] but combined with offline statement-level timing estimations [6] to avoid the need for binary code analysis. This feature allows a faster what-if analysis since it doesn’t require ISS or HDL integration into virtual platforms. The main drawback is the possible reduced accuracy in the timing performance estimation with respect to TLM analysis, but the proposed approach can be used to reduce the design space early and quickly by selecting the most promising “configurations” that can be then transformed into TLM (or RTL) models for more accurate analysis by means of specific tools. Moreover, other than performing functional and HW/SW timing co-simulations, HEPSIM2 is able to perform also co-analysis and co-estimations. In fact, it is able to provide information about communication and potential concurrency (both for processes and channels) in the CSP model. Moreover, it is able to perform the estimation of the loads that CSP-processes execution (and the bandwidth that CSP-channels communications) would impose, respectively, to processors and physical links, in order to satisfy imposed timing constraints. Such information, as described below, allows the reference ESL HW/SW co-design flow to exploit in a more effective way the targeted heterogeneous parallel embedded architecture. Finally, HEPSIM2 is strictly integrated into the HEPSYCODE ESL HW/SW co-design methodology ([1][2][3][4]) but it can be used also as a stand-alone tool relying on an HW architecture directly provided by the designer (i.e., manual DSE).&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
Some key aspects of the HEPSIM2 for analysis improvement are:&lt;br /&gt;
&lt;br /&gt;
* HEPSIM2 simulation time is no more dependent on the time granularity related to the events generated by the environment. This feature has been obtained by re-designing the second-level schedulers used to model scheduling activities on GPP/ASP in order to reduce the overhead associated with the scheduling management and preserve usability and scalability.&lt;br /&gt;
* The improved second-level scheduler design provides better usability and scalability from two main points of view:&lt;br /&gt;
*# The first is related to the scalability of the time intervals among different inputs from STIMULUS. With the old HEPSIM, a time interval of 1000 ms would be completely unfeasible due to the duration of the simulation. So, it is possible to state that, on average, simulation time has been reduced by an amount greater than 15%.&lt;br /&gt;
*# The second analysis is related to the scalability with respect to the number of CSP processes and CSP channels in the SBM, and processors and schedulers in the HW/SW architecture. The strategy has been to create even more complex SBMs (by replicating several times a basic one) and simulating them by considering several architecture/mapping items built to mix GPP/ASP and SP.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
HEPSIM2, the SystemC simulator used in HEPSICODE, has demonstrated interoperability with S3D in the ECSEL project MegaMart2. Interoperability with ESDE can be established with SystemC. HEPSIM2 simulations can be adapted to another Model of Computation such as Data Flow (DF), allowing integration with UNISS MDC and UNIMORE OODK. Therefore, the interoperability graph for HEPSIM2 is as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-34_1_01.png|300px|thumb|frame|center| HEPSIM2 interoperability graph]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] L. Pomante. “System-level design space exploration for dedicated heterogeneous multi-processor systems”. IEEE Int. Conf. on Application-specific Systems, Architectures and Processors, 2011.&lt;br /&gt;
&lt;br /&gt;
[2] L. Pomante, D. Sciuto, F. Salice, W. Fornaciari, C. Brandolese. Affinity-Driven System Design Exploration for Heterogeneous Multiprocessor SoC. IEEE Transactions on Computers, vol. 55, no. 5, May 2006.&lt;br /&gt;
&lt;br /&gt;
[3] HEPSYCODE, https://www.hespsycode.com.&lt;br /&gt;
&lt;br /&gt;
[4] Pomante, L., Muttillo, V., Santic, M., Serri, P. SystemC-based electronic system-level design space exploration environment for dedicated heterogeneous multi-processor systems. Microprocessors and Microsystems, 72, 2020&lt;br /&gt;
&lt;br /&gt;
[5] Hoare C.A.R. (1978) Communicating Sequential Processes. In: Hansen P.B. (eds) The Origin of Concurrent Programming. Springer, New York, NY&lt;br /&gt;
&lt;br /&gt;
[6] V. Muttillo, G. Valente, L. Pomante, V. Stoico, F. D’Antonio, and F. Salice, “CC4CS: an Off-the-Shelf Unifying Statement-Level Performance Metric for HW/SW Technologies”, In Companion of the 2018 ACM/SPEC Int. Conf. on Performance Engineering (ICPE '18)&lt;br /&gt;
&lt;br /&gt;
[7] L. Diaz, E. Gonzalez, E. Villar and P. Sanchez, &amp;quot;VIPPE, parallel simulation and performance analysis of multi-core embedded systems on multi-core platforms,&amp;quot; Design of Circuits and Integrated Systems, Madrid, 2014, pp. 1-7&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-34&amp;diff=419</id>
		<title>WP6-34</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-34&amp;diff=419"/>
		<updated>2022-09-22T19:40:38Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HEPSYCODE SystemC SIMulator Version 2.0 (HEPSIM2)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSIM2&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| TODO.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
HEPSIM2 (i.e., HEPSYCODE Simulator 2) is a SystemC-based tool for functional and timing HW/SW co-simulation/analysis at the system-level, integrated into a reference Electronic System-Level (ESL) HW/SW co-design methodology, called HEPSYCODE ([35][36][37][38]), targeting heterogeneous parallel embedded systems. The following text describes the main features of the tool by mainly focusing on the improvements and extensions done in C4D with respect to a previous version [41].&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
HEPSIM2 is based on SystemC, and the HEPSIM2 System Behaviour Model (SBM, i.e., the application model, see the previous section about HEPSYCODE) is based on the CSP (Communicating Sequential Processes) Model of Computation (MoC) [39][43]. HEPSIM2 really works at ESL, i.e., at an abstraction layer similar to TLM but mainly considering only the behavioural view of the system. In fact, it allows considering the effects that the mapping on the HW platform would have on the system behaviour without the need to develop a corresponding TLM structural model. This is obtained by exploiting an approach inspired by the native simulation one [44] but combined with offline statement-level timing estimations [42] to avoid the need for binary code analysis. This feature allows a faster what-if analysis since it doesn’t require ISS or HDL integration into virtual platforms. The main drawback is the possible reduced accuracy in the timing performance estimation with respect to TLM analysis, but the proposed approach can be used to reduce the design space early and quickly by selecting the most promising “configurations” that can be then transformed into TLM (or RTL) models for more accurate analysis by means of specific tools. Moreover, other than performing functional and HW/SW timing co-simulations, HEPSIM2 is able to perform also co-analysis and co-estimations. In fact, it is able to provide information about communication and potential concurrency (both for processes and channels) in the CSP model. Moreover, it is able to perform the estimation of the loads that CSP-processes execution (and the bandwidth that CSP-channels communications) would impose, respectively, to processors and physical links, in order to satisfy imposed timing constraints. Such information, as described below, allows the reference ESL HW/SW co-design flow to exploit in a more effective way the targeted heterogeneous parallel embedded architecture. Finally, HEPSIM2 is strictly integrated into the HEPSYCODE ESL HW/SW co-design methodology ([35][36][37][38]) but it can be used also as a stand-alone tool relying on an HW architecture directly provided by the designer (i.e., manual DSE).&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
Some key aspects of the HEPSIM2 for analysis improvement are:&lt;br /&gt;
&lt;br /&gt;
* HEPSIM2 simulation time is no more dependent on the time granularity related to the events generated by the environment. This feature has been obtained by re-designing the second-level schedulers used to model scheduling activities on GPP/ASP in order to reduce the overhead associated with the scheduling management and preserve usability and scalability.&lt;br /&gt;
* The improved second-level scheduler design provides better usability and scalability from two main points of view:&lt;br /&gt;
*# The first is related to the scalability of the time intervals among different inputs from STIMULUS. With the old HEPSIM, a time interval of 1000 ms would be completely unfeasible due to the duration of the simulation. So, it is possible to state that, on average, simulation time has been reduced by an amount greater than 15%.&lt;br /&gt;
*# The second analysis is related to the scalability with respect to the number of CSP processes and CSP channels in the SBM, and processors and schedulers in the HW/SW architecture. The strategy has been to create even more complex SBMs (by replicating several times a basic one) and simulating them by considering several architecture/mapping items built to mix GPP/ASP and SP.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
HEPSIM2, the SystemC simulator used in HEPSICODE, has demonstrated interoperability with S3D in the ECSEL project MegaMart2. Interoperability with ESDE can be established with SystemC. HEPSIM2 simulations can be adapted to another Model of Computation such as Data Flow (DF), allowing integration with UNISS MDC and UNIMORE OODK. Therefore, the interoperability graph for HEPSIM2 is as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-34_1_01.png|300px|thumb|frame|center| HEPSIM2 interoperability graph]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-34&amp;diff=418</id>
		<title>WP6-34</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-34&amp;diff=418"/>
		<updated>2022-09-22T19:40:24Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HEPSYCODE SystemC SIMulator Version 2.0 (HEPSIM2)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSIM2&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| TODO.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
HEPSIM2 (i.e., HEPSYCODE Simulator 2) is a SystemC-based tool for functional and timing HW/SW co-simulation/analysis at the system-level, integrated into a reference Electronic System-Level (ESL) HW/SW co-design methodology, called HEPSYCODE ([35][36][37][38]), targeting heterogeneous parallel embedded systems. The following text describes the main features of the tool by mainly focusing on the improvements and extensions done in C4D with respect to a previous version [41].&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
HEPSIM2 is based on SystemC, and the HEPSIM2 System Behaviour Model (SBM, i.e., the application model, see the previous section about HEPSYCODE) is based on the CSP (Communicating Sequential Processes) Model of Computation (MoC) [39][43]. HEPSIM2 really works at ESL, i.e., at an abstraction layer similar to TLM but mainly considering only the behavioural view of the system. In fact, it allows considering the effects that the mapping on the HW platform would have on the system behaviour without the need to develop a corresponding TLM structural model. This is obtained by exploiting an approach inspired by the native simulation one [44] but combined with offline statement-level timing estimations [42] to avoid the need for binary code analysis. This feature allows a faster what-if analysis since it doesn’t require ISS or HDL integration into virtual platforms. The main drawback is the possible reduced accuracy in the timing performance estimation with respect to TLM analysis, but the proposed approach can be used to reduce the design space early and quickly by selecting the most promising “configurations” that can be then transformed into TLM (or RTL) models for more accurate analysis by means of specific tools. Moreover, other than performing functional and HW/SW timing co-simulations, HEPSIM2 is able to perform also co-analysis and co-estimations. In fact, it is able to provide information about communication and potential concurrency (both for processes and channels) in the CSP model. Moreover, it is able to perform the estimation of the loads that CSP-processes execution (and the bandwidth that CSP-channels communications) would impose, respectively, to processors and physical links, in order to satisfy imposed timing constraints. Such information, as described below, allows the reference ESL HW/SW co-design flow to exploit in a more effective way the targeted heterogeneous parallel embedded architecture. Finally, HEPSIM2 is strictly integrated into the HEPSYCODE ESL HW/SW co-design methodology ([35][36][37][38]) but it can be used also as a stand-alone tool relying on an HW architecture directly provided by the designer (i.e., manual DSE).&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
Some key aspects of the HEPSIM2 for analysis improvement are:&lt;br /&gt;
&lt;br /&gt;
* HEPSIM2 simulation time is no more dependent on the time granularity related to the events generated by the environment. This feature has been obtained by re-designing the second-level schedulers used to model scheduling activities on GPP/ASP in order to reduce the overhead associated with the scheduling management and preserve usability and scalability.&lt;br /&gt;
* The improved second-level scheduler design provides better usability and scalability from two main points of view.&lt;br /&gt;
*# The first is related to the scalability of the time intervals among different inputs from STIMULUS. With the old HEPSIM, a time interval of 1000 ms would be completely unfeasible due to the duration of the simulation. So, it is possible to state that, on average, simulation time has been reduced by an amount greater than 15%.&lt;br /&gt;
*# The second analysis is related to the scalability with respect to the number of CSP processes and CSP channels in the SBM, and processors and schedulers in the HW/SW architecture. The strategy has been to create even more complex SBMs (by replicating several times a basic one) and simulating them by considering several architecture/mapping items built to mix GPP/ASP and SP.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
HEPSIM2, the SystemC simulator used in HEPSICODE, has demonstrated interoperability with S3D in the ECSEL project MegaMart2. Interoperability with ESDE can be established with SystemC. HEPSIM2 simulations can be adapted to another Model of Computation such as Data Flow (DF), allowing integration with UNISS MDC and UNIMORE OODK. Therefore, the interoperability graph for HEPSIM2 is as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-34_1_01.png|300px|thumb|frame|center| HEPSIM2 interoperability graph]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-34&amp;diff=417</id>
		<title>WP6-34</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-34&amp;diff=417"/>
		<updated>2022-09-22T19:40:13Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HEPSYCODE SystemC SIMulator Version 2.0 (HEPSIM2)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSIM2&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| TODO.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
HEPSIM2 (i.e., HEPSYCODE Simulator 2) is a SystemC-based tool for functional and timing HW/SW co-simulation/analysis at the system-level, integrated into a reference Electronic System-Level (ESL) HW/SW co-design methodology, called HEPSYCODE ([35][36][37][38]), targeting heterogeneous parallel embedded systems. The following text describes the main features of the tool by mainly focusing on the improvements and extensions done in C4D with respect to a previous version [41].&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
HEPSIM2 is based on SystemC, and the HEPSIM2 System Behaviour Model (SBM, i.e., the application model, see the previous section about HEPSYCODE) is based on the CSP (Communicating Sequential Processes) Model of Computation (MoC) [39][43]. HEPSIM2 really works at ESL, i.e., at an abstraction layer similar to TLM but mainly considering only the behavioural view of the system. In fact, it allows considering the effects that the mapping on the HW platform would have on the system behaviour without the need to develop a corresponding TLM structural model. This is obtained by exploiting an approach inspired by the native simulation one [44] but combined with offline statement-level timing estimations [42] to avoid the need for binary code analysis. This feature allows a faster what-if analysis since it doesn’t require ISS or HDL integration into virtual platforms. The main drawback is the possible reduced accuracy in the timing performance estimation with respect to TLM analysis, but the proposed approach can be used to reduce the design space early and quickly by selecting the most promising “configurations” that can be then transformed into TLM (or RTL) models for more accurate analysis by means of specific tools. Moreover, other than performing functional and HW/SW timing co-simulations, HEPSIM2 is able to perform also co-analysis and co-estimations. In fact, it is able to provide information about communication and potential concurrency (both for processes and channels) in the CSP model. Moreover, it is able to perform the estimation of the loads that CSP-processes execution (and the bandwidth that CSP-channels communications) would impose, respectively, to processors and physical links, in order to satisfy imposed timing constraints. Such information, as described below, allows the reference ESL HW/SW co-design flow to exploit in a more effective way the targeted heterogeneous parallel embedded architecture. Finally, HEPSIM2 is strictly integrated into the HEPSYCODE ESL HW/SW co-design methodology ([35][36][37][38]) but it can be used also as a stand-alone tool relying on an HW architecture directly provided by the designer (i.e., manual DSE).&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
Some key aspects of the HEPSIM2 for analysis improvement are:&lt;br /&gt;
&lt;br /&gt;
* HEPSIM2 simulation time is no more dependent on the time granularity related to the events generated by the environment. This feature has been obtained by re-designing the second-level schedulers used to model scheduling activities on GPP/ASP in order to reduce the overhead associated with the scheduling management and preserve usability and scalability.&lt;br /&gt;
* The improved second-level scheduler design provides better usability and scalability from two main points of view.&lt;br /&gt;
## The first is related to the scalability of the time intervals among different inputs from STIMULUS. With the old HEPSIM, a time interval of 1000 ms would be completely unfeasible due to the duration of the simulation. So, it is possible to state that, on average, simulation time has been reduced by an amount greater than 15%.&lt;br /&gt;
## The second analysis is related to the scalability with respect to the number of CSP processes and CSP channels in the SBM, and processors and schedulers in the HW/SW architecture. The strategy has been to create even more complex SBMs (by replicating several times a basic one) and simulating them by considering several architecture/mapping items built to mix GPP/ASP and SP.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
HEPSIM2, the SystemC simulator used in HEPSICODE, has demonstrated interoperability with S3D in the ECSEL project MegaMart2. Interoperability with ESDE can be established with SystemC. HEPSIM2 simulations can be adapted to another Model of Computation such as Data Flow (DF), allowing integration with UNISS MDC and UNIMORE OODK. Therefore, the interoperability graph for HEPSIM2 is as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-34_1_01.png|300px|thumb|frame|center| HEPSIM2 interoperability graph]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-34&amp;diff=416</id>
		<title>WP6-34</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-34&amp;diff=416"/>
		<updated>2022-09-22T19:39:41Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HEPSYCODE SystemC SIMulator Version 2.0 (HEPSIM2)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSIM2&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| TODO.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
HEPSIM2 (i.e., HEPSYCODE Simulator 2) is a SystemC-based tool for functional and timing HW/SW co-simulation/analysis at the system-level, integrated into a reference Electronic System-Level (ESL) HW/SW co-design methodology, called HEPSYCODE ([35][36][37][38]), targeting heterogeneous parallel embedded systems. The following text describes the main features of the tool by mainly focusing on the improvements and extensions done in C4D with respect to a previous version [41].&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
HEPSIM2 is based on SystemC, and the HEPSIM2 System Behaviour Model (SBM, i.e., the application model, see the previous section about HEPSYCODE) is based on the CSP (Communicating Sequential Processes) Model of Computation (MoC) [39][43]. HEPSIM2 really works at ESL, i.e., at an abstraction layer similar to TLM but mainly considering only the behavioural view of the system. In fact, it allows considering the effects that the mapping on the HW platform would have on the system behaviour without the need to develop a corresponding TLM structural model. This is obtained by exploiting an approach inspired by the native simulation one [44] but combined with offline statement-level timing estimations [42] to avoid the need for binary code analysis. This feature allows a faster what-if analysis since it doesn’t require ISS or HDL integration into virtual platforms. The main drawback is the possible reduced accuracy in the timing performance estimation with respect to TLM analysis, but the proposed approach can be used to reduce the design space early and quickly by selecting the most promising “configurations” that can be then transformed into TLM (or RTL) models for more accurate analysis by means of specific tools. Moreover, other than performing functional and HW/SW timing co-simulations, HEPSIM2 is able to perform also co-analysis and co-estimations. In fact, it is able to provide information about communication and potential concurrency (both for processes and channels) in the CSP model. Moreover, it is able to perform the estimation of the loads that CSP-processes execution (and the bandwidth that CSP-channels communications) would impose, respectively, to processors and physical links, in order to satisfy imposed timing constraints. Such information, as described below, allows the reference ESL HW/SW co-design flow to exploit in a more effective way the targeted heterogeneous parallel embedded architecture. Finally, HEPSIM2 is strictly integrated into the HEPSYCODE ESL HW/SW co-design methodology ([35][36][37][38]) but it can be used also as a stand-alone tool relying on an HW architecture directly provided by the designer (i.e., manual DSE).&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
Some key aspects of the HEPSIM2 for analysis improvement are:&lt;br /&gt;
&lt;br /&gt;
* HEPSIM2 simulation time is no more dependent on the time granularity related to the events generated by the environment. This feature has been obtained by re-designing the second-level schedulers used to model scheduling activities on GPP/ASP in order to reduce the overhead associated with the scheduling management and preserve usability and scalability.&lt;br /&gt;
* The improved second-level scheduler design provides better usability and scalability from two main points of view.&lt;br /&gt;
** The first is related to the scalability of the time intervals among different inputs from STIMULUS. With the old HEPSIM, a time interval of 1000 ms would be completely unfeasible due to the duration of the simulation. So, it is possible to state that, on average, simulation time has been reduced by an amount greater than 15%.&lt;br /&gt;
** The second analysis is related to the scalability with respect to the number of CSP processes and CSP channels in the SBM, and processors and schedulers in the HW/SW architecture. The strategy has been to create even more complex SBMs (by replicating several times a basic one) and simulating them by considering several architecture/mapping items built to mix GPP/ASP and SP.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
HEPSIM2, the SystemC simulator used in HEPSICODE, has demonstrated interoperability with S3D in the ECSEL project MegaMart2. Interoperability with ESDE can be established with SystemC. HEPSIM2 simulations can be adapted to another Model of Computation such as Data Flow (DF), allowing integration with UNISS MDC and UNIMORE OODK. Therefore, the interoperability graph for HEPSIM2 is as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-34_1_01.png|300px|thumb|frame|center| HEPSIM2 interoperability graph]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=File:Wp6-34_1_01.png&amp;diff=415</id>
		<title>File:Wp6-34 1 01.png</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=File:Wp6-34_1_01.png&amp;diff=415"/>
		<updated>2022-09-22T19:36:06Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-34&amp;diff=414</id>
		<title>WP6-34</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-34&amp;diff=414"/>
		<updated>2022-09-22T19:35:53Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HEPSYCODE SystemC SIMulator Version 2.0 (HEPSIM2)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSIM2&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| TODO.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
HEPSIM2 (i.e., HEPSYCODE Simulator 2) is a SystemC-based tool for functional and timing HW/SW co-simulation/analysis at the system-level, integrated into a reference Electronic System-Level (ESL) HW/SW co-design methodology, called HEPSYCODE ([35][36][37][38]), targeting heterogeneous parallel embedded systems. The following text describes the main features of the tool by mainly focusing on the improvements and extensions done in C4D with respect to a previous version [41].&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
HEPSIM2 is based on SystemC, and the HEPSIM2 System Behaviour Model (SBM, i.e., the application model, see the previous section about HEPSYCODE) is based on the CSP (Communicating Sequential Processes) Model of Computation (MoC) [39][43]. HEPSIM2 really works at ESL, i.e., at an abstraction layer similar to TLM but mainly considering only the behavioural view of the system. In fact, it allows considering the effects that the mapping on the HW platform would have on the system behaviour without the need to develop a corresponding TLM structural model. This is obtained by exploiting an approach inspired by the native simulation one [44] but combined with offline statement-level timing estimations [42] to avoid the need for binary code analysis. This feature allows a faster what-if analysis since it doesn’t require ISS or HDL integration into virtual platforms. The main drawback is the possible reduced accuracy in the timing performance estimation with respect to TLM analysis, but the proposed approach can be used to reduce the design space early and quickly by selecting the most promising “configurations” that can be then transformed into TLM (or RTL) models for more accurate analysis by means of specific tools. Moreover, other than performing functional and HW/SW timing co-simulations, HEPSIM2 is able to perform also co-analysis and co-estimations. In fact, it is able to provide information about communication and potential concurrency (both for processes and channels) in the CSP model. Moreover, it is able to perform the estimation of the loads that CSP-processes execution (and the bandwidth that CSP-channels communications) would impose, respectively, to processors and physical links, in order to satisfy imposed timing constraints. Such information, as described below, allows the reference ESL HW/SW co-design flow to exploit in a more effective way the targeted heterogeneous parallel embedded architecture. Finally, HEPSIM2 is strictly integrated into the HEPSYCODE ESL HW/SW co-design methodology ([35][36][37][38]) but it can be used also as a stand-alone tool relying on an HW architecture directly provided by the designer (i.e., manual DSE).&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
Some key aspects of the HEPSIM2 for analysis improvement are:&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
HEPSIM2, the SystemC simulator used in HEPSICODE, has demonstrated interoperability with S3D in the ECSEL project MegaMart2. Interoperability with ESDE can be established with SystemC. HEPSIM2 simulations can be adapted to another Model of Computation such as Data Flow (DF), allowing integration with UNISS MDC and UNIMORE OODK. Therefore, the interoperability graph for HEPSIM2 is as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-34_1_01.png|300px|thumb|frame|center| HEPSIM2 interoperability graph]]&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=413</id>
		<title>WP6-17</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=413"/>
		<updated>2022-09-22T19:29:17Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HW/SW CO-DEsign of HEterogeneous Parallel dedicated Systems (HEPSYCODE)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSYCODE&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| TODO.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The increasing complexity of nowadays embedded digital systems, especially those based on advanced system-on-chip (SoC) that explicitly use heterogeneous parallel architectures (e.g., [1][2]) to meet demanding timing performance and power consumption requirements, and their shorter time-to-market are radically changing standard industrial design methodologies. Traditional design approaches based on the independent design of HW/SW components are no longer sufficient to efficiently exploit sub-areas of such SoCs. For this reason, system-level HW/SW co-design methods, where designers can early check system-level constraints and evaluate tradeoffs between cost and performance, are becoming increasingly important [3]. These methods are capable of guiding system-level activities using appropriate models, metrics, and tools, and assisting the designer in all those tasks normally entrusted only to his or her experience (e.g., HW / SW architecture definition and system-level HW /SW partitioning ). In this context, this repository presents a reference methodology for electronic system level (ESL) HW/SW co-design, called HEPSYCODE (e.g., [4][5][6][7]), targeting heterogeneous parallel embedded systems. It has been extended in C4D to meet mixed-criticality requirements and to be integrated into UML/MARTE specifications.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
Figure below shows the reference ESL HW/SW co-design flow while its main steps are briefly described below by giving emphasis (red elements in Figure below) to the interactions with the HEPSIM2 simulator/analysis tool. More details about the whole methodology can be found in [4][5][6][7].&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-17_1_01.png|600px|thumb|frame|center| Reference ESL HW/SW Co-Design Flow]]&lt;br /&gt;
&lt;br /&gt;
The entry point of the reference HW /SW co-design flow is the System Behaviour Model (SBM), which is based on a CSP -like MoC and described using SystemC. It is enriched by timing constraints (TCs) and reference inputs (RI). The first step of the reference flow, performed using HEPSIM2, is the functional simulation. It allows checking the correctness of the SBM with respect to RI. In the following steps, the reference ESL HW /SW co-design flow is supported by a Technologies Library (TL), which can be considered as a database that provides a characterization of all HW technologies used to define the so-called Basic Blocks (BBs) to build the final system. The TL contains information about available General-Purpose Processors (GPPs), Application Specific Processors (ASPs), Single Purpose Processors (SPPs) [8], memory, and interconnects (i.e., physical links). The next step is co-analysis and co-estimation. During co-analysis, the SBM is analyzed to evaluate three metrics: affinity, communication, and concurrency. The first one represents how much a CSP process is suitable to be executed on a specific processor class (i.e., GPP, ASP, SPP) [5]. The second one is the evaluation of the number of bits that the various CSP process pairs exchanged over the corresponding CSP channels during simulation. The third refers to how many concurrencies have been found during the simulation in the activities of the CSP processes and CSP channels (it is evaluated using HEPSIM2 in a given configuration). Co-estimation is responsible for estimating timing, size, and load. Timing represents the time needed by each processor in the TL to execute an SBM statement. Size represents the number of bytes in RAM and ROM needed to store data and instructions for each CSP process implemented in SW. For the implementation of HW CSP processes, it is the number of mm2 (depending on the target HW technology, equivalent metrics such as Equivalent Gates, Look Up Table, etc. may be used) needed to implement processing, memory, and interconnect elements. Load represents the utilization percentage that each CSP process when implemented in SW, would impose on each GPP/ASP (used to define the BBs) to meet a timing constraint specified by the designer (i.e., it is actually a time to completion, TTC). After this step, the flow enters Design Space Exploration (DSE), which consists of 2 activities, &amp;quot;HW /SW Partitioning, Architecture Definition and Mapping&amp;quot; and &amp;quot;Timing HW /SW Co-simulation&amp;quot;. The first activity is responsible for defining the HW architecture of the target system and for HW /SW partitioning and mapping processes and channels to available processors and physical connections. This data is then provided to HEPSIM2 to verify that the proposed architecture or mapping meets the timing constraints. Data exchange between the different steps of the entire ESL HW /SW co-design flow is supported by appropriate XML files.&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
&lt;br /&gt;
The design activity in HEPSYCODE begins with a high-level abstraction modeling language (called HEPSYCODE Modeling Language, HML). The initial HML model is then transformed into an executable SystemC model based on the Communicating Sequential Processes (CSP) Model of Computation (MoC), first described by Hoare [9]. HEPSYCODE defines two system-level models, the SBM and the TL. The former is realized from the original HML. The latter contains all necessary and low-level hardware architectural details (e.g., PUs, MUs, CUs). Such models are supported by some C++ libraries that extend the standard SystemC library to implement CSP. The language of Communicating Sequential Processes (CSP) was developed for describing systems of interacting components and is supported by an underlying theory for reasoning about them.&lt;br /&gt;
CSP processes are modeled by using classic SC_THREAD while CSP channels have been modeled by introducing a proper sc_csp_channel as better described later. A “CSP SC_THREAD” presents an init section and an infinite loop behavior while accessing only its local variables and so communicating with other “CSP SC_THREAD” only by means of CSP channels. Finally, in a “CSP SC_THREAD”, only basic C/C++ statements and C++/SystemC data types are allowed while avoiding a full OOP approach since it could introduce critical issues for estimation and HW synthesis activities (in fact, the adopted restrictions have been inspired by [10]). Since the SBM is based on CSP, the SystemC library has been extended to properly model CSP channels with a sc_csp_channel class.&lt;br /&gt;
HEPSYCODE supports the UML/MARTE modeling language for system modeling. The integration of UML/MARTE allows the designer to use one of the most used languages in the embedded systems industry [17]. Moreover, MARTE is a standard UML profile to represent quantitative non-functional properties (e.g., time, performance). This variant of HEPSYCODE provides several steps of verification and validation (V&amp;amp;V) intending to discover eventual design flaws before the implementation. The novelty lies in the adoption of formal models to check the satisfiability of non-functional requirements and estimate system properties.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
HEPSYCODE has demonstrated interoperability with S3D in the ECSEL project MegaMart2. Interoperability with ESDE can be established using SystemC simulation tool (HEPSIM2). Since the modeling methodology of Papyrus4Robotics is based on MARTE, potential interoperability with this tool seems possible with the new HEPSYCODE extension. HEPSYCODE models can be adapted to another Model of Computation such as Data Flow (DF), allowing integration with UNISS MDC and UNIMORE OODK. Therefore, the interoperability graph for HEPSYCODE is the following:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-17_1_02.png|300px|thumb|frame|center| HEPSYCODE interoperability graph]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] “Xilinx Zynq SoC family”, http://www.xilinx.com&lt;br /&gt;
&lt;br /&gt;
[2] “Intel/Altera Cyclone V family”, http://www.intel.com&lt;br /&gt;
&lt;br /&gt;
[3] J. Teich. “Hardware/software co-design: The past, the present, and predicting the future”. Proceedings of the IEEE, 100 (Special Centennial Issue):1411-1430, May 2012.&lt;br /&gt;
&lt;br /&gt;
[4] L. Pomante. “System-level design space exploration for dedicated heterogeneous multi-processor systems”. IEEE Int. Conf. on Application-specific Systems, Architectures, and Processors, 2011.&lt;br /&gt;
&lt;br /&gt;
[5] L. Pomante, D. Sciuto, F. Salice, W. Fornaciari, C. Brandolese. “Affinity-Driven System Design Exploration for Heterogeneous Multiprocessor SoC”. IEEE Transactions on Computers, vol. 55, no. 5, May 2006.&lt;br /&gt;
&lt;br /&gt;
[6] “HEPSYCODE”, https://www.hepsycode.com/.&lt;br /&gt;
&lt;br /&gt;
[7] Pomante, L., Muttillo, V., Santic, M., Serri, P. “SystemC-based electronic system-level design space exploration environment for dedicated heterogeneous multi-processor systems”. Microprocessors and Microsystems, 72, 2020&lt;br /&gt;
&lt;br /&gt;
[8] Frank Vahid and Tony Givargis. 2001. “Embedded System Design: A Unified Hardware/Software Introduction”. John Wiley &amp;amp; Sons, Inc.&lt;br /&gt;
&lt;br /&gt;
[9] C. A. R. Hoare. 1978. “Communicating sequential processes”. Commun. ACM 21, 8 (Aug. 1978), 666–677.&lt;br /&gt;
&lt;br /&gt;
[10] “SystemC Synthesis Subset Language Reference Manual”, https://www.accellera.org/community/systemc&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=412</id>
		<title>WP6-17</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=412"/>
		<updated>2022-09-22T19:28:07Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HW/SW CO-DEsign of HEterogeneous Parallel dedicated Systems (HEPSYCODE)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSYCODE&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| TODO.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The increasing complexity of nowadays embedded digital systems, especially those based on advanced system-on-chip (SoC) that explicitly use heterogeneous parallel architectures (e.g., [1][2]) to meet demanding timing performance and power consumption requirements, and their shorter time-to-market are radically changing standard industrial design methodologies. Traditional design approaches based on the independent design of HW/SW components are no longer sufficient to efficiently exploit sub-areas of such SoCs. For this reason, system-level HW/SW co-design methods, where designers can early check system-level constraints and evaluate tradeoffs between cost and performance, are becoming increasingly important [3]. These methods are capable of guiding system-level activities using appropriate models, metrics, and tools, and assisting the designer in all those tasks normally entrusted only to his or her experience (e.g., HW / SW architecture definition and system-level HW /SW partitioning ). In this context, this repository presents a reference methodology for electronic system level (ESL) HW/SW co-design, called HEPSYCODE (e.g., [4][5][6][7]), targeting heterogeneous parallel embedded systems. It has been extended in C4D to meet mixed-criticality requirements and to be integrated into UML/MARTE specifications.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
Figure below shows the reference ESL HW/SW co-design flow while its main steps are briefly described below by giving emphasis (red elements in Figure below) to the interactions with the HEPSIM2 simulator/analysis tool. More details about the whole methodology can be found in [4][5][6][7].&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-17_1_01.png|600px|thumb|frame|center| Reference ESL HW/SW Co-Design Flow]]&lt;br /&gt;
&lt;br /&gt;
The entry point of the reference HW /SW co-design flow is the System Behaviour Model (SBM), which is based on a CSP -like MoC and described using SystemC. It is enriched by timing constraints (TCs) and reference inputs (RI). The first step of the reference flow, performed using HEPSIM2, is the functional simulation. It allows checking the correctness of the SBM with respect to RI. In the following steps, the reference ESL HW /SW co-design flow is supported by a Technologies Library (TL), which can be considered as a database that provides a characterization of all HW technologies used to define the so-called Basic Blocks (BBs) to build the final system. The TL contains information about available General-Purpose Processors (GPPs), Application Specific Processors (ASPs), Single Purpose Processors (SPPs) [8], memory, and interconnects (i.e., physical links). The next step is co-analysis and co-estimation. During co-analysis, the SBM is analyzed to evaluate three metrics: affinity, communication, and concurrency. The first one represents how much a CSP process is suitable to be executed on a specific processor class (i.e., GPP, ASP, SPP) [5]. The second one is the evaluation of the number of bits that the various CSP process pairs exchanged over the corresponding CSP channels during simulation. The third refers to how many concurrencies have been found during the simulation in the activities of the CSP processes and CSP channels (it is evaluated using HEPSIM2 in a given configuration). Co-estimation is responsible for estimating timing, size, and load. Timing represents the time needed by each processor in the TL to execute an SBM statement. Size represents the number of bytes in RAM and ROM needed to store data and instructions for each CSP process implemented in SW. For the implementation of HW CSP processes, it is the number of mm2 (depending on the target HW technology, equivalent metrics such as Equivalent Gates, Look Up Table, etc. may be used) needed to implement processing, memory, and interconnect elements. Load represents the utilization percentage that each CSP process when implemented in SW, would impose on each GPP/ASP (used to define the BBs) to meet a timing constraint specified by the designer (i.e., it is actually a time to completion, TTC). After this step, the flow enters Design Space Exploration (DSE), which consists of 2 activities, &amp;quot;HW /SW Partitioning, Architecture Definition and Mapping&amp;quot; and &amp;quot;Timing HW /SW Co-simulation&amp;quot;. The first activity is responsible for defining the HW architecture of the target system and for HW /SW partitioning and mapping processes and channels to available processors and physical connections. This data is then provided to HEPSIM2 to verify that the proposed architecture or mapping meets the timing constraints. Data exchange between the different steps of the entire ESL HW /SW co-design flow is supported by appropriate XML files.&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
&lt;br /&gt;
The design activity in HEPSYCODE begins with a high-level abstraction modeling language (called HEPSYCODE Modeling Language, HML). The initial HML model is then transformed into an executable SystemC model based on the Communicating Sequential Processes (CSP) Model of Computation (MoC), first described by Hoare [9]. HEPSYCODE defines two system-level models, the SBM and the TL. The former is realized from the original HML. The latter contains all necessary and low-level hardware architectural details (e.g., PUs, MUs, CUs). Such models are supported by some C++ libraries that extend the standard SystemC library to implement CSP. The language of Communicating Sequential Processes (CSP) was developed for describing systems of interacting components and is supported by an underlying theory for reasoning about them.&lt;br /&gt;
CSP processes are modeled by using classic SC_THREAD while CSP channels have been modeled by introducing a proper sc_csp_channel as better described later. A “CSP SC_THREAD” presents an init section and an infinite loop behavior while accessing only its local variables and so communicating with other “CSP SC_THREAD” only by means of CSP channels. Finally, in a “CSP SC_THREAD”, only basic C/C++ statements and C++/SystemC data types are allowed while avoiding a full OOP approach since it could introduce critical issues for estimation and HW synthesis activities (in fact, the adopted restrictions have been inspired by [10]). Since the SBM is based on CSP, the SystemC library has been extended to properly model CSP channels with a sc_csp_channel class.&lt;br /&gt;
HEPSYCODE supports the UML/MARTE modeling language for system modeling. The integration of UML/MARTE allows the designer to use one of the most used languages in the embedded systems industry [17]. Moreover, MARTE is a standard UML profile to represent quantitative non-functional properties (e.g., time, performance). This variant of HEPSYCODE provides several steps of verification and validation (V&amp;amp;V) intending to discover eventual design flaws before the implementation. The novelty lies in the adoption of formal models to check the satisfiability of non-functional requirements and estimate system properties.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
HEPSYCODE has demonstrated interoperability with S3D in the ECSEL project MegaMart2. Interoperability with ESDE can be established using SystemC simulation tool (HEPSIM2). Since the modeling methodology of Papyrus4Robotics is based on MARTE, potential interoperability with this tool seems possible with the new HEPSYCODE extension. HEPSYCODE models can be adapted to another Model of Computation such as Data Flow (DF), allowing integration with UNISS MDC and UNIMORE OODK. Therefore, the interoperability graph for HEPSYCODE is the following:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-17_1_02.png|300px|thumb|frame|center| HEPSYCODE interoperability graph]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] “Xilinx Zynq SoC family”, http://www.xilinx.com&lt;br /&gt;
&lt;br /&gt;
[2] “Intel/Altera Cyclone V family”, http://www.intel.com&lt;br /&gt;
&lt;br /&gt;
[3] J. Teich. Hardware/software co-design: The past, the present, and predicting the future. Proceedings of the IEEE, 100 (Special Centennial Issue):1411-1430, May 2012.&lt;br /&gt;
&lt;br /&gt;
[4] L. Pomante. “System-level design space exploration for dedicated heterogeneous multi-processor systems”. IEEE Int. Conf. on Application-specific Systems, Architectures, and Processors, 2011.&lt;br /&gt;
&lt;br /&gt;
[5] L. Pomante, D. Sciuto, F. Salice, W. Fornaciari, C. Brandolese. Affinity-Driven System Design Exploration for Heterogeneous Multiprocessor SoC. IEEE Transactions on Computers, vol. 55, no. 5, May 2006.&lt;br /&gt;
&lt;br /&gt;
[6] “HEPSYCODE”, https://www.hepsycode.com/.&lt;br /&gt;
&lt;br /&gt;
[7] Pomante, L., Muttillo, V., Santic, M., Serri, P. SystemC-based electronic system-level design space exploration environment for dedicated heterogeneous multi-processor systems. Microprocessors and Microsystems, 72, 2020&lt;br /&gt;
&lt;br /&gt;
[8] Frank Vahid and Tony Givargis. 2001. Embedded System Design: A Unified Hardware/Software Introduction. John Wiley &amp;amp; Sons, Inc.&lt;br /&gt;
&lt;br /&gt;
[9] C. A. R. Hoare. 1978. Communicating sequential processes. Commun. ACM 21, 8 (Aug. 1978), 666–677.&lt;br /&gt;
&lt;br /&gt;
[10] “SystemC Synthesis Subset Language Reference Manual”, https://www.accellera.org/community/systemc&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=411</id>
		<title>WP6-17</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=411"/>
		<updated>2022-09-22T19:26:20Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HW/SW CO-DEsign of HEterogeneous Parallel dedicated Systems (HEPSYCODE)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSYCODE&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| TODO.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The increasing complexity of nowadays embedded digital systems, especially those based on advanced system-on-chip (SoC) that explicitly use heterogeneous parallel architectures (e.g., [1][2]) to meet demanding timing performance and power consumption requirements, and their shorter time-to-market are radically changing standard industrial design methodologies. Traditional design approaches based on the independent design of HW/SW components are no longer sufficient to efficiently exploit sub-areas of such SoCs. For this reason, system-level HW/SW co-design methods, where designers can early check system-level constraints and evaluate tradeoffs between cost and performance, are becoming increasingly important [3]. These methods are capable of guiding system-level activities using appropriate models, metrics, and tools, and assisting the designer in all those tasks normally entrusted only to his or her experience (e.g., HW / SW architecture definition and system-level HW /SW partitioning ). In this context, this repository presents a reference methodology for electronic system level (ESL) HW/SW co-design, called HEPSYCODE (e.g., [4][5][6][7]), targeting heterogeneous parallel embedded systems. It has been extended in C4D to meet mixed-criticality requirements and to be integrated into UML/MARTE specifications.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
Figure below shows the reference ESL HW/SW co-design flow while its main steps are briefly described below by giving emphasis (red elements in Figure below) to the interactions with the HEPSIM2 simulator/analysis tool. More details about the whole methodology can be found in [4][5][6][7].&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-17_1_01.png|600px|thumb|frame|center| Reference ESL HW/SW Co-Design Flow]]&lt;br /&gt;
&lt;br /&gt;
The entry point of the reference HW /SW co-design flow is the System Behaviour Model (SBM), which is based on a CSP -like MoC and described using SystemC. It is enriched by timing constraints (TCs) and reference inputs (RI). The first step of the reference flow, performed using HEPSIM2, is the functional simulation. It allows checking the correctness of the SBM with respect to RI. In the following steps, the reference ESL HW /SW co-design flow is supported by a Technologies Library (TL), which can be considered as a database that provides a characterization of all HW technologies used to define the so-called Basic Blocks (BBs) to build the final system. The TL contains information about available General-Purpose Processors (GPPs), Application Specific Processors (ASPs), Single Purpose Processors (SPPs) [8], memory, and interconnects (i.e., physical links). The next step is co-analysis and co-estimation. During co-analysis, the SBM is analyzed to evaluate three metrics: affinity, communication, and concurrency. The first one represents how much a CSP process is suitable to be executed on a specific processor class (i.e., GPP, ASP, SPP) [5]. The second one is the evaluation of the number of bits that the various CSP process pairs exchanged over the corresponding CSP channels during simulation. The third refers to how many concurrencies have been found during the simulation in the activities of the CSP processes and CSP channels (it is evaluated using HEPSIM2 in a given configuration). Co-estimation is responsible for estimating timing, size, and load. Timing represents the time needed by each processor in the TL to execute an SBM statement. Size represents the number of bytes in RAM and ROM needed to store data and instructions for each CSP process implemented in SW. For the implementation of HW CSP processes, it is the number of mm2 (depending on the target HW technology, equivalent metrics such as Equivalent Gates, Look Up Table, etc. may be used) needed to implement processing, memory, and interconnect elements. Load represents the utilization percentage that each CSP process when implemented in SW, would impose on each GPP/ASP (used to define the BBs) to meet a timing constraint specified by the designer (i.e., it is actually a time to completion, TTC). After this step, the flow enters Design Space Exploration (DSE), which consists of 2 activities, &amp;quot;HW /SW Partitioning, Architecture Definition and Mapping&amp;quot; and &amp;quot;Timing HW /SW Co-simulation&amp;quot;. The first activity is responsible for defining the HW architecture of the target system and for HW /SW partitioning and mapping processes and channels to available processors and physical connections. This data is then provided to HEPSIM2 to verify that the proposed architecture or mapping meets the timing constraints. Data exchange between the different steps of the entire ESL HW /SW co-design flow is supported by appropriate XML files.&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
&lt;br /&gt;
The design activity in HEPSYCODE begins with a high-level abstraction modeling language (called HEPSYCODE Modeling Language, HML). The initial HML model is then transformed into an executable SystemC model based on the Communicating Sequential Processes (CSP) Model of Computation (MoC), first described by Hoare [9]. HEPSYCODE defines two system-level models, the SBM and the TL. The former is realized from the original HML. The latter contains all necessary and low-level hardware architectural details (e.g., PUs, MUs, CUs). Such models are supported by some C++ libraries that extend the standard SystemC library to implement CSP. The language of Communicating Sequential Processes (CSP) was developed for describing systems of interacting components and is supported by an underlying theory for reasoning about them.&lt;br /&gt;
CSP processes are modeled by using classic SC_THREAD while CSP channels have been modeled by introducing a proper sc_csp_channel as better described later. A “CSP SC_THREAD” presents an init section and an infinite loop behavior while accessing only its local variables and so communicating with other “CSP SC_THREAD” only by means of CSP channels. Finally, in a “CSP SC_THREAD”, only basic C/C++ statements and C++/SystemC data types are allowed while avoiding a full OOP approach since it could introduce critical issues for estimation and HW synthesis activities (in fact, the adopted restrictions have been inspired by [10]). Since the SBM is based on CSP, the SystemC library has been extended to properly model CSP channels with a sc_csp_channel class.&lt;br /&gt;
HEPSYCODE supports the UML/MARTE modeling language for system modeling. The integration of UML/MARTE allows the designer to use one of the most used languages in the embedded systems industry [17]. Moreover, MARTE is a standard UML profile to represent quantitative non-functional properties (e.g., time, performance). This variant of HEPSYCODE provides several steps of verification and validation (V&amp;amp;V) intending to discover eventual design flaws before the implementation. The novelty lies in the adoption of formal models to check the satisfiability of non-functional requirements and estimate system properties.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
HEPSYCODE has demonstrated interoperability with S3D in the ECSEL project MegaMart2. Interoperability with ESDE can be established using SystemC simulation tool (HEPSIM2). Since the modeling methodology of Papyrus4Robotics is based on MARTE, potential interoperability with this tool seems possible with the new HEPSYCODE extension. HEPSYCODE models can be adapted to another Model of Computation such as Data Flow (DF), allowing integration with UNISS MDC and UNIMORE OODK. Therefore, the interoperability graph for HEPSYCODE is the following:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-17_1_02.png|300px|thumb|frame|center| HEPSYCODE interoperability graph]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] Xilinx Zynq SoC family, http://www.xilinx.com&lt;br /&gt;
&lt;br /&gt;
[2] Intel/Altera Cyclone V family, http://www.intel.com&lt;br /&gt;
&lt;br /&gt;
[3] J. Teich. Hardware/software co-design: The past, the present, and predicting the future. Proceedings of the IEEE, 100 (Special Centennial Issue):1411-1430, May 2012.&lt;br /&gt;
&lt;br /&gt;
[4] L. Pomante. “System-level design space exploration for dedicated heterogeneous multi-processor systems”. IEEE Int. Conf. on Application-specific Systems, Architectures, and Processors, 2011.&lt;br /&gt;
&lt;br /&gt;
[5] L. Pomante, D. Sciuto, F. Salice, W. Fornaciari, C. Brandolese. Affinity-Driven System Design Exploration for Heterogeneous Multiprocessor SoC. IEEE Transactions on Computers, vol. 55, no. 5, May 2006.&lt;br /&gt;
&lt;br /&gt;
[6] HEPSYCODE, https://www.hepsycode.com/.&lt;br /&gt;
&lt;br /&gt;
[7] Pomante, L., Muttillo, V., Santic, M., Serri, P. SystemC-based electronic system-level design space exploration environment for dedicated heterogeneous multi-processor systems. Microprocessors and Microsystems, 72, 2020&lt;br /&gt;
&lt;br /&gt;
[8] Frank Vahid and Tony Givargis. 2001. Embedded System Design: A Unified Hardware/Software Introduction. John Wiley &amp;amp; Sons, Inc.&lt;br /&gt;
&lt;br /&gt;
[9] Hoare C.A.R. (1978) Communicating Sequential Processes. In: Hansen P.B. (eds) The Origin of Concurrent Programming. Springer, New York, NY&lt;br /&gt;
&lt;br /&gt;
[10] “SystemC Synthesis Subset Language Reference Manual”, https://www.accellera.org/community/systemc&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=410</id>
		<title>WP6-17</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=410"/>
		<updated>2022-09-22T19:19:50Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HW/SW CO-DEsign of HEterogeneous Parallel dedicated Systems (HEPSYCODE)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSYCODE&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| TODO.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The increasing complexity of nowadays embedded digital systems, especially those based on advanced system-on-chip (SoC) that explicitly use heterogeneous parallel architectures (e.g., [1][2]) to meet demanding timing performance and power consumption requirements, and their shorter time-to-market are radically changing standard industrial design methodologies. Traditional design approaches based on the independent design of HW/SW components are no longer sufficient to efficiently exploit sub-areas of such SoCs. For this reason, system-level HW/SW co-design methods, where designers can early check system-level constraints and evaluate tradeoffs between cost and performance, are becoming increasingly important [3]. These methods are capable of guiding system-level activities using appropriate models, metrics, and tools, and assisting the designer in all those tasks normally entrusted only to his or her experience (e.g., HW / SW architecture definition and system-level HW /SW partitioning ). In this context, this repository presents a reference methodology for electronic system level (ESL) HW/SW co-design, called HEPSYCODE (e.g., [4][5][6][7]), targeting heterogeneous parallel embedded systems. It has been extended in C4D to meet mixed-criticality requirements and to be integrated into UML/MARTE specifications.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
Figure below shows the reference ESL HW/SW co-design flow while its main steps are briefly described below by giving emphasis (red elements in Figure below) to the interactions with the HEPSIM2 simulator/analysis tool. More details about the whole methodology can be found in [4][5][6][7].&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-17_1_01.png|600px|thumb|frame|center| Reference ESL HW/SW Co-Design Flow]]&lt;br /&gt;
&lt;br /&gt;
The entry point of the reference HW /SW co-design flow is the System Behaviour Model (SBM), which is based on a CSP -like MoC and described using SystemC. It is enriched by timing constraints (TCs) and reference inputs (RI). The first step of the reference flow, performed using HEPSIM2, is the functional simulation. It allows checking the correctness of the SBM with respect to RI. In the following steps, the reference ESL HW /SW co-design flow is supported by a Technologies Library (TL), which can be considered as a database that provides a characterization of all HW technologies used to define the so-called Basic Blocks (BBs) to build the final system. The TL contains information about available General-Purpose Processors (GPPs), Application Specific Processors (ASPs), Single Purpose Processors (SPPs) [8], memory, and interconnects (i.e., physical links). The next step is co-analysis and co-estimation. During co-analysis, the SBM is analyzed to evaluate three metrics: affinity, communication, and concurrency. The first one represents how much a CSP process is suitable to be executed on a specific processor class (i.e., GPP, ASP, SPP) [5]. The second one is the evaluation of the number of bits that the various CSP process pairs exchanged over the corresponding CSP channels during simulation. The third refers to how many concurrencies have been found during the simulation in the activities of the CSP processes and CSP channels (it is evaluated using HEPSIM2 in a given configuration). Co-estimation is responsible for estimating timing, size, and load. Timing represents the time needed by each processor in the TL to execute an SBM statement. Size represents the number of bytes in RAM and ROM needed to store data and instructions for each CSP process implemented in SW. For the implementation of HW CSP processes, it is the number of mm2 (depending on the target HW technology, equivalent metrics such as Equivalent Gates, Look Up Table, etc. may be used) needed to implement processing, memory, and interconnect elements. Load represents the utilization percentage that each CSP process when implemented in SW, would impose on each GPP/ASP (used to define the BBs) to meet a timing constraint specified by the designer (i.e., it is actually a time to completion, TTC). After this step, the flow enters Design Space Exploration (DSE), which consists of 2 activities, &amp;quot;HW /SW Partitioning, Architecture Definition and Mapping&amp;quot; and &amp;quot;Timing HW /SW Co-simulation&amp;quot;. The first activity is responsible for defining the HW architecture of the target system and for HW /SW partitioning and mapping processes and channels to available processors and physical connections. This data is then provided to HEPSIM2 to verify that the proposed architecture or mapping meets the timing constraints. Data exchange between the different steps of the entire ESL HW /SW co-design flow is supported by appropriate XML files.&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
Some key aspects of the HEPSYCODE flow for design system improvement are:&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
HEPSYCODE has demonstrated interoperability with S3D in the ECSEL project MegaMart2. Interoperability with ESDE can be established using SystemC simulation tool (HEPSIM2). Since the modeling methodology of Papyrus4Robotics is based on MARTE, potential interoperability with this tool seems possible with the new HEPSYCODE extension. HEPSYCODE models can be adapted to another Model of Computation such as Data Flow (DF), allowing integration with UNISS MDC and UNIMORE OODK. Therefore, the interoperability graph for HEPSYCODE is the following:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-17_1_02.png|300px|thumb|frame|center| HEPSYCODE interoperability graph]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] Xilinx Zynq SoC family, http://www.xilinx.com&lt;br /&gt;
&lt;br /&gt;
[2] Intel/Altera Cyclone V family, http://www.intel.com&lt;br /&gt;
&lt;br /&gt;
[3] J. Teich. Hardware/software co-design: The past, the present, and predicting the future. Proceedings of the IEEE, 100 (Special Centennial Issue):1411-1430, May 2012.&lt;br /&gt;
&lt;br /&gt;
[4] L. Pomante. “System-level design space exploration for dedicated heterogeneous multi-processor systems”. IEEE Int. Conf. on Application-specific Systems, Architectures, and Processors, 2011.&lt;br /&gt;
&lt;br /&gt;
[5] L. Pomante, D. Sciuto, F. Salice, W. Fornaciari, C. Brandolese. Affinity-Driven System Design Exploration for Heterogeneous Multiprocessor SoC. IEEE Transactions on Computers, vol. 55, no. 5, May 2006.&lt;br /&gt;
&lt;br /&gt;
[6] HEPSYCODE, https://www.hepsycode.com/.&lt;br /&gt;
&lt;br /&gt;
[7] Pomante, L., Muttillo, V., Santic, M., Serri, P. SystemC-based electronic system-level design space exploration environment for dedicated heterogeneous multi-processor systems. Microprocessors and Microsystems, 72, 2020&lt;br /&gt;
&lt;br /&gt;
[8] Frank Vahid and Tony Givargis. 2001. Embedded System Design: A Unified Hardware/Software Introduction. John Wiley &amp;amp; Sons, Inc.&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=409</id>
		<title>WP6-17</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=409"/>
		<updated>2022-09-22T19:18:35Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HW/SW CO-DEsign of HEterogeneous Parallel dedicated Systems (HEPSYCODE)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSYCODE&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| TODO.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The increasing complexity of nowadays embedded digital systems, especially those based on advanced system-on-chip (SoC) that explicitly use heterogeneous parallel architectures (e.g., [1][2]) to meet demanding timing performance and power consumption requirements, and their shorter time-to-market are radically changing standard industrial design methodologies. Traditional design approaches based on the independent design of HW/SW components are no longer sufficient to efficiently exploit sub-areas of such SoCs. For this reason, system-level HW/SW co-design methods, where designers can early check system-level constraints and evaluate tradeoffs between cost and performance, are becoming increasingly important [3]. These methods are capable of guiding system-level activities using appropriate models, metrics, and tools, and assisting the designer in all those tasks normally entrusted only to his or her experience (e.g., HW / SW architecture definition and system-level HW /SW partitioning ). In this context, this repository presents a reference methodology for electronic system level (ESL) HW/SW co-design, called HEPSYCODE (e.g., [4][5][6][7]), targeting heterogeneous parallel embedded systems. It has been extended in C4D to meet mixed-criticality requirements and to be integrated into UML/MARTE specifications.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
Figure below shows the reference ESL HW/SW co-design flow while its main steps are briefly described below by giving emphasis (red elements in Figure below) to the interactions with the HEPSIM2 simulator/analysis tool. More details about the whole methodology can be found in [4][5][6][7].&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-17_1_01.png|600px|thumb|frame|center| Reference ESL HW/SW Co-Design Flow]]&lt;br /&gt;
&lt;br /&gt;
The entry point of the reference HW /SW co-design flow is the System Behaviour Model (SBM), which is based on a CSP -like MoC and described using SystemC. It is enriched by timing constraints (TCs) and reference inputs (RI). The first step of the reference flow, performed using HEPSIM2, is the functional simulation. It allows checking the correctness of the SBM with respect to RI. In the following steps, the reference ESL HW /SW co-design flow is supported by a Technologies Library (TL), which can be considered as a database that provides a characterization of all HW technologies used to define the so-called Basic Blocks (BBs) to build the final system. The TL contains information about available General-Purpose Processors (GPPs), Application Specific Processors (ASPs), Single Purpose Processors (SPPs) [8], memory, and interconnects (i.e., physical links). The next step is co-analysis and co-estimation. During co-analysis, the SBM is analyzed to evaluate three metrics: affinity, communication, and concurrency. The first one represents how much a CSP process is suitable to be executed on a specific processor class (i.e., GPP, ASP, SPP) [5]. The second one is the evaluation of the number of bits that the various CSP process pairs exchanged over the corresponding CSP channels during simulation. The third refers to how many concurrencies have been found during the simulation in the activities of the CSP processes and CSP channels (it is evaluated using HEPSIM2 in a given configuration). Co-estimation is responsible for estimating timing, size, and load. Timing represents the time needed by each processor in the TL to execute an SBM statement. Size represents the number of bytes in RAM and ROM needed to store data and instructions for each CSP process implemented in SW. For the implementation of HW CSP processes, it is the number of mm2 (depending on the target HW technology, equivalent metrics such as Equivalent Gates, Look Up Table, etc. may be used) needed to implement processing, memory, and interconnect elements. Load represents the utilization percentage that each CSP process when implemented in SW, would impose on each GPP/ASP (used to define the BBs) to meet a timing constraint specified by the designer (i.e., it is actually a time to completion, TTC). After this step, the flow enters Design Space Exploration (DSE), which consists of 2 activities, &amp;quot;HW /SW Partitioning, Architecture Definition and Mapping&amp;quot; and &amp;quot;Timing HW /SW Co-simulation&amp;quot;. The first activity is responsible for defining the HW architecture of the target system and for HW /SW partitioning and mapping processes and channels to available processors and physical connections. This data is then provided to HEPSIM2 to verify that the proposed architecture or mapping meets the timing constraints. Data exchange between the different steps of the entire ESL HW /SW co-design flow is supported by appropriate XML files.&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
Some key aspects of the HEPSYCODE flow for design system improvement are:&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
HEPSYCODE has demonstrated interoperability with S3D in the ECSEL project MegaMart2. Interoperability with ESDE can be established using SystemC simulation tool (HEPSIM2). Since the modeling methodology of Papyrus4Robotics is based on MARTE, potential interoperability with this tool seems possible with the new HEPSYCODE extension. HEPSYCODE models can be adapted to another Model of Computation such as Data Flow (DF), allowing integration with UNISS MDC and UNIMORE OODK. Therefore, the interoperability graph for HEPSYCODE is the following:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-17_1_02.png|300px|thumb|frame|center| HEPSYCODE interoperability graph]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] Xilinx Zynq SoCfamily, http://www.xilinx.com&lt;br /&gt;
&lt;br /&gt;
[2] Intel/Altera Cyclone V family, http://www.intel.com&lt;br /&gt;
&lt;br /&gt;
[3] J. Teich. Hardware/software codesign: The past, the present, and predicting the future. Proceedings of the IEEE, 100(Special Centennial Issue):1411{1430, May 2012.&lt;br /&gt;
&lt;br /&gt;
[4] L. Pomante. “System-level design space exploration for dedicated heterogeneous multi-processor systems”. IEEE Int. Conf. on Application-specific Systems, Architectures and Processors, 2011.&lt;br /&gt;
&lt;br /&gt;
[5] L. Pomante, D. Sciuto, F. Salice, W. Fornaciari, C. Brandolese. Affinity-Driven System Design Exploration for Heterogeneous Multiprocessor SoC. IEEE Transactions on Computers, vol. 55, no. 5, May 2006.&lt;br /&gt;
&lt;br /&gt;
[6] HEPSYCODE, https://www.hepsycode.com/.&lt;br /&gt;
&lt;br /&gt;
[7] Pomante, L., Muttillo, V., Santic, M., Serri, P. SystemC-based electronic system-level design space exploration environment for dedicated heterogeneous multi-processor systems. Microprocessors and Microsystems, 72, 2020&lt;br /&gt;
&lt;br /&gt;
[8] Frank Vahid and Tony Givargis. 2001. Embedded System Design: A Unified Hardware/Software Introduction. John Wiley &amp;amp; Sons, Inc&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=408</id>
		<title>WP6-17</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=408"/>
		<updated>2022-09-22T19:17:58Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HW/SW CO-DEsign of HEterogeneous Parallel dedicated Systems (HEPSYCODE)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSYCODE&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| TODO.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The increasing complexity of nowadays embedded digital systems, especially those based on advanced system-on-chip (SoC) that explicitly use heterogeneous parallel architectures (e.g., [1][2]) to meet demanding timing performance and power consumption requirements, and their shorter time-to-market are radically changing standard industrial design methodologies. Traditional design approaches based on the independent design of HW/SW components are no longer sufficient to efficiently exploit sub-areas of such SoCs. For this reason, system-level HW/SW co-design methods, where designers can early check system-level constraints and evaluate tradeoffs between cost and performance, are becoming increasingly important [3]. These methods are capable of guiding system-level activities using appropriate models, metrics, and tools, and assisting the designer in all those tasks normally entrusted only to his or her experience (e.g., HW / SW architecture definition and system-level HW /SW partitioning ). In this context, this repository presents a reference methodology for electronic system level (ESL) HW/SW co-design, called HEPSYCODE (e.g., [4][5][6][7]), targeting heterogeneous parallel embedded systems. It has been extended in C4D to meet mixed-criticality requirements and to be integrated into UML/MARTE specifications.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
Figure below shows the reference ESL HW/SW co-design flow while its main steps are briefly described below by giving emphasis (red elements in Figure below) to the interactions with the HEPSIM2 simulator/analysis tool. More details about the whole methodology can be found in [4][5][6][7].&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-17_1_01.png|600px|thumb|frame|center| Reference ESL HW/SW Co-Design Flow]]&lt;br /&gt;
&lt;br /&gt;
The entry point of the reference HW /SW co-design flow is the System Behaviour Model (SBM), which is based on a CSP -like MoC and described using SystemC. It is enriched by timing constraints (TCs) and reference inputs (RI). The first step of the reference flow, performed using HEPSIM2, is the functional simulation. It allows checking the correctness of the SBM with respect to RI. In the following steps, the reference ESL HW /SW co-design flow is supported by a Technologies Library (TL), which can be considered as a database that provides a characterization of all HW technologies used to define the so-called Basic Blocks (BBs) to build the final system. The TL contains information about available General-Purpose Processors (GPPs), Application Specific Processors (ASPs), Single Purpose Processors (SPPs) [8], memory, and interconnects (i.e., physical links). The next step is co-analysis and co-estimation. During co-analysis, the SBM is analyzed to evaluate three metrics: affinity, communication, and concurrency. The first one represents how much a CSP process is suitable to be executed on a specific processor class (i.e., GPP, ASP, SPP) [5]. The second one is the evaluation of the number of bits that the various CSP process pairs exchanged over the corresponding CSP channels during simulation. The third refers to how many concurrencies have been found during the simulation in the activities of the CSP processes and CSP channels (it is evaluated using HEPSIM2 in a given configuration). Co-estimation is responsible for estimating timing, size, and load. Timing represents the time needed by each processor in the TL to execute an SBM statement. Size represents the number of bytes in RAM and ROM needed to store data and instructions for each CSP process implemented in SW. For the implementation of HW CSP processes, it is the number of mm2 (depending on the target HW technology, equivalent metrics such as Equivalent Gates, Look Up Table, etc. may be used) needed to implement processing, memory, and interconnect elements. Load represents the utilization percentage that each CSP process when implemented in SW, would impose on each GPP/ASP (used to define the BBs) to meet a timing constraint specified by the designer (i.e., it is actually a time to completion, TTC). After this step, the flow enters Design Space Exploration (DSE), which consists of 2 activities, &amp;quot;HW /SW Partitioning, Architecture Definition and Mapping&amp;quot; and &amp;quot;Timing HW /SW Co-simulation&amp;quot;. The first activity is responsible for defining the HW architecture of the target system and for HW /SW partitioning and mapping processes and channels to available processors and physical connections. This data is then provided to HEPSIM2 to verify that the proposed architecture or mapping meets the timing constraints. Data exchange between the different steps of the entire ESL HW /SW co-design flow is supported by appropriate XML files.&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
Some key aspects of the HEPSYCODE flow for design system improvement are:&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
HEPSYCODE has demonstrated interoperability with S3D in the ECSEL project MegaMart2. Interoperability with ESDE can be established using SystemC simulation tool (HEPSIM2). Since the modeling methodology of Papyrus4Robotics is based on MARTE, potential interoperability with this tool seems possible with the new HEPSYCODE extension. HEPSYCODE models can be adapted to another Model of Computation such as Data Flow (DF), allowing integration with UNISS MDC and UNIMORE OODK. Therefore, the interoperability graph for HEPSYCODE is the following:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-17_1_02.png|300px|thumb|frame|center| HEPSYCODE interoperability graph]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] Xilinx Zynq SoCfamily, http://www.xilinx.com&lt;br /&gt;
&lt;br /&gt;
[2] Intel/Altera Cyclone V family, http://www.intel.com&lt;br /&gt;
&lt;br /&gt;
[3] J. Teich. Hardware/software codesign: The past, the present, and predicting the future. Proceedings of the IEEE, 100(Special Centennial Issue):1411{1430, May 2012.&lt;br /&gt;
&lt;br /&gt;
[4] L. Pomante. “System-level design space exploration for dedicated heterogeneous multi-processor systems”. IEEE Int. Conf. on Application-specific Systems, Architectures and Processors, 2011.&lt;br /&gt;
&lt;br /&gt;
[5] L. Pomante, D. Sciuto, F. Salice, W. Fornaciari, C. Brandolese. Affinity-Driven System Design Exploration for Heterogeneous Multiprocessor SoC. IEEE Transactions on Computers, vol. 55, no. 5, May 2006.&lt;br /&gt;
&lt;br /&gt;
[6] HEPSYCODE, http://www.hespsycode.com.&lt;br /&gt;
&lt;br /&gt;
[7] Pomante, L., Muttillo, V., Santic, M., Serri, P. SystemC-based electronic system-level design space exploration environment for dedicated heterogeneous multi-processor systems. Microprocessors and Microsystems, 72, 2020&lt;br /&gt;
&lt;br /&gt;
[8] Frank Vahid and Tony Givargis. 2001. Embedded System Design: A Unified Hardware/Software Introduction. John Wiley &amp;amp; Sons, Inc&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=407</id>
		<title>WP6-17</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=407"/>
		<updated>2022-09-22T19:12:22Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HW/SW CO-DEsign of HEterogeneous Parallel dedicated Systems (HEPSYCODE)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSYCODE&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| TODO.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The increasing complexity of nowadays embedded digital systems, especially those based on advanced system-on-chip (SoC) that explicitly use heterogeneous parallel architectures to meet demanding timing performance and power consumption requirements, and their shorter time-to-market are radically changing standard industrial design methodologies. Traditional design approaches based on the independent design of HW / SW components are no longer sufficient to efficiently exploit sub-areas of such SoCs. For this reason, system-level HW/SW co-design methods, where designers can early check system-level constraints and evaluate tradeoffs between cost and performance, are becoming increasingly important. These methods are capable of guiding system-level activities using appropriate models, metrics, and tools, and assisting the designer in all those tasks normally entrusted only to his or her experience (e.g., HW / SW architecture definition and system-level HW /SW partitioning ). In this context, this repository presents a reference methodology for electronic system level (ESL) HW/SW co-design, called HEPSYCODE, targeting heterogeneous parallel embedded systems. It has been extended in C4D to meet mixed-criticality requirements and to be integrated into UML/MARTE specifications.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
Figure below shows the reference ESL HW/SW co-design flow while its main steps are briefly described below by giving emphasis (red elements in Figure below) to the interactions with the HEPSIM2 simulator/analysis tool.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-17_1_01.png|600px|thumb|frame|center| Reference ESL HW/SW Co-Design Flow]]&lt;br /&gt;
&lt;br /&gt;
The entry point of the reference HW /SW co-design flow is the System Behaviour Model (SBM), which is based on a CSP -like MoC and described using SystemC. It is enriched by timing constraints (TCs) and reference inputs (RI). The first step of the reference flow, performed using HEPSIM2, is the functional simulation. It allows checking the correctness of the SBM with respect to RI. In the following steps, the reference ESL HW /SW co-design flow is supported by a Technologies Library (TL), which can be considered as a database that provides a characterization of all HW technologies used to define the so-called Basic Blocks (BBs) to build the final system. The TL contains information about available General-Purpose Processors (GPPs), Application Specific Processors (ASPs), Single Purpose Processors (SPPs), memory, and interconnects (i.e., physical links). The next step is co-analysis and co-estimation. During co-analysis, the SBM is analyzed to evaluate three metrics: affinity, communication, and concurrency. The first one represents how much a CSP process is suitable to be executed on a specific processor class (i.e., GPP, ASP, SPP). The second one is the evaluation of the number of bits that the various CSP process pairs exchanged over the corresponding CSP channels during simulation. The third refers to how many concurrencies have been found during the simulation in the activities of the CSP processes and CSP channels (it is evaluated using HEPSIM2 in a given configuration). Co-estimation is responsible for estimating timing, size, and load. Timing represents the time needed by each processor in the TL to execute an SBM statement. Size represents the number of bytes in RAM and ROM needed to store data and instructions for each CSP process implemented in SW. For the implementation of HW CSP processes, it is the number of mm2 (depending on the target HW technology, equivalent metrics such as Equivalent Gates, Look Up Table, etc. may be used) needed to implement processing, memory, and interconnect elements. Load represents the utilization percentage that each CSP process when implemented in SW, would impose on each GPP/ASP (used to define the BBs) to meet a timing constraint specified by the designer (i.e., it is actually a time to completion, TTC). After this step, the flow enters Design Space Exploration (DSE), which consists of 2 activities, &amp;quot;HW /SW Partitioning, Architecture Definition and Mapping&amp;quot; and &amp;quot;Timing HW /SW Co-simulation&amp;quot;. The first activity is responsible for defining the HW architecture of the target system and for HW /SW partitioning and mapping processes and channels to available processors and physical connections. This data is then provided to HEPSIM2 to verify that the proposed architecture or mapping meets the timing constraints. Data exchange between the different steps of the entire ESL HW /SW co-design flow is supported by appropriate XML files.&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
Some key aspects of the HEPSYCODE flow for design system improvement are:&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
HEPSYCODE has demonstrated interoperability with S3D in the ECSEL project MegaMart2. Interoperability with ESDE can be established using SystemC simulation tool (HEPSIM2). Since the modeling methodology of Papyrus4Robotics is based on MARTE, potential interoperability with this tool seems possible with the new HEPSYCODE extension. HEPSYCODE models can be adapted to another Model of Computation such as Data Flow (DF), allowing integration with UNISS MDC and UNIMORE OODK. Therefore, the interoperability graph for HEPSYCODE is the following:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-17_1_02.png|300px|thumb|frame|center| HEPSYCODE interoperability graph]]&lt;br /&gt;
&lt;br /&gt;
==Current Status==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
==Design and Implementation==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=406</id>
		<title>WP6-17</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=406"/>
		<updated>2022-09-22T19:12:12Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HW/SW CO-DEsign of HEterogeneous Parallel dedicated Systems (HEPSYCODE)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSYCODE&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| TODO.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The increasing complexity of nowadays embedded digital systems, especially those based on advanced system-on-chip (SoC) that explicitly use heterogeneous parallel architectures to meet demanding timing performance and power consumption requirements, and their shorter time-to-market are radically changing standard industrial design methodologies. Traditional design approaches based on the independent design of HW / SW components are no longer sufficient to efficiently exploit sub-areas of such SoCs. For this reason, system-level HW/SW co-design methods, where designers can early check system-level constraints and evaluate tradeoffs between cost and performance, are becoming increasingly important. These methods are capable of guiding system-level activities using appropriate models, metrics, and tools, and assisting the designer in all those tasks normally entrusted only to his or her experience (e.g., HW / SW architecture definition and system-level HW /SW partitioning ). In this context, this repository presents a reference methodology for electronic system level (ESL) HW/SW co-design, called HEPSYCODE, targeting heterogeneous parallel embedded systems. It has been extended in C4D to meet mixed-criticality requirements and to be integrated into UML/MARTE specifications.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
Figure below shows the reference ESL HW/SW co-design flow while its main steps are briefly described below by giving emphasis (red elements in Figure below) to the interactions with the HEPSIM2 simulator/analysis tool.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-17_1_01.png|600px|thumb|frame|center| Reference ESL HW/SW Co-Design Flow]]&lt;br /&gt;
&lt;br /&gt;
The entry point of the reference HW /SW co-design flow is the System Behaviour Model (SBM), which is based on a CSP -like MoC and described using SystemC. It is enriched by timing constraints (TCs) and reference inputs (RI). The first step of the reference flow, performed using HEPSIM2, is the functional simulation. It allows checking the correctness of the SBM with respect to RI. In the following steps, the reference ESL HW /SW co-design flow is supported by a Technologies Library (TL), which can be considered as a database that provides a characterization of all HW technologies used to define the so-called Basic Blocks (BBs) to build the final system. The TL contains information about available General-Purpose Processors (GPPs), Application Specific Processors (ASPs), Single Purpose Processors (SPPs), memory, and interconnects (i.e., physical links). The next step is co-analysis and co-estimation. During co-analysis, the SBM is analyzed to evaluate three metrics: affinity, communication, and concurrency. The first one represents how much a CSP process is suitable to be executed on a specific processor class (i.e., GPP, ASP, SPP). The second one is the evaluation of the number of bits that the various CSP process pairs exchanged over the corresponding CSP channels during simulation. The third refers to how many concurrencies have been found during the simulation in the activities of the CSP processes and CSP channels (it is evaluated using HEPSIM2 in a given configuration). Co-estimation is responsible for estimating timing, size, and load. Timing represents the time needed by each processor in the TL to execute an SBM statement. Size represents the number of bytes in RAM and ROM needed to store data and instructions for each CSP process implemented in SW. For the implementation of HW CSP processes, it is the number of mm2 (depending on the target HW technology, equivalent metrics such as Equivalent Gates, Look Up Table, etc. may be used) needed to implement processing, memory, and interconnect elements. Load represents the utilization percentage that each CSP process when implemented in SW, would impose on each GPP/ASP (used to define the BBs) to meet a timing constraint specified by the designer (i.e., it is actually a time to completion, TTC). After this step, the flow enters Design Space Exploration (DSE), which consists of 2 activities, &amp;quot;HW /SW Partitioning, Architecture Definition and Mapping&amp;quot; and &amp;quot;Timing HW /SW Co-simulation&amp;quot;. The first activity is responsible for defining the HW architecture of the target system and for HW /SW partitioning and mapping processes and channels to available processors and physical connections. This data is then provided to HEPSIM2 to verify that the proposed architecture or mapping meets the timing constraints. Data exchange between the different steps of the entire ESL HW /SW co-design flow is supported by appropriate XML files.&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
Some key aspects of the HEPSYCODE flow for design system improvement are:&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
HEPSYCODE has demonstrated interoperability with S3D in the ECSEL project MegaMart2. Interoperability with ESDE can be established using SystemC simulation tool (HEPSIM2). Since the modeling methodology of Papyrus4Robotics is based on MARTE, potential interoperability with this tool seems possible with the new HEPSYCODE extension. HEPSYCODE models can be adapted to another Model of Computation such as Data Flow (DF), allowing integration with UNISS MDC and UNIMORE OODK. Therefore, the interoperability graph for HEPSYCODE is the following:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-17_1_02.png|400px|thumb|frame|center| HEPSYCODE interoperability graph]]&lt;br /&gt;
&lt;br /&gt;
==Current Status==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
==Design and Implementation==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=File:Wp6-17_1_02.png&amp;diff=405</id>
		<title>File:Wp6-17 1 02.png</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=File:Wp6-17_1_02.png&amp;diff=405"/>
		<updated>2022-09-22T19:11:22Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=404</id>
		<title>WP6-17</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=404"/>
		<updated>2022-09-22T19:11:12Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HW/SW CO-DEsign of HEterogeneous Parallel dedicated Systems (HEPSYCODE)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSYCODE&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| TODO.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The increasing complexity of nowadays embedded digital systems, especially those based on advanced system-on-chip (SoC) that explicitly use heterogeneous parallel architectures to meet demanding timing performance and power consumption requirements, and their shorter time-to-market are radically changing standard industrial design methodologies. Traditional design approaches based on the independent design of HW / SW components are no longer sufficient to efficiently exploit sub-areas of such SoCs. For this reason, system-level HW/SW co-design methods, where designers can early check system-level constraints and evaluate tradeoffs between cost and performance, are becoming increasingly important. These methods are capable of guiding system-level activities using appropriate models, metrics, and tools, and assisting the designer in all those tasks normally entrusted only to his or her experience (e.g., HW / SW architecture definition and system-level HW /SW partitioning ). In this context, this repository presents a reference methodology for electronic system level (ESL) HW/SW co-design, called HEPSYCODE, targeting heterogeneous parallel embedded systems. It has been extended in C4D to meet mixed-criticality requirements and to be integrated into UML/MARTE specifications.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
Figure below shows the reference ESL HW/SW co-design flow while its main steps are briefly described below by giving emphasis (red elements in Figure below) to the interactions with the HEPSIM2 simulator/analysis tool.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-17_1_01.png|600px|thumb|frame|center| Reference ESL HW/SW Co-Design Flow]]&lt;br /&gt;
&lt;br /&gt;
The entry point of the reference HW /SW co-design flow is the System Behaviour Model (SBM), which is based on a CSP -like MoC and described using SystemC. It is enriched by timing constraints (TCs) and reference inputs (RI). The first step of the reference flow, performed using HEPSIM2, is the functional simulation. It allows checking the correctness of the SBM with respect to RI. In the following steps, the reference ESL HW /SW co-design flow is supported by a Technologies Library (TL), which can be considered as a database that provides a characterization of all HW technologies used to define the so-called Basic Blocks (BBs) to build the final system. The TL contains information about available General-Purpose Processors (GPPs), Application Specific Processors (ASPs), Single Purpose Processors (SPPs), memory, and interconnects (i.e., physical links). The next step is co-analysis and co-estimation. During co-analysis, the SBM is analyzed to evaluate three metrics: affinity, communication, and concurrency. The first one represents how much a CSP process is suitable to be executed on a specific processor class (i.e., GPP, ASP, SPP). The second one is the evaluation of the number of bits that the various CSP process pairs exchanged over the corresponding CSP channels during simulation. The third refers to how many concurrencies have been found during the simulation in the activities of the CSP processes and CSP channels (it is evaluated using HEPSIM2 in a given configuration). Co-estimation is responsible for estimating timing, size, and load. Timing represents the time needed by each processor in the TL to execute an SBM statement. Size represents the number of bytes in RAM and ROM needed to store data and instructions for each CSP process implemented in SW. For the implementation of HW CSP processes, it is the number of mm2 (depending on the target HW technology, equivalent metrics such as Equivalent Gates, Look Up Table, etc. may be used) needed to implement processing, memory, and interconnect elements. Load represents the utilization percentage that each CSP process when implemented in SW, would impose on each GPP/ASP (used to define the BBs) to meet a timing constraint specified by the designer (i.e., it is actually a time to completion, TTC). After this step, the flow enters Design Space Exploration (DSE), which consists of 2 activities, &amp;quot;HW /SW Partitioning, Architecture Definition and Mapping&amp;quot; and &amp;quot;Timing HW /SW Co-simulation&amp;quot;. The first activity is responsible for defining the HW architecture of the target system and for HW /SW partitioning and mapping processes and channels to available processors and physical connections. This data is then provided to HEPSIM2 to verify that the proposed architecture or mapping meets the timing constraints. Data exchange between the different steps of the entire ESL HW /SW co-design flow is supported by appropriate XML files.&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
Some key aspects of the HEPSYCODE flow for design system improvement are:&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
HEPSYCODE has demonstrated interoperability with S3D in the ECSEL project MegaMart2. Interoperability with ESDE can be established using SystemC simulation tool (HEPSIM2). Since the modeling methodology of Papyrus4Robotics is based on MARTE, potential interoperability with this tool seems possible with the new HEPSYCODE extension. HEPSYCODE models can be adapted to another Model of Computation such as Data Flow (DF), allowing integration with UNISS MDC and UNIMORE OODK. Therefore, the interoperability graph for HEPSYCODE is the following:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-17_1_02.png|800px|thumb|frame|center| HEPSYCODE interoperability graph]]&lt;br /&gt;
&lt;br /&gt;
==Current Status==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
==Design and Implementation==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=403</id>
		<title>WP6-17</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=403"/>
		<updated>2022-09-22T19:08:18Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HW/SW CO-DEsign of HEterogeneous Parallel dedicated Systems (HEPSYCODE)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSYCODE&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| TODO.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The increasing complexity of nowadays embedded digital systems, especially those based on advanced system-on-chip (SoC) that explicitly use heterogeneous parallel architectures to meet demanding timing performance and power consumption requirements, and their shorter time-to-market are radically changing standard industrial design methodologies. Traditional design approaches based on independent design of HW / SW components are no longer sufficient to efficiently exploit sub-areas of such SoCs. For this reason, system-level HW/SW co-design methods, where designers can early check system-level constraints and evaluate tradeoffs between cost and performance, are becoming increasingly important. These methods are capable of guiding system-level activities using appropriate models, metrics, and tools, and assisting the designer in all those tasks normally entrusted only to his or her experience (e.g., HW / SW architecture definition and system-level HW /SW partitioning ). In this context, this repository presents a reference methodology for electronic system level (ESL) HW/SW co-design, called HEPSYCODE, targeting heterogeneous parallel embedded systems. It has been extended in C4D to meet mixed criticality requirements and to be integrated into UML/MARTE specifications.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
Figure 23 shows the reference ESL HW/SW co-design flow while its main steps are briefly described below by giving emphasis (red elements in Figure 23) to the interactions with the HEPSIM2 simulator/analysis tool.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-17_1_01.png|600px|thumb|frame|center| Reference ESL HW/SW Co-Design Flow]]&lt;br /&gt;
&lt;br /&gt;
The entry point of the reference HW /SW co-design flow is the System Behaviour Model (SBM), which is based on a CSP -like MoC and described using SystemC. It is enriched by timing constraints (TCs) and reference inputs (RI). The first step of the reference flow, performed using HEPSIM2, is the functional simulation. It allows checking the correctness of the SBM with respect to RI. In the following steps, the reference ESL HW /SW co-design flow is supported by a Technologies Library (TL), which can be considered as a database that provides a characterization of all HW technologies used to define the so-called Basic Blocks (BBs) to build the final system. The TL contains information about available General-Purpose Processors (GPPs), Application Specific Processors (ASPs), Single Purpose Processors (SPPs), memory, and interconnects (i.e., physical links). The next step is co-analysis and co-estimation. During co-analysis, the SBM is analysed to evaluate three metrics: affinity, communication, and concurrency. The first one represents how much a CSP process is suitable to be executed on a specific processor class (i.e., GPP, ASP, SPP). The second one is the evaluation of the number of bits that the various CSP process pairs exchanged over the corresponding CSP channels during simulation. The third refers to how many concurrencies have been found during the simulation in the activities of the CSP processes and CSP channels (it is evaluated using HEPSIM2 in a given configuration). Co-stimation is responsible for estimating timing, size and load. Timing represents the time needed by each processor in the TL to execute an SBM statement. Size represents the number of bytes in RAM and ROM needed to store data and instructions for each CSP process implemented in SW. For the implementation of HW CSP processes, it is the number of mm2 (depending on the target HW technology,equivalent metrics such as Equivalent Gates, Look Up Table, etc. may be used) needed to implement processing, memory and interconnect elements. Load represents the utilization percentage that each CSP process, when implemented in SW, would impose on each GPP/ASP (used to define the BBs) to meet a timing constraint specified by the designer (i.e., it is actually a time to completion, TTC). After this step, the flow enters Design Space Exploration (DSE), which consists of 2 activities, &amp;quot;HW /SW Partitioning, Architecture Definition and Mapping&amp;quot; and &amp;quot;Timing HW /SW Co-simulation&amp;quot;. The first activity is responsible for defining the HW architecture of the target system and for HW /SW partitioning and mapping processes and channels to available processors and physical connections. This data is then provided to HEPSIM2 to verify that the proposed architecture or mapping meets the timing constraints. Data exchange between the different steps of the entire ESL HW /SW co-design flow is supported by appropriate XML files.&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
Some key aspects of the HEPSYCODE flow for design system improvement are:&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
==Current Status==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
==Design and Implementation==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=402</id>
		<title>WP6-17</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=402"/>
		<updated>2022-09-22T19:08:10Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HW/SW CO-DEsign of HEterogeneous Parallel dedicated Systems (HEPSYCODE)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSYCODE&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| TODO.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The increasing complexity of nowadays embedded digital systems, especially those based on advanced system-on-chip (SoC) that explicitly use heterogeneous parallel architectures to meet demanding timing performance and power consumption requirements, and their shorter time-to-market are radically changing standard industrial design methodologies. Traditional design approaches based on independent design of HW / SW components are no longer sufficient to efficiently exploit sub-areas of such SoCs. For this reason, system-level HW/SW co-design methods, where designers can early check system-level constraints and evaluate tradeoffs between cost and performance, are becoming increasingly important. These methods are capable of guiding system-level activities using appropriate models, metrics, and tools, and assisting the designer in all those tasks normally entrusted only to his or her experience (e.g., HW / SW architecture definition and system-level HW /SW partitioning ). In this context, this repository presents a reference methodology for electronic system level (ESL) HW/SW co-design, called HEPSYCODE, targeting heterogeneous parallel embedded systems. It has been extended in C4D to meet mixed criticality requirements and to be integrated into UML/MARTE specifications.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
Figure 23 shows the reference ESL HW/SW co-design flow while its main steps are briefly described below by giving emphasis (red elements in Figure 23) to the interactions with the HEPSIM2 simulator/analysis tool.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-17_1_01.png|800px|thumb|frame|center| Reference ESL HW/SW Co-Design Flow]]&lt;br /&gt;
&lt;br /&gt;
The entry point of the reference HW /SW co-design flow is the System Behaviour Model (SBM), which is based on a CSP -like MoC and described using SystemC. It is enriched by timing constraints (TCs) and reference inputs (RI). The first step of the reference flow, performed using HEPSIM2, is the functional simulation. It allows checking the correctness of the SBM with respect to RI. In the following steps, the reference ESL HW /SW co-design flow is supported by a Technologies Library (TL), which can be considered as a database that provides a characterization of all HW technologies used to define the so-called Basic Blocks (BBs) to build the final system. The TL contains information about available General-Purpose Processors (GPPs), Application Specific Processors (ASPs), Single Purpose Processors (SPPs), memory, and interconnects (i.e., physical links). The next step is co-analysis and co-estimation. During co-analysis, the SBM is analysed to evaluate three metrics: affinity, communication, and concurrency. The first one represents how much a CSP process is suitable to be executed on a specific processor class (i.e., GPP, ASP, SPP). The second one is the evaluation of the number of bits that the various CSP process pairs exchanged over the corresponding CSP channels during simulation. The third refers to how many concurrencies have been found during the simulation in the activities of the CSP processes and CSP channels (it is evaluated using HEPSIM2 in a given configuration). Co-stimation is responsible for estimating timing, size and load. Timing represents the time needed by each processor in the TL to execute an SBM statement. Size represents the number of bytes in RAM and ROM needed to store data and instructions for each CSP process implemented in SW. For the implementation of HW CSP processes, it is the number of mm2 (depending on the target HW technology,equivalent metrics such as Equivalent Gates, Look Up Table, etc. may be used) needed to implement processing, memory and interconnect elements. Load represents the utilization percentage that each CSP process, when implemented in SW, would impose on each GPP/ASP (used to define the BBs) to meet a timing constraint specified by the designer (i.e., it is actually a time to completion, TTC). After this step, the flow enters Design Space Exploration (DSE), which consists of 2 activities, &amp;quot;HW /SW Partitioning, Architecture Definition and Mapping&amp;quot; and &amp;quot;Timing HW /SW Co-simulation&amp;quot;. The first activity is responsible for defining the HW architecture of the target system and for HW /SW partitioning and mapping processes and channels to available processors and physical connections. This data is then provided to HEPSIM2 to verify that the proposed architecture or mapping meets the timing constraints. Data exchange between the different steps of the entire ESL HW /SW co-design flow is supported by appropriate XML files.&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
Some key aspects of the HEPSYCODE flow for design system improvement are:&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
==Current Status==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
==Design and Implementation==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=401</id>
		<title>WP6-17</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-17&amp;diff=401"/>
		<updated>2022-09-22T19:08:01Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HW/SW CO-DEsign of HEterogeneous Parallel dedicated Systems (HEPSYCODE)=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSYCODE&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNIVAQ&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| SystemC models, Platform model, TODO&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| TODO.&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The increasing complexity of nowadays embedded digital systems, especially those based on advanced system-on-chip (SoC) that explicitly use heterogeneous parallel architectures to meet demanding timing performance and power consumption requirements, and their shorter time-to-market are radically changing standard industrial design methodologies. Traditional design approaches based on independent design of HW / SW components are no longer sufficient to efficiently exploit sub-areas of such SoCs. For this reason, system-level HW/SW co-design methods, where designers can early check system-level constraints and evaluate tradeoffs between cost and performance, are becoming increasingly important. These methods are capable of guiding system-level activities using appropriate models, metrics, and tools, and assisting the designer in all those tasks normally entrusted only to his or her experience (e.g., HW / SW architecture definition and system-level HW /SW partitioning ). In this context, this repository presents a reference methodology for electronic system level (ESL) HW/SW co-design, called HEPSYCODE, targeting heterogeneous parallel embedded systems. It has been extended in C4D to meet mixed criticality requirements and to be integrated into UML/MARTE specifications.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
Figure 23 shows the reference ESL HW/SW co-design flow while its main steps are briefly described below by giving emphasis (red elements in Figure 23) to the interactions with the HEPSIM2 simulator/analysis tool.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-17_1_01.png|1000px|thumb|frame|center| Reference ESL HW/SW Co-Design Flow]]&lt;br /&gt;
&lt;br /&gt;
The entry point of the reference HW /SW co-design flow is the System Behaviour Model (SBM), which is based on a CSP -like MoC and described using SystemC. It is enriched by timing constraints (TCs) and reference inputs (RI). The first step of the reference flow, performed using HEPSIM2, is the functional simulation. It allows checking the correctness of the SBM with respect to RI. In the following steps, the reference ESL HW /SW co-design flow is supported by a Technologies Library (TL), which can be considered as a database that provides a characterization of all HW technologies used to define the so-called Basic Blocks (BBs) to build the final system. The TL contains information about available General-Purpose Processors (GPPs), Application Specific Processors (ASPs), Single Purpose Processors (SPPs), memory, and interconnects (i.e., physical links). The next step is co-analysis and co-estimation. During co-analysis, the SBM is analysed to evaluate three metrics: affinity, communication, and concurrency. The first one represents how much a CSP process is suitable to be executed on a specific processor class (i.e., GPP, ASP, SPP). The second one is the evaluation of the number of bits that the various CSP process pairs exchanged over the corresponding CSP channels during simulation. The third refers to how many concurrencies have been found during the simulation in the activities of the CSP processes and CSP channels (it is evaluated using HEPSIM2 in a given configuration). Co-stimation is responsible for estimating timing, size and load. Timing represents the time needed by each processor in the TL to execute an SBM statement. Size represents the number of bytes in RAM and ROM needed to store data and instructions for each CSP process implemented in SW. For the implementation of HW CSP processes, it is the number of mm2 (depending on the target HW technology,equivalent metrics such as Equivalent Gates, Look Up Table, etc. may be used) needed to implement processing, memory and interconnect elements. Load represents the utilization percentage that each CSP process, when implemented in SW, would impose on each GPP/ASP (used to define the BBs) to meet a timing constraint specified by the designer (i.e., it is actually a time to completion, TTC). After this step, the flow enters Design Space Exploration (DSE), which consists of 2 activities, &amp;quot;HW /SW Partitioning, Architecture Definition and Mapping&amp;quot; and &amp;quot;Timing HW /SW Co-simulation&amp;quot;. The first activity is responsible for defining the HW architecture of the target system and for HW /SW partitioning and mapping processes and channels to available processors and physical connections. This data is then provided to HEPSIM2 to verify that the proposed architecture or mapping meets the timing constraints. Data exchange between the different steps of the entire ESL HW /SW co-design flow is supported by appropriate XML files.&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
Some key aspects of the HEPSYCODE flow for design system improvement are:&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
==Current Status==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
==Design and Implementation==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=File:Wp6-17_1_01.png&amp;diff=400</id>
		<title>File:Wp6-17 1 01.png</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=File:Wp6-17_1_01.png&amp;diff=400"/>
		<updated>2022-09-22T19:06:54Z</updated>

		<summary type="html">&lt;p&gt;Univaq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Univaq</name></author>
	</entry>
</feed>