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

Post on 06-Mar-2018

219 views 5 download

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

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

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

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

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

Simulation

ISI 2007/2008VHDL9

Plan

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

ISI 2007/2008VHDL10

Unités de conception

ISI 2007/2008VHDL11

Entité de conception

ISI 2007/2008VHDL12

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

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

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

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

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.

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

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.

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

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

Instruction d'affectation de signal

Forme générale

ISI 2007/2008VHDL31

Instruction concurrente sélective

Exemple

ISI 2007/2008VHDL32

Instruction concurrente conditionnelle

Exemple

ISI 2007/2008VHDL33

Instructions séquentielles(1/3)

Instruction conditionnelle Instruction sélective

ISI 2007/2008VHDL34

Instructions séquentielles(2/3)

� Instructions de boucle

ISI 2007/2008VHDL35

Instructions séquentielles(3/3)

ISI 2007/2008VHDL36

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

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

Additionneur (2/2)

ISI 2007/2008VHDL41

To be continued …

ISI 2007/2008VHDL42