2003-03-17T23:59:59Z
2022-02-14T10:21:30Z
Validation de descriptions VHDL fondée sur des techniques issues du domaine du test de logiciels
2001
2001-01-01
L' objectif de cette dissertation est de développer une approche originale de validation de circuits digitaux complexes décrits dans le langage VHDL. Nous proposons de générer automatiquement, à partir d'une description VHDL comportemental au niveau algorithmique, les vecteurs de test à appliquer sur une description de niveau RTL. Nous présentons d'abord la validation de descriptions VHDL au niveau algorithmique dans le contexte général du processus de conception de circuits complexes. Ce type de description étant similaire à un programme, nous explorons les techniques utilisées dans le domaine du test de logiciels, notamment celles basées sur un critère de couverture. Nous présentons le critère du test structuré, qui est fondé sur l'utilisation du graphe de flot de contrôle du programme sous test, et de la complexité cyclomatique de McCabe comme index du nombre de chemins à tester. Nous présentons également l'algorithme de Poole qui permet de générer cet ensemble de chemins. Cependant, le langage VHDL possède des caractéristiques que l'on ne retrouve pas dans les langages de programmation traditionnels (notion de temps, interconnexions de " process " s'exécutant en parallèle, mécanisme de " retard delta "). Nous proposons donc une modélisation adéquate sous forme de graphes, permettant d'appliquer les techniques précédentes à des descriptions VHDL restreintes à un sous-ensemble prenant en compte un style de description algorithmique : un graphe de flot de contrôle, un graphe de modélisation de " process ", un graphe de dépendance. Nous exposons ensuite une méthodologie pour la génération de vecteurs de test à partir des chemins générés depuis ces graphes : application de l'algorithme de Poole sur la base de la complexité cyclomatique, analyse et modification éventuelle des chemins, génération et résolution des contraintes, extraction des vecteurs de test. L'approche est finalement illustrée par la réalisation du prototype logiciel GENESI qui nous a permis d'obtenir des résultats sur les " benchmark ITC'99 ".
The objective of this work is to develop an original validation approach for complex digital systems in VHDL language. We propose to generate automatically from a behavioral VHDL description at the algorithmic level, the test vectors to be applied to a description at the register transfer level. First, we present the validation of VHDL descriptions at the algorithmic level, in the general context of the design process of complex circuits. Since this type of description is similar to a software program, we explore the techniques used in the software testing field, in particular those using coverage criteria. We present the structured test criterion, which is based on the control flow graph of the program under test, and on the cyclomatic complexity of McCabe as an index of the number of paths to be tested. We also present the Poole's algorithm which allows to generate this set of paths. However, VHDL language contains features which are not found in traditional software programming languages (concept of time, multiple communicating concurrent processes, delta delay mechanism). We thus propose an internal model in the form of graphs, allowing to apply the preceding techniques on VHDL descriptions: a control flow graph, a process model graph, a dependence graph. We restrict VHDL to a subset that is related to the algorithmic style. Then we expose a methodology for the test vectors generation in order to execute selected paths: application of the Poole's algorithm on the use of cyclomatic complexity, analysis and possible modification of the paths, constraints generation and solving, extraction of the test vectors. The approach is finally illustrated by the implementation of the software prototype GENESI which enabled us to obtain results on ITC'99 benchmarks.
VHDL (langage de description de matériel informatique)
Logiciels -- Validation
Simulation par ordinateur -- Logiciels
Programmation par contraintes
Paoli, Christophe
Santucci, Jean-François
Corte