2.2 Scheduling for Improved Testability in Behavioural Synthesis
New strategies have appeared in the behavioural synthesis, to take into account testability at the same time as the surface and / or performance [10, 11, 12, 13]. In this way, testability problems can be avoided or resolved by the most appropriate decisions for the architecture definition. The scheduling technique is time constrained which minimizes the number of resources (operations) and the number of registers based on a cost function. This improves the life time of primary input and primary output variables, reduces the life times of intermediate variables and hence improves the controllability and observability [10]. The testability of the register transfer level (RTL) structure generated by this schedule is therefore improved. Particularly, in the context of on-line testability, each functional unit (FU) of a **data** path is tested at least once within their idle-time. A given scheduled **data** **flow** graph is utilized to estimate the number of FUs and their idle periods in which certain testing operations are scheduled [11]. Testing time is reduced by minimizing the number of types of operations assigned to each module needed to synthesize a given scheduled **data** **flow** graph (SDFG), and by creating sufficient idle time [12]. The time constrained scheduling and resource constrained scheduling take any behavioural description represented as a **data** **flow** graph as input and generate a **data** path composed of resources like modules, registers and multiplexers [13].

En savoir plus
6.3.1 Definition of S DVG
Graphs can be used to describe many structures in computer science: program control flows, communication processes, computer networks, pointer structure on the heap and many oth- ers. In fact, for most activities in software development, many types of visual notations have been introduced, including U ML , state diagrams, control flows graphs, block diagrams. These notations construct models that can be seen as graphs. This section intends to focus on graphs which represent expressions for computing the variable values in programs. We present basic definitions, including the notion of gated φ -function, and introduce a linear syntax presentation for terms represented as graphs. Finally, we provide the definition of our considered type of graph, synchronous **data**-**flow** value-graph. The interested readers can refer to [ 53 ] for more detailed discussion on term graphs and linear syntax presentation for graphs.

En savoir plus
195 En savoir plus

2.1 Case study
The case study is focusing on functional validation of some in- strument clusters. By applying various **data**-**flow** image processing effects, such as blending, warping and scaling, an instrument cluster system improves driver experience with useful and high quality 2D/3D Human-Machine Interface (HMI). The embedded hardware platforms used to develop these systems are more and more highly configurable, but constrained in terms of architecture and capaci- ties. Furthermore, multiple graphic **data**-flows variants can meet the client HMI requirements, but they also depend on the plat- form architectures and capacities. We consider this case study as representative of variability-intensive **data**-**flow** oriented systems. Different forms of variability, from high-level **data**-flows to low- level platforms lead to a huge number of possible system solutions, which feasibility is extremely complex and tedious to predetermine early in the development process.

En savoir plus
The Language Signal [ 3 , 7 ] is a synchronous **data**-**flow** language that allows the specification of multi-clocked systems. Signal handles unbounded sequences of typed values (x(t)) t∈N , called signals, denoted by x. Each signal is implicitly indexed by a logical clock indicating the set of instants at which the signal is present, noted Cx. At a given instant, a signal may be present where it holds a value, or absent where it holds no value (denoted by ⊥). Given two signals, they are synchronous iff they have the same clock. In Signal, a process (written P or Q) consists of the synchronous composition, noted |, of equations over signals x, y, z, written x := y op z or x := op(y, z), where op is an operator. Naturally, equations and processes are concurrent.

En savoir plus
• Second, they are synchronous: the equations involve values of the different quantities at the same logical instant.
Classical programming methods are not so well adapted in specifying and pro- gramming such algorithms; asynchronous imperative languages require the ex- plicit management of low level aspects of the implementation (like the sequencing of computations imposed by **data** dependencies), and of the temporal aspects (e.g., down-samplings on a **flow** of **data**, multi-rate parallel computations), for which there is no well-founded support or model. Therefore, we use the synchronous **data** **flow** language S IGNAL , providing the adequate high level of abstraction for declarative specification, as well as a coherent and powerful model of time. Visual Servoing Control. The control of the camera is performed in a control servo loop where a vision system is included as a specific sensor dedicated to a task. In order to present the kind of equations that are programmed, we describe a general and simple control law for the positioning with respect to a static object, as given in [11]:

En savoir plus
Keywords—Formal verification, Translation validation, Vali- dated compiler, Code generator, Synchronous programs.
I. I NTRODUCTION
Adhering to the synchronous paradigm, synchronous **data**- **flow** languages such as L USTRE [10] or S IGNAL [8] have been introduced and successfully used to design and implement em- bedded software architectures and critical real-time systems. For critical application high-assurance systems, reliability in code generated from these tools is tantamount: generated code shall behave as prescribed by the semantics of the source spec- ification (e.g. program proofs, model checking, traceability and qualification, etc). However, and before code can be generated, the compilation of high-level, synchronous, specification is a complex process that involves many analysis and program transformation stages. Some transformations may introduce additional informations or constraints, to refine the meaning of the original specification and/or remove or specialize the behavior of the source specification, like static scheduling. Thus, and even if compliant with a ”five-nines” (99.999%) reliability, large-scale use of high-TRL compilers for large specifications may improbably yet not uncertainly yield bugs. One, nonetheless, expects the formally verified behavior of the source specification to be preserved in the code automatically generated from it and naturally requires it to be formally checked as well.

En savoir plus
The present paper provides a verification framework to prove the value- equivalence of variables and applies this approach to the synchronous **data**-**flow** compiler Signal. With the simplicity of the graph normalization, we believe that translation validation of synchronous **data**-**flow** value-graph for the industrial compiler Signal is feasible and efficient. Moreover, the normalization process can always be extended by adding new rewrite rules. That makes the translation validation of Sdvg scalable and flexible.

The Data Flow Machine would generate a set of streams where each stream is the sequence of intensity values for each pixel in a given column of the image array.. [r]

ulate. Moreover, a direct consequence of this result is that it is not possible to determine whether a Scufl workflow will complete or not.
Beyond those theoretical considerations, we pre- sented an example of a development of a complex work- **flow** exhibiting strong control requirements with a sim- ple **data** **flow** oriented language. It exemplifies the use of specific patterns (in particular sub-workflows and self-looping) to solve expressiveness problems such as the definition of global variables. Thus, in spite of its simplicity, Scufl seems to be sufficiently expressive to describe complex applications. Adopting more com- plex languages including a whole set of control con- struct does not seem to be mandatory.

En savoir plus
DFG with constant multipliers; (c) TED after introducing
shift variable L; (d) Final DFG with shifters, corresponding
to the expression F = ((a + b) << 2 − b) << 1 − a.
tion and resource binding. The right part of the figure shows the actual TDS optimization **flow**. It transforms the **data** **flow** graph extracted from the initial specification into an opti- mized DFG using a host of TED-based decomposition and DFG optimization techniques, and passes the modified DFG to a high-level synthesis tool. Currently, an academic syn- thesis tool, GAUT [12], is used for front-end parsing and for the final high level synthesis, but any of the existing HLS tools can be used for this purpose (provided that compatible format interfaces are available).

En savoir plus
Abstract : A future is a place-holder for a value being computed, and we generally say that a future is resolved when the associated value is computed. In existing languages futures are either implicit, if there is no syntactic or typing distinction between futures and non-future values, or explicit when futures are typed by a parametric type and dedicated functions exist for manipulating futures. One contribution of this article is to advocate a new form of future, named **data**-**flow** explicit futures, with specific typing rules that do not use classical parametric types. The new futures allow at the same time code reuse and the possibility for recursive functions to return futures like with implicit futures, and let the programmer declare which values are futures and where synchronisation occurs, like with explicit futures. We prove that the obtained programming model is as expressive as implicit futures but exhibits a different behaviour compared to explicit futures. The second and main contribution of this article is an exhaustive overview and precise comparison of the semantics of futures in existing program- ming languages. We show that, when classifying future implementations, the most distinctive aspect is the nature of the synchronisation not the explicitness of the future declaration.

En savoir plus
Project-Teams SPADES
Research Report n° 8333 — July 2013 — 21 pages
Abstract: Dataflow programming models are well-suited to program many-core streaming appli-
cations. However, many streaming applications have a dynamic behavior. To capture this behavior, parametric dataflow models have been introduced over the years. Still, such models do not allow the topology of the dataflow graph to change at runtime, a feature that is also required to program modern streaming applications. To overcome these restrictions, we propose a new model of com- putation, the Boolean Parametric **Data** **Flow** (BPDF) model which combines integer parameters (to express dynamic rates) and boolean parameters (to express the activation and deactivation of communication channels). High dynamicity is provided by integer parameters which can change at each basic iteration and boolean parameters which can even change within the iteration. The major challenge with such dynamic models is to guarantee liveness and boundedness. We present static analyses which ensure statically the liveness and the boundedness of BDPF graphs. We also introduce a scheduling methodology to implement BPDF graphs on highly parallel plat- forms. Finally, we demonstrate our approach using a video decoder case study.

En savoir plus
Chapter 8
Conclusion and Perspectives
Conclusion
In recent decades, electronic embedded systems have revolutionized our societies in daily lives. The increase in the application demands and the fast improvement in platform architectures led to more and more complex embedded systems. In order to ensure the optimal use of resources, several applications from different computing domains are simultaneously executed on the same platform. Advanced Driver Assistance Systems (ADAS) [117, 66] are typical examples of these applications. Their purpose is to assist drivers in making safety-related decisions, provide signals in possibly dangerous driving situations, and execute counteractive measures. These applications gather best-effort jobs (e.g. image processing for analyzing complex scenes) and critical real-time tasks (e.g. emergency braking). Therefore, this type of applications require a research effort in order to be efficiently modeled and executed. In this thesis, our study was focused on modeling and scheduling critical real-time systems using **data** **flow** formalisms.

En savoir plus
192 En savoir plus

Our contribution. In this paper, we extend acceleration techniques to **data**-**flow** analysis and we apply these ideas to interval analysis. Acceleration techniques for (concrete) reachability set computations may be equivalently formalized “se- mantically” in terms of control-**flow** path languages [LS05] or “syntactically” in terms of control-**flow** graph unfoldings [BFLS05]. We extend these concepts to the MFP solution in a generic **data**-**flow** analysis framework, and we establish several links between the resulting notions. It turns out that, for **data**-**flow** anal- ysis, the resulting “syntactic” notion, based on graph flattenings, is more general that the resulting “semantic” notion, based on restricted regular expressions. We then propose a generic flattening-based semi-algorithm for computing the MFP solution. This semi-algorithm may be viewed as a generic template for applying acceleration-based techniques to constraint solving.

En savoir plus
Abstract. In abstract interpretation-based **data**-**flow** analysis, widening opera-
tors are usually used in order to speed up the iterative computation of the mini- mum fix-point solution (MFP). However, the use of widenings may lead to loss of precision in the analysis. Acceleration is an alternative to widening that has mainly been developed for symbolic verification of infinite-state systems. In- tuitively, acceleration consists in computing the exact effect of some control- **flow** cycle in order to speed up reachability analysis. This paper investigates acceleration in convex **data**-**flow** analysis of systems with real-valued variables where guards are convex polyhedra and assignments are translations. In partic- ular, we present a simple and algorithmically efficient characterization of MFP- acceleration for cycles with a unique initial location. We also show that the MFP- solution is a computable algebraic polyhedron for systems with two variables.

En savoir plus
The remainder of this paper is organized as follows. Sec- tion 2 introduces the Signal language. Section 3 presents the abstraction that represents the clock constraints in terms of first-order logic formulas. The definition and properties of SDGs are detailed in Section 4. In Section 5, we consider the definitions of correct transformation on clocks and SDGs which formally prove the conformance between the original specification and its compiled counterpart w.r.t the clock se- mantic and the **data** dependence. It also addresses the ap- plication of the verification process to the Signal compiler, and its integration into the Polychrony toolset [32]. Section 6 presents some related works, concludes our work and out- lines future directions.

En savoir plus
The idea consists in introducing the concept of running modes into Scade models to facilitate the specification of the mainly regular systems and to give a more readable design methodolo[r]

The following data has been collected: number of nodes, number of node executions per steady state, schedule size and buffer size for pseudo single appearance and [r]

109 En savoir plus

This paper introduces open closure types, that is, function types that are deco- rated with type contexts. They are used to track **data**-ﬂow from the environment into the function closure. A simply-typed lambda calculus is used to study the pro- perties of the type theory of open closure types. A distinctive feature of this type theory is that an open closure type of a function can vary in diﬀerent type contexts. To present an application of the type theory, it is shown that a type derivation es- tablishes a simple non-interference property in the sense of information-ﬂow theory. A publicly available prototype implementation of the system can be used to expe- riment with type derivations for example programs.

En savoir plus
Property 4-2: A rCq schema will always produce congruent histories at fault- free outputs in a bounded amount of time whenever all restoring buffers and associated time-o[r]