4 research outputs found

    Test Generation Based on CLP

    Get PDF
    Functional ATPGs based on simulation are fast, but generally, they are unable to cover corner cases, and they cannot prove untestability. On the contrary, functional ATPGs exploiting formal methods, being exhaustive, cover corner cases, but they tend to suffer of the state explosion problem when adopted for verifying large designs. In this context, we have defined a functional ATPG that relies on the joint use of pseudo-deterministic simulation and Constraint Logic Programming (CLP), to generate high-quality test sequences for solving complex problems. Thus, the advantages of both simulation-based and static-based verification techniques are preserved, while their respective drawbacks are limited. In particular, CLP, a form of constraint programming in which logic programming is extended to include concepts from constraint satisfaction, is well-suited to be jointly used with simulation. In fact, information learned during design exploration by simulation can be effectively exploited for guiding the search of a CLP solver towards DUV areas not covered yet. The test generation procedure relies on constraint logic programming (CLP) techniques in different phases of the test generation procedure. The ATPG framework is composed of three functional ATPG engines working on three different models of the same DUV: the hardware description language (HDL) model of the DUV, a set of concurrent EFSMs extracted from the HDL description, and a set of logic constraints modeling the EFSMs. The EFSM paradigm has been selected since it allows a compact representation of the DUV state space that limits the state explosion problem typical of more traditional FSMs. The first engine is randombased, the second is transition-oriented, while the last is fault-oriented. The test generation is guided by means of transition coverage and fault coverage. In particular, 100% transition coverage is desired as a necessary condition for fault detection, while the bit coverage functional fault model is used to evaluate the effectiveness of the generated test patterns by measuring the related fault coverage. A random engine is first used to explore the DUV state space by performing a simulation-based random walk. This allows us to quickly fire easy-to-traverse (ETT) transitions and, consequently, to quickly cover easy-to-detect (ETD) faults. However, the majority of hard-to-traverse (HTT) transitions remain, generally, uncovered. Thus, a transition-oriented engine is applied to cover the remaining HTT transitions by exploiting a learning/backjumping-based strategy. The ATPG works on a special kind of EFSM, called SSEFSM, whose transitions present the most uniformly distributed probability of being activated and can be effectively integrated to CLP, since it allows the ATPG to invoke the constraint solver when moving between EFSM states. A constraint logic programming-based (CLP) strategy is adopted to deterministically generate test vectors that satisfy the guard of the EFSM transitions selected to be traversed. Given a transition of the SSEFSM, the solver is required to generate opportune values for PIs that enable the SSEFSM to move across such a transition. Moreover, backjumping, also known as nonchronological backtracking, is a special kind of backtracking strategy which rollbacks from an unsuccessful situation directly to the cause of the failure. Thus, the transition-oriented engine deterministically backjumps to the source of failure when a transition, whose guard depends on previously set registers, cannot be traversed. Next it modifies the EFSM configuration to satisfy the condition on registers and successfully comes back to the target state to activate the transition. The transition-oriented engine generally allows us to achieve 100% transition coverage. However, 100% transition coverage does not guarantee to explore all DUV corner cases, thus some hard-to-detect (HTD) faults can escape detection preventing the achievement of 100% fault coverage. Therefore, the CLP-based fault-oriented engine is finally applied to focus on the remaining HTD faults. The CLP solver is used to deterministically search for sequences that propagate the HTD faults observed, but not detected, by the random and the transition-oriented engine. The fault-oriented engine needs a CLP-based representation of the DUV, and some searching functions to generate test sequences. The CLP-based representation is automatically derived from the S2EFSM models according to the defined rules, which follow the syntax of the ECLiPSe CLP solver. This is not a trivial task, since modeling the evolution in time of an EFSM by using logic constraints is really different with respect to model the same behavior by means of a traditional HW description language. At first, the concept of time steps is introduced, required to model the SSEFSM evolution through the time via CLP. Then, this study deals with modeling of logical variables and constraints to represent enabling functions and update functions of the SSEFSM. Formal tools that exhaustively search for a solution frequently run out of resources when the state space to be analyzed is too large. The same happens for the CLP solver, when it is asked to find a propagation sequence on large sequential designs. Therefore we have defined a set of strategies that allow to prune the search space and to manage the complexity problem for the solver

    Fault models and test generation for hardware-software covalidation

    Full text link

    Use of constraint solving in order to generate test vectors for behavioral validation

    No full text
    website : http://csdl2.computer.org/persagen/DLAbsToc.jsp?resourcePath=/dl/proceedings/hldvt/&toc=comp/proceedings/hldvt/2000/0786/00/0786toc.xml&DOI=10.1109/HLDVT.2000.889553International audienceValidation of VHDL descriptions at the early phases of the microelectronic design is one of the most time consuming task design. This paper presents a test vector generation method for behavioral VHDL design. This method analyzes control and dependence flow of VHDL program. We use the cyclomatic complexity, that is a software metric based on a graph associated with the control part of software: the control flow graph (CFG). Significant control flow paths are selected using a powerful algorithm: the Poole's algorithm. The execution of this set of paths satisfies the coverage of each decision outcome of the VHDL program. Any additional test path would be a linear combination of the basis paths already tested and therefore considered to be redundant. By considering the selected paths as a group of constraints, test data are generated and solved using constraint programming. These data form the test bench that test the VHDL description

    Contribution informatique en sciences pour l'environnement

    Get PDF
    Ce document propose de détailler mes activités scientifiques en vue d’obtention de l’Habilitation à Diriger des Recherches. Après un CV détaillé, on y retrouve un résumé des travaux de recherche et d’encadrement, les charges d’enseignement occupées, les fonctions d’intérêt collectif exercées, une liste exhaustive des publications, mes activités de recherche et une conclusion générale. La première période correspondant à mes activités de recherche a débuté au sein de l'équipe "Modélisation et Simulation" et concerne l'application de techniques de test de logiciel pour des descriptions de circuit électroniques décrits avec le langage VHDL. Il s'agit d'un langage de programmation utilisé dans l'industrie et permettant de modéliser et simuler des circuits électroniques mais aussi de les synthétiser, c'est à dire obtenir une description en terme de portes logiques de ceux-ci en vue de leur fabrication. Une fois synthétisé, il devient impossible de tester de façon exhaustive un circuit électronique en un temps raisonnable. En effet, le circuit électronique alors constitué de millions de portes logiques, contient un nombre de chemins à tester et donc à parcourir trop important pour tous les parcourir. Mon travail de recherche s'est ainsi focalisé sur la génération automatique de jeux de test à partir de descriptions écrites en VHDL. Ce type de description étant similaire à un programme, nous avonsexploré des techniques utilisées dans le domaine du test de logiciels.La seconde période fait suite à un changement d’équipe opéré en 2005. En effet, j’ai eu l’opportunité de m’investir dans deux thématiques propres à l’étude des systèmes énergétiques à sources d’Energies Renouvelables (EnR) et leur intégration dans les réseaux électriques insulaires, comme celui de la Corse. Au sein de l’équipe EnR de l'UMR 6134 j'ai pu développer des travaux de recherche au niveau de deux axes principaux.Le premier concerne la modélisation et la prédiction de phénomènes spatiotemporels. Nous nous sommes plus particulièrement intéressés à l’utilisation des réseaux de neurones artificiels appartenant aux techniques d'intelligence artificielle. Nous les avons principalement utilisées dans le cadre de la prédiction de séries temporelles d’ensoleillement et de pics de pollution atmosphérique. Nous avons étudié tout d'abord l'impact de prétraitements statistiques des séries temporelles sur la performance de prédicteurs. Aussi, au vue du nombre important de données dontnous disposions, nous avons étudié différentes méthodes de sélection de caractéristiques (ou de variables) avec l'objectif d'obtenir le modèle le plusperformant mais aussi le plus simple possible (principe de parcimonie). Enfin, lors de la comparaison de performance entre notre modèle et différentes méthodes de prédictions ("benchmarking" en anglais), nous avons constaté un chevauchement de celles-ci suivant l'horizon considéré. Nous avons alors étudié comment les hybrider, technique qui entre dans le cadre de la problématique plus large de la sélection de modèles. Une étude sur l'extension de ces méthodes pour les séries temporelles de vitesse de vent a été initiée et sera évoquée en perspectives dans la conclusion de ce mémoire. Enfin et plus récemment nous avons démarré des travaux concernant l'estimation de potentiel solaire également à l'aide réseaux de neurones artificiels. Il s'agit cette fois, non pas de prédire, mais d'estimer le rayonnement solaire incliné à partir du rayonnement solaire global horizontal et d'autres variables météorologiques disponibles.Le second axe propose d'étudier l’apport des langages informatiques de représentation des connaissances pour représenter la connaissance produite tout au long des processus d'aide à la décision. Des projets tels que les centrales photovoltaïques ou encore les fermes éoliennes constituent des exemples significatifs de processus de décision extrêmement complexe, difficile et conflictuel
    corecore