IntroEmbedded systems are used in areas (e.g. Medical,avionics) where reliability is paramount, hence they must be thoroughly tested before being deployed. The goal of this project is to develop a validation tool for embedded systems. In a system described in a high-level language, the objective is for the proposed tool to compute input patterns that give a specified level of confidence in the design.
Main GoalIn this project we propose to develop a coverage-directed co-validation tool for embedded systems, wherein coverage metrics are defined that quantitatively measure the degree of verification coverage of the design, be it hardware, software or a mixture of both.
A metric based on observability, rather than on controllability, will be used. Given a set of input patterns, this metric only takes into account those lines/instructions that have some effect on some primary output. An assignment that was not relevant to generate an observable output value cannot be considered as being covered.
Input pattern generation
Given the system description and a user-specified coverage level, the objective is for the proposed tool to compute input patterns that exercise specified paths in the combined hardware/software description of an embedded system described in a high-level language.
For the system description, in a first approach, we intend to use SystemC, which is based in a C++ class library, allowing the specification of the hardware and software components. Applying our method to a SystemC system specification we are able to obtain input test vectors that allow a certain coverage of an embedded system.
The next step is to actually run the software in a microprocessor simulator, leaving the hardware in a structural SystemC description and generate the input vectors taking into account the interaction of hardware and software. This approach will give us a very accurate set of input vectors that allow a certain coverage for an embedded system.
Validation of the methodology
As a demonstrator for the proposed co-validation tool, we propose to design and develop an application for echo cancellation. This is an embedded system, based on adaptive filtering. The digital filter itself will be implemented in hardware and the algorithm to determine the optimum filter coefficients at each moment will be implemented in software.