WP6-ESDE: Difference between revisions

From COMP4DRONES
Jump to navigation Jump to search
 
(31 intermediate revisions by the same user not shown)
Line 20: Line 20:
|}
|}


The design approach, yet used for some GLAD+ development and explained in [[WP5-15_2]] has proven to be useful and enables model building/refinement relying on raw sensor data logged at past captures.
In the past, for the design and development of a complete positioning and attitude solution like [http://glad.acorde.com GLAD], ACORDE relied on a conventional design flow where a former hih-level model using Matlab was used. Then a manual translation was done to C++, which was tested on the final physical prototype. This type of flow is illustrated in the following picture:
However, it has also some important disadvantages. One of them is associated to the conventional, sequential HW/SW development. HW platform design and implementation comes before driver development or RTOS port (if required). In turn, HW/SW platform availability is a pre-condition for application development. Once the application is ready, it is possible to evaluate if the performance (timing, memory, energy and power consumption, etc) and validate it. As well as the long latencies involved, the flow adds the risk of late finding of performance bottlenecks that involve a drastic re-design, of hardware in the worst case. To these drawbacks, we need to add the high cost of translation of Matlab models to C/C++ implementation, and the traceability problems generated at the validation time.
 
[[File:wp3-15_2_04.png|frame|center| Conventional design flow followed by ACORDE for the design and development of GLAD]]
 
Yet, this design flow is improvable in many aspects. While usable and proven, this approach yet presented some important disadvantages:
 
* Enforcing a sequential HW/SW development. HW/SW platform availability is a pre-condition for application development.  
* Long simulation times and lacks on the modelling language (e.g., no time modelling)
* High translation effort from the high-level model (in Matlab) to the implementation language.
 
==Contribution and Improvements==
 
In order to overcome the previos drawbacks, ACORDE has worked in COMP4DRONES on an ESL embedded Software Design Environment (ESDE) for **better productivity in embedded system design and development, and specifically suited to positioning systems*.
The basic idea of ESDE is summarized in the following illustration
 
[[File:ACORDE-ESDE_nutshell.gif|800px]]
 
ESDE enables some key features for productivity improvement:
 
* Building fast especifications/models, able to capture key concerns of the application (modularity, concurrency, time model) under a unified and standard language (SystemC).
* Executable specifications, able to significantly speed-up functional validation vs Matlab model execution.
* Automated embedded software generation mechanisms that avoid a significant translation effort from the system model to the implementation binary code.
* The possibility to develop the firmware in parallel with the HW development, by relying on a virtual platform.
* The possibility to validate the production firmware (or a very close version to it), on top of a virtual platform, as a digital twin of the final physical platform


== Detailed Description ==
== Detailed Description ==


In COMP4DRONES, ACORDE is developing and evaluating a newer approach to overcome those drawbacks. It is sketched in Figure 69. The ESDE framework developed in WP6 [33], is encrusted in at a top level layer, for a system-level approach to embedded software design and development, to encompass the conventional HW/SW platform development capabilities and processes of ACORDE.
A bit more detailed description of the ESDE framework developed by ACORDE in COMP4DRONES is sketched in the following picture.


[[File:wp3-15_2_05.png|frame|center| System-level methodology for the design and implementation of outdoor geo-referenced position&attitude estimation systems in COMP4DRONES]]
[[File:wp3-15_2_05.png|frame|center| System-level methodology for the design and implementation of outdoor geo-referenced position&attitude estimation systems in COMP4DRONES]]


== Status after C4D (Demos) and Future ==


==Contribution and Improvements==
In C4D, ESDE has been developped to support the especification a core functionality for attitude estimation (a multi-baseline attitude estimation or mbattes),  in SystemC, which can be easily compiled into an executable model for its validation, as it is shown in this [https://youtu.be/qkNS-dlBnR0 first demo video].
Some key aspects of the ESDE flow for productivity improvement are:


* The fast functional models that can be built at the top lever, able to significantly speed-up functional validation vs Matlab model execution.
Moreover, ESDE allows the targeting of this SystemC specification onto C++ based implementation (as shown in a [https://youtu.be/cG9u-16cVU8 second video]), which can be automatically produced to different targets.
* The automated embedded software generation mechanisms that avoid a significant translation effort from the system model to the implementation C/C++ code.
The targetting to a Linux-based platform supporting posix threads is illustrated on the following video, where the targeting of the mbattes SystemC specification is targeted to a Linux-based target, to generate an implementation (executable file), which is launched on a PC
* The possibility to parallelize of the development of firmware (binary or object file), or very close version of it with HW development, by relying on a high-fidelity virtual platform.
* The possibility to validate firmware (without availability of the physical platform), eventually using several virtual platforms for test parallelization


== Interoperability with other C4D tools ==
In [https://youtu.be/L8kQOf6kl88 this clip], the final result of the execution shows the correctness of the implementation.


TBC
ESDE remains as a live project in ACORDE, which as well as positioning systems, have potential to highly improve embedded development productivity.
Currently, extensions for generic procedures for traceability are being developed to enable performance analysis based on the VP target.


==Current Status==
== Interoperability ==


ESDE models are written in standard SystemC.
The implementations target standard C++. For implementing RTOS services, it currently uses either POSIX API or FreeRTOS API.


==Design and Implementation==
System-Level application models relie on modules, channels, processes elements, which facilitates mapping with other C4D frameworks, like S3D. This has been tested for the mbattes example in a collaboration between ACORDE and the University of Cantabria.

Latest revision as of 22:13, 13 October 2022

ESL embedded Software Design Environment (ESDE)

ID WP6-ESDE
Contributor ACORDE
Levels Tool, Platform
Require Linux, Virtual Platform Development Platform
Provide Executable System-Level modelling, automated embedded software generation, Virtual Platform based validation
Input SystemC models, RTOS API target, Platform target, Platform model
Output Functional and time performance validation. Close to production firmware generation and validation.
C4D tooling n.a.
TRL 4

In the past, for the design and development of a complete positioning and attitude solution like GLAD, ACORDE relied on a conventional design flow where a former hih-level model using Matlab was used. Then a manual translation was done to C++, which was tested on the final physical prototype. This type of flow is illustrated in the following picture:

Conventional design flow followed by ACORDE for the design and development of GLAD

Yet, this design flow is improvable in many aspects. While usable and proven, this approach yet presented some important disadvantages:

  • Enforcing a sequential HW/SW development. HW/SW platform availability is a pre-condition for application development.
  • Long simulation times and lacks on the modelling language (e.g., no time modelling)
  • High translation effort from the high-level model (in Matlab) to the implementation language.

Contribution and Improvements

In order to overcome the previos drawbacks, ACORDE has worked in COMP4DRONES on an ESL embedded Software Design Environment (ESDE) for **better productivity in embedded system design and development, and specifically suited to positioning systems*. The basic idea of ESDE is summarized in the following illustration

ACORDE-ESDE nutshell.gif

ESDE enables some key features for productivity improvement:

  • Building fast especifications/models, able to capture key concerns of the application (modularity, concurrency, time model) under a unified and standard language (SystemC).
  • Executable specifications, able to significantly speed-up functional validation vs Matlab model execution.
  • Automated embedded software generation mechanisms that avoid a significant translation effort from the system model to the implementation binary code.
  • The possibility to develop the firmware in parallel with the HW development, by relying on a virtual platform.
  • The possibility to validate the production firmware (or a very close version to it), on top of a virtual platform, as a digital twin of the final physical platform

Detailed Description

A bit more detailed description of the ESDE framework developed by ACORDE in COMP4DRONES is sketched in the following picture.

System-level methodology for the design and implementation of outdoor geo-referenced position&attitude estimation systems in COMP4DRONES

Status after C4D (Demos) and Future

In C4D, ESDE has been developped to support the especification a core functionality for attitude estimation (a multi-baseline attitude estimation or mbattes), in SystemC, which can be easily compiled into an executable model for its validation, as it is shown in this first demo video.

Moreover, ESDE allows the targeting of this SystemC specification onto C++ based implementation (as shown in a second video), which can be automatically produced to different targets. The targetting to a Linux-based platform supporting posix threads is illustrated on the following video, where the targeting of the mbattes SystemC specification is targeted to a Linux-based target, to generate an implementation (executable file), which is launched on a PC

In this clip, the final result of the execution shows the correctness of the implementation.

ESDE remains as a live project in ACORDE, which as well as positioning systems, have potential to highly improve embedded development productivity. Currently, extensions for generic procedures for traceability are being developed to enable performance analysis based on the VP target.

Interoperability

ESDE models are written in standard SystemC. The implementations target standard C++. For implementing RTOS services, it currently uses either POSIX API or FreeRTOS API.

System-Level application models relie on modules, channels, processes elements, which facilitates mapping with other C4D frameworks, like S3D. This has been tested for the mbattes example in a collaboration between ACORDE and the University of Cantabria.