SAMMOUDI.N ISI 2007/2008 · PDF fileHistoire de VHDL 1980 Début du projet VHDL...

21
VHDL SAMMOUDI.N ISI 2007/2008 VERSION :1.0 Plan Introduction Organisation d'un modèle VHDL Représentation de l'information Méthode de description Domaine d’instruction ISI 2007/2008 VHDL 2 Domaine d’instruction Aspects avancés Références

Transcript of SAMMOUDI.N ISI 2007/2008 · PDF fileHistoire de VHDL 1980 Début du projet VHDL...

Page 1: SAMMOUDI.N ISI 2007/2008 · PDF fileHistoire de VHDL 1980 Début du projet VHDL financé par le US DoD 1985 Première version 7.2 publique 1987 Première version du standard IEEE Std

VHDLSAMMOUDI.N ISI 2007/2008

VERSION :1.0

Plan

� Introduction � Organisation d'un modèle VHDL� Représentation de l'information� Méthode de description� Domaine d’instruction

ISI 2007/2008VHDL2

� Domaine d’instruction� Aspects avancés� Références

Page 2: SAMMOUDI.N ISI 2007/2008 · PDF fileHistoire de VHDL 1980 Début du projet VHDL financé par le US DoD 1985 Première version 7.2 publique 1987 Première version du standard IEEE Std

Plan

� Introduction� Qu'est ce que VHDL?� Domaine d'application� Modèle et simulation logique� Utilisation de VHDL

ISI 2007/2008VHDL3

Qu'est ce que VHDL?

� Langage de description de systèmes matériels� Comportement� Structure� Documentation

� Développement de modèles exécutables� Simulation

ISI 2007/2008VHDL4

� Synthèse (sous-ensemble)

� Modèle logiciel� Langage fortement typé� Modularité� Extensibilité

� Standard IEEE (réf. IEEE Std 1076-2002)� Supporté par tous les outils EDA

Page 3: SAMMOUDI.N ISI 2007/2008 · PDF fileHistoire de VHDL 1980 Début du projet VHDL financé par le US DoD 1985 Première version 7.2 publique 1987 Première version du standard IEEE Std

Histoire de VHDL

� 1980 Début du projet VHDL financé par le US DoD

� 1985 Première version 7.2 publique

� 1987 Première version du standard IEEE Std 1076-1987

ISI 2007/2008VHDL5

1987

� 1993 Mise à jour du standard (IEEE Std 1076-1993)

� 2002 Mise à jour du standard (IEEE Std 1076-2002)

Domaine d'application

ISI 2007/2008VHDL6

Page 4: SAMMOUDI.N ISI 2007/2008 · PDF fileHistoire de VHDL 1980 Début du projet VHDL financé par le US DoD 1985 Première version 7.2 publique 1987 Première version du standard IEEE Std

Comportement concurrent vs séquentiel

(1/2)

� Exemple: multiplieur, modèle algorithmique

ISI 2007/2008VHDL7

Comportement concurrent vs séquentiel

(2/2)

Exemple: additionneur, niveau logique

ISI 2007/2008VHDL8

Page 5: SAMMOUDI.N ISI 2007/2008 · PDF fileHistoire de VHDL 1980 Début du projet VHDL financé par le US DoD 1985 Première version 7.2 publique 1987 Première version du standard IEEE Std

Simulation

ISI 2007/2008VHDL9

Plan

� Organisation d'un modèle VHDL� Unités/entités de conception

ISI 2007/2008VHDL10

Page 6: SAMMOUDI.N ISI 2007/2008 · PDF fileHistoire de VHDL 1980 Début du projet VHDL financé par le US DoD 1985 Première version 7.2 publique 1987 Première version du standard IEEE Std

Unités de conception

ISI 2007/2008VHDL11

Entité de conception

ISI 2007/2008VHDL12

Page 7: SAMMOUDI.N ISI 2007/2008 · PDF fileHistoire de VHDL 1980 Début du projet VHDL financé par le US DoD 1985 Première version 7.2 publique 1987 Première version du standard IEEE Std

Plan

� Représentation de l'information� Types, sous-types� Objets� Attributs

ISI 2007/2008VHDL13

Types et sous-types

� Type = ensemble de valeurs + opérateurs associés� Sous-type = type dérivé d'un type de base (type

parent) avec contraintes� 4 classes de types

� Types scalaires : entier, réel, énuméré, physique� Types composites : tableaux, enregistrements

ISI 2007/2008VHDL14

� Types composites : tableaux, enregistrements� Pointeurs� Fichiers

� Déclaration de type:� Déclaration de sous-type:� Types et sous-types prédéfinis dans le paquetage

STANDARD

Page 8: SAMMOUDI.N ISI 2007/2008 · PDF fileHistoire de VHDL 1980 Début du projet VHDL financé par le US DoD 1985 Première version 7.2 publique 1987 Première version du standard IEEE Std

Objets et constantes

� Objet = élément nommé ayant des valeurs d'un type donné

� 4 classes d'objets: constantes, variables, signaux, fichiers

� Une constante possède une valeur fixe durant la

ISI 2007/2008VHDL15

� Une constante possède une valeur fixe durant la simulation

� Déclaration de constante

� Exemple :

Variables

� Simple conteneur dont la valeur peut changer en cours de simulation

� Valeur initiale par défaut = soustype'left� Déclaration de variable

ISI 2007/2008VHDL16

� Exemples de déclarations

Page 9: SAMMOUDI.N ISI 2007/2008 · PDF fileHistoire de VHDL 1980 Début du projet VHDL financé par le US DoD 1985 Première version 7.2 publique 1987 Première version du standard IEEE Std

Signaux

� Représentent des formes d'ondes logiques sous forme de paires temps/valeur

� Objets essentiels à la modélisation de comportement s concurrents

� Déclaration de signal

Exemples de déclarations

ISI 2007/2008VHDL17

� Exemples de déclarations

� Un signal possède un structure de donnée complexe ( pilote)

Fichiers

� Représentent un stockage externe� Déclaration de fichier

� type file_open_kind is (read_mode, write_mode, appen d_mode);

� Exemples de déclarations

ISI 2007/2008VHDL18

� Fermeture de fichiers� A la fin de la simulation� Au moyen de la procédure file_close

Page 10: SAMMOUDI.N ISI 2007/2008 · PDF fileHistoire de VHDL 1980 Début du projet VHDL financé par le US DoD 1985 Première version 7.2 publique 1987 Première version du standard IEEE Std

Attributs prédéfinis

� Attribut = information sur un élément du langage� Par exemple: longueur d'un signal bus = bus'length

� Permettent d'écrire des modèles généraux

� Notation� Elément: type ou objet

� Attribut: type, intervalle, valeur, fonction ou signal

ISI 2007/2008VHDL19

� Attributs signaux utiles� S'event Fonction à valeur de type boolean valant TRUE si un événement est arrivé sur S durant le

cycle de simulation courant, et FALSE sinon

� S'last_event Fonction à valeur de type time valant le temps écoulé depuis le dernier événement sur S

� S'last_value Fonction à valeur du type de S valant la valeur de S avant le dernier événement sur S

Plan

� Méthode de description � Structurelle� Comportementale

� Instructions séquentielles( Process )

� Instructions concurrentes ( Flot de donnée )

ISI 2007/2008VHDL20

Page 11: SAMMOUDI.N ISI 2007/2008 · PDF fileHistoire de VHDL 1980 Début du projet VHDL financé par le US DoD 1985 Première version 7.2 publique 1987 Première version du standard IEEE Std

Méthode de description

� Description StructurelleDécrit l’assemblage de différents circuits électroniques, chacun d’eux étant une boîte noire (entité).

� Comportementale (behavioral)� Flot de données

Décrit à partir du flot de données, le comportement des données transitant à l’intérieur de la boîte noire (entité).

ISI 2007/2008VHDL21

données transitant à l’intérieur de la boîte noire (entité).� Algorithme

Décrit sous forme d’un programme informatique, les instructions séquentielles constituant un processus et traduisant un algorithme ou un comportement.

� MixteDécrit à la fois le comportement et le flot de données d’un circuit.

Description Structurelle

� On cherche à décrire les connexions entre les différents composants du circuit� Signal pour décrire les interconnexions (noeuds).

� Component et port map pour décrire les portes.� Les différentes composants peuvent être des portes simples ou des

circuits complexes.

� La définition des composants se trouve ailleurs, dans un package

ISI 2007/2008VHDL22

� La définition des composants se trouve ailleurs, dans un package par exemple.

Page 12: SAMMOUDI.N ISI 2007/2008 · PDF fileHistoire de VHDL 1980 Début du projet VHDL financé par le US DoD 1985 Première version 7.2 publique 1987 Première version du standard IEEE Std

Déclaration de composant� Syntaxe Exemple

� Similaire à une déclaration d'entité, mais:� Un composant définit ce dont on a besoin (demande)

ISI 2007/2008VHDL23

� Un composant définit ce dont on a besoin (demande)� Une entité définit ce qui est disponible (offre)

� Le nom d'un composant, de ses paramètres et de ses ports ne doivent pas nécessairement être identiques à ceux d'une entité de conception particulière

� Une configuration permet d'associer une instance de composant à une entité de conception

Instance de composant

� Syntaxe

ISI 2007/2008VHDL24

Page 13: SAMMOUDI.N ISI 2007/2008 · PDF fileHistoire de VHDL 1980 Début du projet VHDL financé par le US DoD 1985 Première version 7.2 publique 1987 Première version du standard IEEE Std

Description comportementale (Flot de donné)

� Le design est décrit en termes du flot des données et des opérations:� Peut être exprimé par des assignations de signaux concurrents.� Peut aussi être simplement une table de vérité.

� Les opérations logiques à effectuer sur les entrées sont décrites et non la structure du circuit à réaliser.

ISI 2007/2008VHDL25

Description comportementale (séquentielle)

� Décrit des algorithmes à réaliser.

� Ils sont typiquement décrits à l’intérieur de processus.

� Des opérateurs séquentiels sont souvent utilisés pour décrire ces algorithmes.� À l’intérieur d’un process les opérations s’effectuent séquentiellement.

� Les énoncés de condition permettant de décrire un algorithme en informatique sont aussi utilisables dans un process VHDL

ISI 2007/2008VHDL26

informatique sont aussi utilisables dans un process VHDL� If, else

� Loop, while, for

� Case

� Le code VHDL à l’extérieur d’un process (simplement dans l’architecture) s’exécute continuellement en parallèle avec les autres process.

� → Il est donc impossible d’utiliser une opération séquentielle hors d’un process.

Page 14: SAMMOUDI.N ISI 2007/2008 · PDF fileHistoire de VHDL 1980 Début du projet VHDL financé par le US DoD 1985 Première version 7.2 publique 1987 Première version du standard IEEE Std

Processus

� Instruction concurrente la plus fondamentale� Toute instruction concurrente peut s'exprimer de manière

équivalente à l'aide d'un processus

ISI 2007/2008VHDL27

� Vie et mort d'un processus� Contexte local créé dans la phase d'élaboration� Activé/stoppé durant la simulation� Contexte local détruit à la fin de la simulation

� Pas un sous-programme!

Modalités d'activation d'un processus

� Seulement si un événement survient sur au moins un signal sensible

� Soit liste de sensibilité , soit instruction wait

� Instruction wait� Instruction séquentielle

� Plusieurs instructions dans un processus possible

ISI 2007/2008VHDL28

Page 15: SAMMOUDI.N ISI 2007/2008 · PDF fileHistoire de VHDL 1980 Début du projet VHDL financé par le US DoD 1985 Première version 7.2 publique 1987 Première version du standard IEEE Std

Plan

� Domaine d’instruction� Instruction concurrente� Instruction séquentielle

ISI 2007/2008VHDL29

Domaines d'instructions

� Instructions concurrentes

� Instructions s'exécutant dans des flots séparés

� Base pour la modélisation de systèmes matériels

� Requièrent un gestionnaire d'événements(simulation)

ISI 2007/2008VHDL30

d'événements(simulation)� Instructions séquentielles

� Instructions s'exécutant dans un ordre donné

� Similaires à celles existant dans les langages de programmation

Page 16: SAMMOUDI.N ISI 2007/2008 · PDF fileHistoire de VHDL 1980 Début du projet VHDL financé par le US DoD 1985 Première version 7.2 publique 1987 Première version du standard IEEE Std

Instruction d'affectation de signal

Forme générale

ISI 2007/2008VHDL31

Instruction concurrente sélective

Exemple

ISI 2007/2008VHDL32

Page 17: SAMMOUDI.N ISI 2007/2008 · PDF fileHistoire de VHDL 1980 Début du projet VHDL financé par le US DoD 1985 Première version 7.2 publique 1987 Première version du standard IEEE Std

Instruction concurrente conditionnelle

Exemple

ISI 2007/2008VHDL33

Instructions séquentielles(1/3)

Instruction conditionnelle Instruction sélective

ISI 2007/2008VHDL34

Page 18: SAMMOUDI.N ISI 2007/2008 · PDF fileHistoire de VHDL 1980 Début du projet VHDL financé par le US DoD 1985 Première version 7.2 publique 1987 Première version du standard IEEE Std

Instructions séquentielles(2/3)

� Instructions de boucle

ISI 2007/2008VHDL35

Instructions séquentielles(3/3)

ISI 2007/2008VHDL36

Page 19: SAMMOUDI.N ISI 2007/2008 · PDF fileHistoire de VHDL 1980 Début du projet VHDL financé par le US DoD 1985 Première version 7.2 publique 1987 Première version du standard IEEE Std

Applications

ISI 2007/2008VHDL37

Démultiplexeur

� circuit avec une entrée et N sorties, mettant en relation l'entrée avec une seule des sorties

� sélection de la sortie à l'aide de lignes d'adressagetrès proche d'un

ISI 2007/2008VHDL38

� très proche d'un décodeur

� exemple� 1 ligne d'entrée portant les

données D� 4 lignes de sortie Y0, Y1,

Y2, Y3� 2 lignes d'adressage A et B

Page 20: SAMMOUDI.N ISI 2007/2008 · PDF fileHistoire de VHDL 1980 Début du projet VHDL financé par le US DoD 1985 Première version 7.2 publique 1987 Première version du standard IEEE Std

Demi-additionneur

ISI 2007/2008VHDL39

Additionneur(1/2)

� 3 entrées :� les 2 bits des nombres à

ajouter� la retenue de l'étage

précédent

� 2 sorties :

ISI 2007/2008VHDL40

� 2 sorties :� le résultat de l'addition� la retenue

Page 21: SAMMOUDI.N ISI 2007/2008 · PDF fileHistoire de VHDL 1980 Début du projet VHDL financé par le US DoD 1985 Première version 7.2 publique 1987 Première version du standard IEEE Std

Additionneur (2/2)

ISI 2007/2008VHDL41

To be continued …

ISI 2007/2008VHDL42