126
Vérification fonctionnelle des systèmes numériques Introduction Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d’Ingénierie et de Gestion du Canton de Vaud This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License Février 2017 Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 1 / 75

Vérification fonctionnelle des systèmes numériques

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Vérification fonctionnelle des systèmes numériques

Vérification fonctionnelle des systèmes numériquesIntroduction

Yann Thoma

Reconfigurable and Embedded Digital Systems InstituteHaute Ecole d’Ingénierie et de Gestion du Canton de Vaud

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License

Février 2017

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 1 / 75

Page 2: Vérification fonctionnelle des systèmes numériques

Plan

1 Introduction

2 Vérification formelle

3 Vérification par simulation

4 Vérification automatique

5 Bancs de tests

6 Vérification par émulation

7 Langages

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 2 / 75

Page 3: Vérification fonctionnelle des systèmes numériques

Introduction

But de la vérification

Répondre à 2 questions

Est-ce que ça marche?Est-ce qu’on est sûr?Vraiment?Non, mais vraiment vraiment?Sans plaisanter?

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 3 / 75

Page 4: Vérification fonctionnelle des systèmes numériques

Introduction

But de la vérification

Répondre à 2 questions

Est-ce que ça marche?

Est-ce qu’on est sûr?Vraiment?Non, mais vraiment vraiment?Sans plaisanter?

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 3 / 75

Page 5: Vérification fonctionnelle des systèmes numériques

Introduction

But de la vérification

Répondre à 2 questions

Est-ce que ça marche?Est-ce qu’on est sûr?

Vraiment?Non, mais vraiment vraiment?Sans plaisanter?

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 3 / 75

Page 6: Vérification fonctionnelle des systèmes numériques

Introduction

But de la vérification

Répondre à 2 questions

Est-ce que ça marche?Est-ce qu’on est sûr?Vraiment?

Non, mais vraiment vraiment?Sans plaisanter?

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 3 / 75

Page 7: Vérification fonctionnelle des systèmes numériques

Introduction

But de la vérification

Répondre à 2 questions

Est-ce que ça marche?Est-ce qu’on est sûr?Vraiment?Non, mais vraiment vraiment?

Sans plaisanter?

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 3 / 75

Page 8: Vérification fonctionnelle des systèmes numériques

Introduction

But de la vérification

Répondre à 2 questions

Est-ce que ça marche?Est-ce qu’on est sûr?Vraiment?Non, mais vraiment vraiment?Sans plaisanter?

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 3 / 75

Page 9: Vérification fonctionnelle des systèmes numériques

Introduction

Vérification : oui, mais ...

On vérifie ...Quoi?Pourquoi?Quand?Comment?

Cette question sera centrale durant ce cours

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 4 / 75

Page 10: Vérification fonctionnelle des systèmes numériques

Introduction

Première question: Quoi?

Circuits programmablesASICDans le cadre de ce cours, seulement des circuits digitauxLa vérification du logiciel est également importante

N’entre pas dans le cadre de ce coursOffre plus de flexibilité et d’observabilitéUn patch, c’est si facile...

Vraiment?

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 5 / 75

Page 11: Vérification fonctionnelle des systèmes numériques

Introduction

Première question: Quoi?

Vérification du bon fonctionnement du systèmeQu’est-ce que cela signifie?Vérification de chaque module

Vérification exhaustive possible?

Un détecteur de flanc:

A

CLK

QDD

Vérification exhaustive: OK

Un additionneur 64-bits:

ab

cnn

n

Vérification exhaustive: Non2128 = 3.4× 1038

combinaisons d’entrées...

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 6 / 75

Page 12: Vérification fonctionnelle des systèmes numériques

Introduction

Première question: Quoi?

Vérification du bon fonctionnement du systèmeQu’est-ce que cela signifie?Vérification du système entier (System on Chip, par exemple)

Impossible de faire une vérification exhaustive⇒ Choix de cas intéressants⇒ Vérification aléatoire

http://www.xbitlabs.com/news/mobile/display/20080603141353_Nvidia_Unleashes_Tegra_System_on_Chip_for_Handheld_Devices.html

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 7 / 75

Page 13: Vérification fonctionnelle des systèmes numériques

Introduction

Première question: Quoi?

Vérification du bon fonctionnement du systèmeQu’est-ce que cela signifie?Tendance actuelle: Power aware verification

SOCs ont plusieurs alimentationsCertains sous-systèmes peuvent être déconnectés ponctuellementA la frontière du digital et de l’analogique

http://www.techdesignforums.com/practice/technique/emulation-system-level-power-verification/

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 8 / 75

Page 14: Vérification fonctionnelle des systèmes numériques

Introduction

Question: Pourquoi?

Dépannage d’un PLD programméTrès coûteuxVoire impossible

Dépannage d’un ASICTrès coûteux (en temps et argent)Refonte du circuit

Vérification indispensable pour valider le systèmeNécessite des outils performantsUne méthodologie rigoureuse

La vérification est le défi de la conception des systèmesnumériques

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 9 / 75

Page 15: Vérification fonctionnelle des systèmes numériques

Introduction

Vérification: concept

Buts1 Vérifier la conformité du système avec le cahier des charges2 Détecter les erreurs au plus vite3 Assurer un fonctionnement correct après synthèse et intégration

Difficulté1 Maîtriser les coûts de la vérification

Environ 50-60% du temps ingénieur2 Garantir un fonctionnement correct

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 10 / 75

Page 16: Vérification fonctionnelle des systèmes numériques

Introduction

Question: Quand?

Il semble évident d’essayer de détecter les erreurs le plus vitepossibleTests unitaires sur les modules au fur et à mesure de laconception/implémentationTests systèmes dès que possible

Nettement plus délicats à mettre en placeTemps de simulation importantsQuand? La nuit...

Pour un ASICLorsque le circuit est fondu, c’est trop tard...Tous les tests doivent être fait avantPrévoir la possibilité de tester après (cas d’un prototypenotamment)Concept intéressant: Design for Test

Le système embarque de la logique permettant de le tester durantson fonctionnementPermet de faire du diagnosticExemple: JTAG, BIST

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 11 / 75

Page 17: Vérification fonctionnelle des systèmes numériques

Introduction

Conception/Vérification: décomposition

ValidationDesign

Sytème

Sous-sytèmes

Modules

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 12 / 75

Page 18: Vérification fonctionnelle des systèmes numériques

Introduction

Conception/Vérification: décomposition

ValidationDesign

Sytème

Erreur Détection

Erreur

Sous-sytèmes

Modules

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 13 / 75

Page 19: Vérification fonctionnelle des systèmes numériques

Introduction

Conception/Vérification: décomposition

ValidationDesign

Sytème

Modèle de

spécification

Sous-sytèmes

Modules

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 14 / 75

Page 20: Vérification fonctionnelle des systèmes numériques

Introduction

Vérification: les 2 questions

Les deux grandes questions de la vérification

1 Est-ce que ça marche?Est-ce que le système fonctionne correctement?Les erreurs sont-elles correctement détectées?

Exemple de banc de test qui passe tous les tests

entity MonSuperDesign_tb isend MonSuperDesign_tb;

architecture MaSuperArchitecture of MonSuperDesign_tb isbegin

process isbegin

report "Everything is fine";end process;

end MaSuperArchitecture;

2 Est-ce qu’on est sûr? (a-t-on fini?)A-t-on réalisé assez de tests?Facile avec un petit design, très difficile avec un design complexe

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 15 / 75

Page 21: Vérification fonctionnelle des systèmes numériques

Introduction

Vérification: les 2 questions

Les deux grandes questions de la vérification1 Est-ce que ça marche?

Est-ce que le système fonctionne correctement?Les erreurs sont-elles correctement détectées?

Exemple de banc de test qui passe tous les tests

entity MonSuperDesign_tb isend MonSuperDesign_tb;

architecture MaSuperArchitecture of MonSuperDesign_tb isbegin

process isbegin

report "Everything is fine";end process;

end MaSuperArchitecture;

2 Est-ce qu’on est sûr? (a-t-on fini?)A-t-on réalisé assez de tests?Facile avec un petit design, très difficile avec un design complexe

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 15 / 75

Page 22: Vérification fonctionnelle des systèmes numériques

Introduction

Vérification: les 2 questions

Les deux grandes questions de la vérification1 Est-ce que ça marche?

Est-ce que le système fonctionne correctement?

Les erreurs sont-elles correctement détectées?

Exemple de banc de test qui passe tous les tests

entity MonSuperDesign_tb isend MonSuperDesign_tb;

architecture MaSuperArchitecture of MonSuperDesign_tb isbegin

process isbegin

report "Everything is fine";end process;

end MaSuperArchitecture;

2 Est-ce qu’on est sûr? (a-t-on fini?)A-t-on réalisé assez de tests?Facile avec un petit design, très difficile avec un design complexe

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 15 / 75

Page 23: Vérification fonctionnelle des systèmes numériques

Introduction

Vérification: les 2 questions

Les deux grandes questions de la vérification1 Est-ce que ça marche?

Est-ce que le système fonctionne correctement?Les erreurs sont-elles correctement détectées?

Exemple de banc de test qui passe tous les tests

entity MonSuperDesign_tb isend MonSuperDesign_tb;

architecture MaSuperArchitecture of MonSuperDesign_tb isbegin

process isbegin

report "Everything is fine";end process;

end MaSuperArchitecture;

2 Est-ce qu’on est sûr? (a-t-on fini?)A-t-on réalisé assez de tests?Facile avec un petit design, très difficile avec un design complexe

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 15 / 75

Page 24: Vérification fonctionnelle des systèmes numériques

Introduction

Vérification: les 2 questions

Les deux grandes questions de la vérification1 Est-ce que ça marche?

Est-ce que le système fonctionne correctement?Les erreurs sont-elles correctement détectées?

Exemple de banc de test qui passe tous les tests

entity MonSuperDesign_tb isend MonSuperDesign_tb;

architecture MaSuperArchitecture of MonSuperDesign_tb isbegin

process isbegin

report "Everything is fine";end process;

end MaSuperArchitecture;

2 Est-ce qu’on est sûr? (a-t-on fini?)A-t-on réalisé assez de tests?Facile avec un petit design, très difficile avec un design complexe

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 15 / 75

Page 25: Vérification fonctionnelle des systèmes numériques

Introduction

Vérification: les 2 questions

Les deux grandes questions de la vérification1 Est-ce que ça marche?

Est-ce que le système fonctionne correctement?Les erreurs sont-elles correctement détectées?

Exemple de banc de test qui passe tous les tests

entity MonSuperDesign_tb isend MonSuperDesign_tb;

architecture MaSuperArchitecture of MonSuperDesign_tb isbegin

process isbegin

report "Everything is fine";end process;

end MaSuperArchitecture;

2 Est-ce qu’on est sûr? (a-t-on fini?)

A-t-on réalisé assez de tests?Facile avec un petit design, très difficile avec un design complexe

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 15 / 75

Page 26: Vérification fonctionnelle des systèmes numériques

Introduction

Vérification: les 2 questions

Les deux grandes questions de la vérification1 Est-ce que ça marche?

Est-ce que le système fonctionne correctement?Les erreurs sont-elles correctement détectées?

Exemple de banc de test qui passe tous les tests

entity MonSuperDesign_tb isend MonSuperDesign_tb;

architecture MaSuperArchitecture of MonSuperDesign_tb isbegin

process isbegin

report "Everything is fine";end process;

end MaSuperArchitecture;

2 Est-ce qu’on est sûr? (a-t-on fini?)A-t-on réalisé assez de tests?

Facile avec un petit design, très difficile avec un design complexe

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 15 / 75

Page 27: Vérification fonctionnelle des systèmes numériques

Introduction

Vérification: les 2 questions

Les deux grandes questions de la vérification1 Est-ce que ça marche?

Est-ce que le système fonctionne correctement?Les erreurs sont-elles correctement détectées?

Exemple de banc de test qui passe tous les tests

entity MonSuperDesign_tb isend MonSuperDesign_tb;

architecture MaSuperArchitecture of MonSuperDesign_tb isbegin

process isbegin

report "Everything is fine";end process;

end MaSuperArchitecture;

2 Est-ce qu’on est sûr? (a-t-on fini?)A-t-on réalisé assez de tests?Facile avec un petit design, très difficile avec un design complexe

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 15 / 75

Page 28: Vérification fonctionnelle des systèmes numériques

Introduction

Vérification: évolution de la complexité

http://www.eetimes.com/electronics-blogs/other/4209669/FPGAs-advance–but-verification-challenges-increase

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 16 / 75

Page 29: Vérification fonctionnelle des systèmes numériques

Introduction

Question: Comment?

Choix du langageVHDLSystemVerilogSystemC...

Choix de la méthodologieUVMVMMSpécifique...

Choix technologiqueVérification formelleVérification basée sur la simulationVérification par émulation...

Choix interactifManuelAutomatique

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 17 / 75

Page 30: Vérification fonctionnelle des systèmes numériques

Introduction

Question: Comment?

Choix du langageVHDLSystemVerilogSystemC...

Choix de la méthodologieUVMVMMSpécifique...

Choix technologiqueVérification formelleVérification basée sur la simulationVérification par émulation...

Choix interactifManuelAutomatique

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 17 / 75

Page 31: Vérification fonctionnelle des systèmes numériques

Introduction

Défis de la vérification: choix de méthode

Le choix d’une solution pour la vérification doit prendre en compteles paramètres suivants:

ComplétudeMaximiser les fonctionnalités (scénarios) de design testées

RéutilisabilitéMaximiser la réutilisabilité du code pour de futurs projets

EfficienceMinimiser l’effort à fournir et automatiser un maximum

ProductivitéMaximiser le travail produit manuellement

Performance du codeMinimiser le temps de calcul nécessaire à la vérification

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 18 / 75

Page 32: Vérification fonctionnelle des systèmes numériques

Introduction

Vérification fonctionnelle: approches

Vérification formelleTentative de prouver mathématiquement le bon fonctionnement dusystème

Vérification basée sur la simulationTentative de prouver le bon fonctionnement du système en lesimulant

Vérification par émulationTentative de prouver le bon fonctionnement du système enl’émulant

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 19 / 75

Page 33: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Vérification formelle

Concept: Prouver mathématiquement que le design est correct!Se base sur la logique mathématique

Logique propositionnelleLogique des prédicats

Semblable à la preuve automatique de théorèmes

Exemples de propositions

A⇒ B est équivalent à A ou Bmodus ponens: Si A et A⇒ B, alors Bmodus ponens: peut s’écrire: (A et A⇒ B)⇒ Bcontrapositive de l’implication: (A⇒ B)⇔ (B ⇒ A)Tiers exclu: A ou A

Par la contrapositive de l’implication, la proposition "Tout ingénieurdocumente son code" est équivalente à "Tout code non documenté estécrit par un non-ingénieur"

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 20 / 75

Page 34: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Diagramme de Venn: A et B

Imaginez: A ≡ est un animal, et B ≡ est noir

B A et B

A B

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 21 / 75

Page 35: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Diagramme de Venn: A ou B

Imaginez: A ≡ est un animal volant, et B ≡ est un animal qui nage

B A ou B

A B

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 22 / 75

Page 36: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Diagramme de Venn: A⇒ B, A ou B

Imaginez: A ≡ est un corbeau, et B ≡ est noir

B A

A

B

B B

A

B

B A ou B

A

B

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 23 / 75

Page 37: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Implication

Exemple de A⇒ B est équivalent à A ou BJe suis étudiant de CSF⇒ J’ai suivi le cours BSLest équivalent àJe ne suis pas un étudiant de CSF OU j’ai suivi le cours BSL

Bizarre, non?Attention, en logique il s’agit d’un OU non exclusif, alors que dansle langage courant nous utilisons plutôt le OU exclusif

De Morgan: A + B = AB

Donc: A⇒ B est équivalent à ABJe suis étudiant de CSF⇒ J’ai suivi le cours BSLest équivalent àIl est impossible que je sois un étudiant de CSF et que je n’aie passuivi le cours BSL

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 24 / 75

Page 38: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Implication

Exemple de A⇒ B est équivalent à A ou BJe suis étudiant de CSF⇒ J’ai suivi le cours BSLest équivalent àJe ne suis pas un étudiant de CSF OU j’ai suivi le cours BSL

Bizarre, non?Attention, en logique il s’agit d’un OU non exclusif, alors que dansle langage courant nous utilisons plutôt le OU exclusif

De Morgan: A + B = AB

Donc: A⇒ B est équivalent à ABJe suis étudiant de CSF⇒ J’ai suivi le cours BSLest équivalent àIl est impossible que je sois un étudiant de CSF et que je n’aie passuivi le cours BSL

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 24 / 75

Page 39: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Implication

Exemple de A⇒ B est équivalent à A ou BJe suis étudiant de CSF⇒ J’ai suivi le cours BSLest équivalent àJe ne suis pas un étudiant de CSF OU j’ai suivi le cours BSL

Bizarre, non?Attention, en logique il s’agit d’un OU non exclusif, alors que dansle langage courant nous utilisons plutôt le OU exclusif

De Morgan: A + B = AB

Donc: A⇒ B est équivalent à ABJe suis étudiant de CSF⇒ J’ai suivi le cours BSLest équivalent àIl est impossible que je sois un étudiant de CSF et que je n’aie passuivi le cours BSL

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 24 / 75

Page 40: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Implication

Exemple de A⇒ B est équivalent à A ou BJe suis étudiant de CSF⇒ J’ai suivi le cours BSLest équivalent àJe ne suis pas un étudiant de CSF OU j’ai suivi le cours BSL

Bizarre, non?Attention, en logique il s’agit d’un OU non exclusif, alors que dansle langage courant nous utilisons plutôt le OU exclusif

De Morgan: A + B = AB

Donc: A⇒ B est équivalent à ABJe suis étudiant de CSF⇒ J’ai suivi le cours BSLest équivalent àIl est impossible que je sois un étudiant de CSF et que je n’aie passuivi le cours BSL

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 24 / 75

Page 41: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Schémas de déduction élémentaires de la logiquepropositionnelle (1)

Γ représente une liste quelconque d’hypothèses⊥ représente une proposition fausse

Γ ;A ` A Vérité d’une hypothèse

Γ ` BΓ ;A ` B Vérité a fortiori

Γ ` A Γ ` BΓ ` A et B

Introduction de et

Γ ` A et BΓ ` A

Γ ` A et BΓ ` B Elimination de et

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 25 / 75

Page 42: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Schémas de déduction élémentaires de la logiquepropositionnelle (2)

Γ ` A

Γ ` A ou B

Γ ` B

Γ ` A ou BIntroduction de ou

Γ ` A ou B Γ ;A ` C Γ ;B ` C

Γ ` CDisjonction des cas

Γ ;A ` B

Γ ` A⇒ BIntroduction de⇒

Γ ` A Γ ` A⇒ B

Γ ` BModus Ponens

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 26 / 75

Page 43: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Schémas de déduction élémentaires de la logiquepropositionnelle (3)

Γ ` A Γ ` nonA

Γ ` ⊥Introduction de ⊥

Γ ` ⊥

Γ ` BEx falso quodlibet

Γ ;A ` ⊥

Γ ` nonARéduction à l’absurde J

Γ ;nonA ` ⊥

Γ ` ARéduction à l’absurde K

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 27 / 75

Page 44: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Schémas de déduction élémentaires de la logiquepropositionnelle (4)

Γ ` A⇒ B Γ ` B ⇒ A

Γ ` A⇔ BIntroduction de⇔

Γ ` A⇔ B

Γ ` A⇒ B

Γ ` A⇔ B

Γ ` B ⇒ AElimination de⇔

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 28 / 75

Page 45: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Vérification formelle: Property checking

Un détecteur de flanc montant

entity Detector isport(

Clk_i : in std_logic;Input_i : in std_logic;Detection_o : out std_logic

);end Detector;

architecture behave of Detector issignal reg_s: std_logic;

beginprocess(clk_i)begin

if rising_edge(clk_i) thenreg_s<=Input_i;

end if;end process;

Detection_o<=Input_i and not(reg_s);end behave;

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 29 / 75

Page 46: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Vérification formelle: Property checking

Propriété à vérifierSi A = 1 alors au cycle d’horloge suivant: D = 0

⇔ (At−1 = 1)⇒ Dt = 0⇔ At−1 ⇒ Dt⇔ At−1 + Dt = 1

A

CLK

QDD

A

CLK

QDD

Quel design est le bon?

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 30 / 75

Page 47: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Vérification formelle: Property checking

Propriété à vérifierSi A = 1 alors au cycle d’horloge suivant: D = 0⇔ (At−1 = 1)⇒ Dt = 0

⇔ At−1 ⇒ Dt⇔ At−1 + Dt = 1

A

CLK

QDD

A

CLK

QDD

Quel design est le bon?

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 30 / 75

Page 48: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Vérification formelle: Property checking

Propriété à vérifierSi A = 1 alors au cycle d’horloge suivant: D = 0⇔ (At−1 = 1)⇒ Dt = 0⇔ At−1 ⇒ Dt

⇔ At−1 + Dt = 1

A

CLK

QDD

A

CLK

QDD

Quel design est le bon?

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 30 / 75

Page 49: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Vérification formelle: Property checking

Propriété à vérifierSi A = 1 alors au cycle d’horloge suivant: D = 0⇔ (At−1 = 1)⇒ Dt = 0⇔ At−1 ⇒ Dt⇔ At−1 + Dt = 1

A

CLK

QDD

A

CLK

QDD

Quel design est le bon?

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 30 / 75

Page 50: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Vérification formelle: Property checking

Propriété à vérifier: At−1 + Dt = 1

A

CLK

QDD

Dt = At · At−1

Donc

At−1 + Dt = At−1 + At · At−1

= At−1 + At + At−1

= 1

cqfd.

A

CLK

QDD

Dt = At · At−1

Donc

At−1 + Dt = At−1 + At · At−1

= At−1 + At + At−1

= At−1 + At 6= 1

Propriété non vérifiée

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 31 / 75

Page 51: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Vérification formelle: Property checking

Propriété à vérifier: At−1 + Dt = 1

A

CLK

QDD

Dt = At · At−1

Donc

At−1 + Dt =

At−1 + At · At−1

= At−1 + At + At−1

= 1

cqfd.

A

CLK

QDD

Dt = At · At−1

Donc

At−1 + Dt = At−1 + At · At−1

= At−1 + At + At−1

= At−1 + At 6= 1

Propriété non vérifiée

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 31 / 75

Page 52: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Vérification formelle: Property checking

Propriété à vérifier: At−1 + Dt = 1

A

CLK

QDD

Dt = At · At−1

Donc

At−1 + Dt = At−1 + At · At−1

= At−1 + At + At−1

= 1

cqfd.

A

CLK

QDD

Dt = At · At−1

Donc

At−1 + Dt = At−1 + At · At−1

= At−1 + At + At−1

= At−1 + At 6= 1

Propriété non vérifiée

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 31 / 75

Page 53: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Vérification formelle: Property checking

Propriété à vérifier: At−1 + Dt = 1

A

CLK

QDD

Dt = At · At−1

Donc

At−1 + Dt = At−1 + At · At−1

= At−1 + At + At−1

= 1

cqfd.

A

CLK

QDD

Dt = At · At−1

Donc

At−1 + Dt = At−1 + At · At−1

= At−1 + At + At−1

= At−1 + At 6= 1

Propriété non vérifiée

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 31 / 75

Page 54: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Vérification formelle: Property checking

Propriété à vérifier: At−1 + Dt = 1

A

CLK

QDD

Dt = At · At−1

Donc

At−1 + Dt = At−1 + At · At−1

= At−1 + At + At−1

= 1

cqfd.

A

CLK

QDD

Dt = At · At−1

Donc

At−1 + Dt = At−1 + At · At−1

= At−1 + At + At−1

= At−1 + At 6= 1

Propriété non vérifiée

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 31 / 75

Page 55: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Vérification formelle: Property checking

Propriété à vérifier: At−1 + Dt = 1

A

CLK

QDD

Dt = At · At−1

Donc

At−1 + Dt = At−1 + At · At−1

= At−1 + At + At−1

= 1

cqfd.

A

CLK

QDD

Dt = At · At−1

Donc

At−1 + Dt = At−1 + At · At−1

= At−1 + At + At−1

= At−1 + At 6= 1

Propriété non vérifiée

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 31 / 75

Page 56: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Vérification formelle: Property checking

Propriété à vérifier: At−1 + Dt = 1

A

CLK

QDD

Dt = At · At−1

Donc

At−1 + Dt = At−1 + At · At−1

= At−1 + At + At−1

= 1

cqfd.

A

CLK

QDD

Dt = At · At−1

Donc

At−1 + Dt = At−1 + At · At−1

= At−1 + At + At−1

= At−1 + At 6= 1

Propriété non vérifiée

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 31 / 75

Page 57: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Vérification formelle: Property checking

Propriété à vérifier: At−1 + Dt = 1

A

CLK

QDD

Dt = At · At−1

Donc

At−1 + Dt = At−1 + At · At−1

= At−1 + At + At−1

= 1

cqfd.

A

CLK

QDD

Dt = At · At−1

Donc

At−1 + Dt =

At−1 + At · At−1

= At−1 + At + At−1

= At−1 + At 6= 1

Propriété non vérifiée

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 31 / 75

Page 58: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Vérification formelle: Property checking

Propriété à vérifier: At−1 + Dt = 1

A

CLK

QDD

Dt = At · At−1

Donc

At−1 + Dt = At−1 + At · At−1

= At−1 + At + At−1

= 1

cqfd.

A

CLK

QDD

Dt = At · At−1

Donc

At−1 + Dt = At−1 + At · At−1

= At−1 + At + At−1

= At−1 + At 6= 1

Propriété non vérifiée

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 31 / 75

Page 59: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Vérification formelle: Property checking

Propriété à vérifier: At−1 + Dt = 1

A

CLK

QDD

Dt = At · At−1

Donc

At−1 + Dt = At−1 + At · At−1

= At−1 + At + At−1

= 1

cqfd.

A

CLK

QDD

Dt = At · At−1

Donc

At−1 + Dt = At−1 + At · At−1

= At−1 + At + At−1

= At−1 + At 6= 1

Propriété non vérifiée

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 31 / 75

Page 60: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Vérification formelle: Property checking

Propriété à vérifier: At−1 + Dt = 1

A

CLK

QDD

Dt = At · At−1

Donc

At−1 + Dt = At−1 + At · At−1

= At−1 + At + At−1

= 1

cqfd.

A

CLK

QDD

Dt = At · At−1

Donc

At−1 + Dt = At−1 + At · At−1

= At−1 + At + At−1

= At−1 + At 6= 1

Propriété non vérifiée

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 31 / 75

Page 61: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Vérification formelle: Property checking

Propriété à vérifier: At−1 + Dt = 1

A

CLK

QDD

Dt = At · At−1

Donc

At−1 + Dt = At−1 + At · At−1

= At−1 + At + At−1

= 1

cqfd.

A

CLK

QDD

Dt = At · At−1

Donc

At−1 + Dt = At−1 + At · At−1

= At−1 + At + At−1

= At−1 + At 6= 1

Propriété non vérifiée

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 31 / 75

Page 62: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Vérification formelle: Property checking

Propriété à vérifier

At−1 · At ⇒ Dt

A

CLK

QDD

A

CLK

QDD

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 32 / 75

Page 63: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Vérification formelle: Property checking

2 Propriété suffisent

At−1 · At ⇒ Dt

At−1 · At ⇒ Dt

A

CLK

QDD

A

CLK

QDD

Si on prouve ces deux propriétés, le système est formellementcorrect

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 33 / 75

Page 64: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Vérification formelle: Conclusion

L’outil QuestaFormal, de Mentor, offre des possibilités devérification formelle

Se base sur des assertionsEst capable de prouver le bon fonctionnementSinon offre le chronogramme menant à l’erreur

La preuve mathématique reste la meilleure des preuves, mais...Non applicable pour des systèmes trop complexesNécessite de spécifier le système avec des assertions

Nous aborderons les assertionsExploitées durant la simulationEt en preuve formelle!

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 34 / 75

Page 65: Vérification fonctionnelle des systèmes numériques

Vérification formelle

Pour le plaisir: paradoxe de Hempel

contrapositive de l’implication: (A⇒ B)⇔ (B ⇒ A)Donc, pour prouver A⇒ B, il suffit de prouver B ⇒ APar la contrapositive de l’implication, la phrase "Tous les corbeauxsont noirs" est donc équivalente à "Tout ce qui n’est pas noir n’estpas un corbeau".Chaque fois que nous voyons un corbeau noir, cela confirme"Tous les corbeaux sont noirs".Donc:Chaque fois que nous voyons quelque chose qui n’est pas noir etn’est pas un corbeau, cela confirme que "Tous les corbeaux sontnoirs"...

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 35 / 75

Page 66: Vérification fonctionnelle des systèmes numériques

Vérification par simulation

Vérification par simulation: approches

Plusieurs manières d’aborder la simulation:Bancs de test dirigés (Directed testbench)

Scénarios prévusPar exemple: tests exhaustifs (!)

Basé sur la couverture et l’aléatoire (Coverage-drivenrandom-based)

Génération de stimuli aléatoiresTest de couverture pour décider de la fin de la simulation

Vérification basée sur les assertions (assertion-based)Assertions peuvent servir à une preuve formelleOu sont vérifiées par simulation

Les outils (langages) sont plus ou moins adaptés à l’une ou l’autreapproche

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 36 / 75

Page 67: Vérification fonctionnelle des systèmes numériques

Vérification par simulation

Objectifs de la simulation

Vérifier le fonctionnement logique du module ou du systèmeVérifier les caractéristiques dynamiques du module ou dusystème (temps d’exécution, fréquence maximum, ...)Dans les deux cas, une preuve écrite du résultat de simulationdoit être générée

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 37 / 75

Page 68: Vérification fonctionnelle des systèmes numériques

Vérification par simulation

Méthodologie de vérification

Vérification exhaustiveProblème NP-durEn général: impossibilité de tester toutes les possibilités, pour unsystème combinatoirePour un système séquentiel: encore pire

Vérifications classiquesTest de la description (transparent)

Vérification de toutes les lignes de la description (taux de couverture)Test du fonctionnement (boîte noire)

Vérification du fonctionnement du système sans tenir compte de ladescription interneDevrait être réalisé par un autre ingénieur

Nouvelles approchesAssertions, coverage-driven, ...

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 38 / 75

Page 69: Vérification fonctionnelle des systèmes numériques

Vérification par simulation

Méthodologie de vérification

Il faut éviter qu’un banc de test ne détecte pas une erreur defonctionnement ou de description

Il est facile de réaliser un banc de test qui ne détecte pas d’erreur...Rigueur nécessaire pour la mise au point du banc de testAuto-test du banc de test

Le banc de test modifie volontairement les sorties du design

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 39 / 75

Page 70: Vérification fonctionnelle des systèmes numériques

Vérification par simulation

Validation de la simulation

En vérification dirigée, la validation est donnée par:La liste des stimuli générés et les vérifications exécutées (fichiertestbench)Et la preuve écrite du résultat des vérifications (fenêtre log dusimulateur, fichier texte, HTML, ...)

En vérification aléatoire, la validation est donnée par:La liste des scénarios testés et les vérifications exécutées (fichiertestbench)Le taux de couvertureEt la preuve écrite du résultat des vérifications (fenêtre log dusimulateur, fichier texte, HTML, ...)

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 40 / 75

Page 71: Vérification fonctionnelle des systèmes numériques

Vérification par simulation

Vérification des timings

La vérification des timings est compliquée avec une simulationVHDLUne meilleure méthodogie:Conception Full synchrone

Simulation fonctionnelleAnalyse statique des timings

⇒ Fonctionnement garantiAttention toutefois aux entrées/sorties

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 41 / 75

Page 72: Vérification fonctionnelle des systèmes numériques

Vérification automatique

Manuelle vs. automatique

Vérification manuelleForcer à la main les signaux d’entréeGrands risques d’erreurDifficulté à réexécuter le même scénarioVérification visuelle par le développeur, par le chronogramme desimulationFastidieux (temps perdu)

Vérification semi-automatiqueLes signaux d’entrée sont forcés automatiquementVérification du fonctionnement par le développeurRisque de mauvaise analyse par le "vérificateur"

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 42 / 75

Page 73: Vérification fonctionnelle des systèmes numériques

Vérification automatique

Vérification automatique

But: vérification la plus complète possible du systèmeRésultat Go/No Go (OK, KO)Indication de l’instant d’une erreurPossibilité de stopper la simulation sur une erreurIndication du nombre d’erreurs totalPermet une re-vérification complète (Go/no Go) après unemodification ou une correctionLes interactions utilisateur doivent être minimisées

Nécessaire pour garantir la similarité des tests effectués

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 43 / 75

Page 74: Vérification fonctionnelle des systèmes numériques

Vérification automatique

Simulation automatique: scripts

Une simulation doit pouvoir être lancée via des scriptsEvite des erreurs de manipulationSimplifie la vie

Exemple: sim.do

# définition de la librairie de travailvlib work# compilation du design à testervcom counter.vhd# compilation du banc de testvcom counter_tb.vhd# lancement de la simulationvsim work.counter_tb# ajout de tous les signaux au chronogrammeadd wave -r *# exécution de la simulationrun -all

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 44 / 75

Page 75: Vérification fonctionnelle des systèmes numériques

Bancs de tests

Fonctionnement d’un banc de tests

Assignation des entrées du circuit à testerDétermination des valeurs des sorties attendues (références)Attente d’un délai

Permet l’évaluation des sorties par le circuit (temps de propagation)Vérification des sorties

Comparaison avec la référenceIndication claire en cas d’erreur

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 45 / 75

Page 76: Vérification fonctionnelle des systèmes numériques

Bancs de tests

Vérification black/white/gray box

But d’un design: que les sorties soient correctesCertaines erreurs du design pourraient être ignorées

Erreurs jamais activéesErreurs qui ne se propagent pas jusqu’à la sortieErreurs qui s’annulent l’une l’autre

Black boxLa fonctionnalité n’est vérifiée qu’aux frontières du designTypiquement comparées à un modèle de référence

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 46 / 75

Page 77: Vérification fonctionnelle des systèmes numériques

Bancs de tests

Black box

Seules les sorties sont analyséesDifficulté à trouver les sources d’erreursNécessité d’avoir un modèle de référence

Banc de test

Description despécification

Ref

Description VHDL àtester (synthétisable)

DUT

Générateur

de stimuli_sti

_ref

_obs

Vérification

des sorties

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 47 / 75

Page 78: Vérification fonctionnelle des systèmes numériques

Bancs de tests

Black box

Seules les sorties sont analyséesDifficulté à trouver les sources d’erreursNécessité d’avoir un modèle de référence

Banc de test

Description despécification

Ref

Description VHDL àtester (synthétisable)

DUT

Générateur

de stimuli_sti

_ref

_obs

Vérification

des sorties

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 47 / 75

Page 79: Vérification fonctionnelle des systèmes numériques

Bancs de tests

Black box

Seules les sorties sont analyséesDifficulté à trouver les sources d’erreursNécessité d’avoir un modèle de référence

Banc de test

Description despécification

Ref

Description VHDL àtester (synthétisable)

DUT

Générateur

de stimuli_sti

_ref

_obs

Vérification

des sorties

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 47 / 75

Page 80: Vérification fonctionnelle des systèmes numériques

Bancs de tests

Black box

Seules les sorties sont analyséesDifficulté à trouver les sources d’erreursNécessité d’avoir un modèle de référence

Banc de test

Description despécification

Ref

Description VHDL àtester (synthétisable)

DUT

Générateur

de stimuli_sti

_ref

_obs

Vérification

des sorties

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 47 / 75

Page 81: Vérification fonctionnelle des systèmes numériques

Bancs de tests

Black box

Seules les sorties sont analyséesDifficulté à trouver les sources d’erreursNécessité d’avoir un modèle de référence

Banc de test

Description despécification

Ref

Description VHDL àtester (synthétisable)

DUT

Générateur

de stimuli_sti

_ref

_obs

Vérification

des sorties

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 47 / 75

Page 82: Vérification fonctionnelle des systèmes numériques

Bancs de tests

Black box

Seules les sorties sont analyséesDifficulté à trouver les sources d’erreursNécessité d’avoir un modèle de référence

Banc de test

Description despécification

Ref

Description VHDL àtester (synthétisable)

DUT

Générateur

de stimuli_sti

_ref

_obs

Vérification

des sorties

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 47 / 75

Page 83: Vérification fonctionnelle des systèmes numériques

Bancs de tests

Black box

Seules les sorties sont analyséesDifficulté à trouver les sources d’erreursNécessité d’avoir un modèle de référence

Banc de test

Description despécification

Ref

Description VHDL àtester (synthétisable)

DUT

Générateur

de stimuli_sti

_ref

_obs

Vérification

des sorties

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 47 / 75

Page 84: Vérification fonctionnelle des systèmes numériques

Bancs de tests

White box

L’intérieur du design est analyséRecherche d’erreurs facilitéPeut être limité pour des grands systèmes

Banc de test

Description VHDL àtester (synthétisable)

DUT

Générateur

de stimuli_sti

_obs

Vérification

des sorties

Monitoring etassertions

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 48 / 75

Page 85: Vérification fonctionnelle des systèmes numériques

Bancs de tests

White box

L’intérieur du design est analyséRecherche d’erreurs facilitéPeut être limité pour des grands systèmes

Banc de test

Description VHDL àtester (synthétisable)

DUT

Générateur

de stimuli_sti

_obs

Vérification

des sorties

Monitoring etassertions

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 48 / 75

Page 86: Vérification fonctionnelle des systèmes numériques

Bancs de tests

White box

L’intérieur du design est analyséRecherche d’erreurs facilitéPeut être limité pour des grands systèmes

Banc de test

Description VHDL àtester (synthétisable)

DUT

Générateur

de stimuli_sti

_obs

Vérification

des sorties

Monitoring etassertions

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 48 / 75

Page 87: Vérification fonctionnelle des systèmes numériques

Bancs de tests

White box

L’intérieur du design est analyséRecherche d’erreurs facilitéPeut être limité pour des grands systèmes

Banc de test

Description VHDL àtester (synthétisable)

DUT

Générateur

de stimuli_sti

_obs

Vérification

des sorties

Monitoring etassertions

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 48 / 75

Page 88: Vérification fonctionnelle des systèmes numériques

Bancs de tests

White box

L’intérieur du design est analyséRecherche d’erreurs facilitéPeut être limité pour des grands systèmes

Banc de test

Description VHDL àtester (synthétisable)

DUT

Générateur

de stimuli_sti

_obs

Vérification

des sorties

Monitoring etassertions

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 48 / 75

Page 89: Vérification fonctionnelle des systèmes numériques

Bancs de tests

White box

L’intérieur du design est analyséRecherche d’erreurs facilitéPeut être limité pour des grands systèmes

Banc de test

Description VHDL àtester (synthétisable)

DUT

Générateur

de stimuli_sti

_obs

Vérification

des sorties

Monitoring etassertions

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 48 / 75

Page 90: Vérification fonctionnelle des systèmes numériques

Bancs de tests

Grey box

Les sorties et l’intérieur du design sont analyséesCompromis entre les deux autres approchesPermet de limiter la vérification des sorties par l’analyse interne

Banc de test

Description despécification

Ref

Description VHDL àtester (synthétisable)

DUT

Générateur

de stimuli_sti

_ref

_obs

Vérification

des sorties

Monitoring etassertions

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 49 / 75

Page 91: Vérification fonctionnelle des systèmes numériques

Bancs de tests

Grey box

Les sorties et l’intérieur du design sont analyséesCompromis entre les deux autres approchesPermet de limiter la vérification des sorties par l’analyse interne

Banc de test

Description despécification

Ref

Description VHDL àtester (synthétisable)

DUT

Générateur

de stimuli_sti

_ref

_obs

Vérification

des sorties

Monitoring etassertions

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 49 / 75

Page 92: Vérification fonctionnelle des systèmes numériques

Bancs de tests

Grey box

Les sorties et l’intérieur du design sont analyséesCompromis entre les deux autres approchesPermet de limiter la vérification des sorties par l’analyse interne

Banc de test

Description despécification

Ref

Description VHDL àtester (synthétisable)

DUT

Générateur

de stimuli_sti

_ref

_obs

Vérification

des sorties

Monitoring etassertions

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 49 / 75

Page 93: Vérification fonctionnelle des systèmes numériques

Bancs de tests

Grey box

Les sorties et l’intérieur du design sont analyséesCompromis entre les deux autres approchesPermet de limiter la vérification des sorties par l’analyse interne

Banc de test

Description despécification

Ref

Description VHDL àtester (synthétisable)

DUT

Générateur

de stimuli_sti

_ref

_obs

Vérification

des sorties

Monitoring etassertions

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 49 / 75

Page 94: Vérification fonctionnelle des systèmes numériques

Bancs de tests

Grey box

Les sorties et l’intérieur du design sont analyséesCompromis entre les deux autres approchesPermet de limiter la vérification des sorties par l’analyse interne

Banc de test

Description despécification

Ref

Description VHDL àtester (synthétisable)

DUT

Générateur

de stimuli_sti

_ref

_obs

Vérification

des sorties

Monitoring etassertions

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 49 / 75

Page 95: Vérification fonctionnelle des systèmes numériques

Bancs de tests

Grey box

Les sorties et l’intérieur du design sont analyséesCompromis entre les deux autres approchesPermet de limiter la vérification des sorties par l’analyse interne

Banc de test

Description despécification

Ref

Description VHDL àtester (synthétisable)

DUT

Générateur

de stimuli_sti

_ref

_obs

Vérification

des sorties

Monitoring etassertions

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 49 / 75

Page 96: Vérification fonctionnelle des systèmes numériques

Bancs de tests

Grey box

Les sorties et l’intérieur du design sont analyséesCompromis entre les deux autres approchesPermet de limiter la vérification des sorties par l’analyse interne

Banc de test

Description despécification

Ref

Description VHDL àtester (synthétisable)

DUT

Générateur

de stimuli_sti

_ref

_obs

Vérification

des sorties

Monitoring etassertions

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 49 / 75

Page 97: Vérification fonctionnelle des systèmes numériques

Bancs de tests

Grey box

Les sorties et l’intérieur du design sont analyséesCompromis entre les deux autres approchesPermet de limiter la vérification des sorties par l’analyse interne

Banc de test

Description despécification

Ref

Description VHDL àtester (synthétisable)

DUT

Générateur

de stimuli_sti

_ref

_obs

Vérification

des sorties

Monitoring etassertions

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 49 / 75

Page 98: Vérification fonctionnelle des systèmes numériques

Bancs de tests

White/grey/black box: Effort

Challenge Black White Grey

Création d’un modèle de référence Haut Non Moyen

Ajout de moniteurs et assertions Non Haut Bas

Tracer un bug de la sortie à la source Haut Bas Bas

Vérifier l’implémentation des features Haut Bas Bas

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 50 / 75

Page 99: Vérification fonctionnelle des systèmes numériques

Vérification par émulation

Vérification par émulation

Constat: La simulation nécessite beaucoup de temps processeurSolution: Exploiter les FPGAs pour accélérer le processusDifficultés:

Temps de synthèse-placement-routageObservabilité (nombre d’entrées/sorties)Gestion des assertionsSe prête plutôt à des modèles black box

Solutions commerciales:Veloce, de MentorZeBu, de EvePalladium series, de Cadence

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 51 / 75

Page 100: Vérification fonctionnelle des systèmes numériques

Langages

Langages pour la vérification

Projets de petite et moyenne tailleLangage VHDL Nouveauté: UVVM

Projets de taille moyenne à élevéeBesoin de

Modèles décrits à très haut niveau (transaction)Génération de stimuli aléatoiresVérification par assertions

Solutions actuellesSystemCPSL (assertions)

Nouveau langageSystemVerilog

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 52 / 75

Page 101: Vérification fonctionnelle des systèmes numériques

Langages

Origine des langagesOrigin of the Species

HiLo Verilog

25 years25 years

HiLo Verilog

VHDL

SuperLog

VHDL

Vera

e

SystemVerilog

C

1980 1990 2000 2005

e

3© Synopsys 2011

Functional Verification of Today’s and Tomorrow’s SoCs, Janick Bergeron, Synopsys, 2011

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 53 / 75

Page 102: Vérification fonctionnelle des systèmes numériques

Langages

Origine des méthodologiesOrigin of the Species

eRMe

uRM

AVMOVM UVMSV

8 years8 yearsTLM 1.0 TLM 2.0SC

8 years8 years

RVM

VMM 1.0 VMM 1.2

OV

SV

2002 2004 2006 2008 2010

4© Synopsys 2011

Functional Verification of Today’s and Tomorrow’s SoCs, Janick Bergeron, Synopsys, 2011

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 54 / 75

Page 103: Vérification fonctionnelle des systèmes numériques

Langages Evolution des usages

Etude sur l’évolution des usages

Publiée par MentorComparaison entre 2012 et 2016Designs FPGA et non-FPGA (ASIC)

https://blogs.mentor.com/verificationhorizons/blog/2016/08/08/prologue-the-2016-wilson-research-group-functional-verification-study/

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 55 / 75

Page 104: Vérification fonctionnelle des systèmes numériques

Langages Evolution des usages

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 56 / 75

Page 105: Vérification fonctionnelle des systèmes numériques

Langages Evolution des usages

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 57 / 75

Page 106: Vérification fonctionnelle des systèmes numériques

Langages Evolution des usages

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 58 / 75

Page 107: Vérification fonctionnelle des systèmes numériques

Langages Evolution des usages

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 59 / 75

Page 108: Vérification fonctionnelle des systèmes numériques

Langages Evolution des usages

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 60 / 75

Page 109: Vérification fonctionnelle des systèmes numériques

Langages Evolution des usages

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 61 / 75

Page 110: Vérification fonctionnelle des systèmes numériques

Langages Evolution des usages

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 62 / 75

Page 111: Vérification fonctionnelle des systèmes numériques

Langages Evolution des usages

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 63 / 75

Page 112: Vérification fonctionnelle des systèmes numériques

Langages Evolution des usages

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 64 / 75

Page 113: Vérification fonctionnelle des systèmes numériques

Langages Evolution des usages

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 65 / 75

Page 114: Vérification fonctionnelle des systèmes numériques

Langages Evolution des usages

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 66 / 75

Page 115: Vérification fonctionnelle des systèmes numériques

Langages Evolution des usages

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 67 / 75

Page 116: Vérification fonctionnelle des systèmes numériques

Langages Evolution des usages

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 68 / 75

Page 117: Vérification fonctionnelle des systèmes numériques

Langages Evolution des usages

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 69 / 75

Page 118: Vérification fonctionnelle des systèmes numériques

Langages Evolution des usages

SystemVerilog vs. VHDL

Source: http://www.design-reuse.com/articles/7844/

verification-ip-verification-ip--part-2-by-dr-aart-de-geus.html

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 70 / 75

Page 119: Vérification fonctionnelle des systèmes numériques

Langages Evolution des usages

SystemVerilog

Ce qu’il faut savoir de SystemVerilog pour la vérificationLangage orienté objetNotion de classe (monde logiciel)

HéritageCréation dynamique d’objets

Notion de module (monde matériel)Hiérarchie de composantsCréation statique

Notion d’interface (entre-deux mondes)Facilite la mise au point de bancs de tests

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 71 / 75

Page 120: Vérification fonctionnelle des systèmes numériques

Langages Evolution des usages

SystemVerilog

Langage orienté objetRéutilisation

Génération aléatoireNon contrainteContrainte

Gestion des assertionsFonctions de couvertureIdéal pour de la vérification aléatoireDes méthodologies ont été développées

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 72 / 75

Page 121: Vérification fonctionnelle des systèmes numériques

Langages Evolution des usages

Méthodologies SystemVerilog

Cadence: VMM (Verification Methodology Manual)Version 1.2http://www.vmmcentral.org/

Mentor: AVM (Advanced Verification Methodology)Version 3.0Terminé

Ensemble: OVM (Open Verification Methodology)Version 2.1http://www.ovmworld.org/

UVM (Universal Verification Methodology)Unification de VMM et OVMVersion 1.1http://www.uvmworld.org/Sera présentée durant le cours

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 73 / 75

Page 122: Vérification fonctionnelle des systèmes numériques

Langages Evolution des usages

Niveaux d’abstractions

Evolution des niveaux d’abstractions

Réutilisation: bibliothèque de VIPs

Méthodologie: UVM

Langage pour la vérif: SystemVerilog

Langages RTL: VHDL/Verilog

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 74 / 75

Page 123: Vérification fonctionnelle des systèmes numériques

Langages Evolution des usages

Niveaux d’abstractions

Evolution des niveaux d’abstractions

Réutilisation: bibliothèque de VIPs

Méthodologie: UVM

Langage pour la vérif: SystemVerilog

Langages RTL: VHDL/Verilog

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 74 / 75

Page 124: Vérification fonctionnelle des systèmes numériques

Langages Evolution des usages

Niveaux d’abstractions

Evolution des niveaux d’abstractions

Réutilisation: bibliothèque de VIPs

Méthodologie: UVM

Langage pour la vérif: SystemVerilog

Langages RTL: VHDL/Verilog

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 74 / 75

Page 125: Vérification fonctionnelle des systèmes numériques

Langages Evolution des usages

Niveaux d’abstractions

Evolution des niveaux d’abstractions

Réutilisation: bibliothèque de VIPs

Méthodologie: UVM

Langage pour la vérif: SystemVerilog

Langages RTL: VHDL/Verilog

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 74 / 75

Page 126: Vérification fonctionnelle des systèmes numériques

Langages Evolution des usages

Méthodologie TLM

Pour des systèmes complexes, la méthodologie Transaction LevelModeling permet:

Une meilleure modularitéUne meilleure réutilisabilitéDe découpler le niveau RTL d’autres niveaux d’abstraction

Concept:Monter en abstraction dès que possibleArriver dans le monde logiciel

SystemVerilog est fait pourVHDL s’en approche avec UVVML’avenir de la vérification est TLM

Y. Thoma (HES-SO / HEIG-VD / REDS) Vérification fonctionnelle Février 2017 75 / 75