Vous êtes sur la page 1sur 82

ARCHITECTURE DES SYSTÈMES

PROGRAMMABLES

MASTÈRE RECHERCHE ELECTRONIQUE EMBARQUÉE ET SYSTÈMES


DE COMMUNICATION

Enseignante : Dr. Intissar TOIHRIA

Contact : toihria_intissar@yahoo.fr

Institut Supérieur d’informatique Médenine


OBJECTIFS DE L’UNITÉ
 Acquérir une formation théorique et pratique sur les méthodes et les
outils de conception des circuits intégrés programmables.

 Comprendre les méthodes de conception, vérification et


simulation des circuits intégrés programmables.

 Maîtriser les outils CAO pour la synthèse et la programmation


des circuits intégrés programmables

 Connaître la structure et l'architecture interne des différents circuits


intégrés programmables, leurs applications dans la conception des systèmes
numériques, et leurs intégrations sur des composants programmables; FPGA.
2
PRÉSENTATION DU COURS

Cours : 2.25 h en séance (14 semaines)

 Chapitre 1 : Introduction aux circuits intégrés programmables

 Chapitre 2 : Modélisation, Simulation, et Synthèse

 Chapitre 3 : Revue de la description HDL de circuits pour la synthèse logique

 Chapitre 4 : Structures logiques internes du FPGA et leur utilisation

 Chapitre 5 : Technologies des circuits intégrés programmables

 Chapitre 6 : Méthodes de configuration et vérification des circuits FPGA

 Chapitre 7 : Les structures d'entrée/sorties des circuits FPGA 3


SYSTÈME LOGIQUE COMBINATOIRE
CHAPITRE 2
MODÉLISATION, SIMULATION, ET SYNTHÈSE
CHAPITRE 2 : MODÉLISATION, SIMULATION, ET
SYNTHÈSE

Objectifs du cours

Ce cours traitera essentiellement les points suivants :

 Rappeler les notions essentielles de la conception de circuits intégrées numériques

 Préparer à la conception niveau système ; en particulier les méthodes de


modélisation comportementales, du simulation fonctionnel, et de la système
logique.

 Revue du langage de description matériel (HDL) pour la simulation fonctionnelle

5
CHAPITRE 2 : MODÉLISATION, SIMULATION, ET
SYNTHÈSE

1. Étapes de conception

2. Conception niveau système

3. Revue du langage de description matériel (HDL)

6
Étapes de conception
Survol sur la conception
Conception niveau système
Flot de conception
Revue du langage de description matériel (HDL)
La conception système : c’est quoi ?

7
Étapes de conception
Survol sur la conception
Conception niveau système
Flot de conception
Revue du langage de description matériel (HDL)
Méthodologie de conception

8
Étapes de conception
Survol sur la conception
Conception niveau système
Flot de conception
Revue du langage de description matériel (HDL)

Modèles de descriptions et synthèse

 Diagramme en Y : L'idée de base du diagramme en Y est que chaque élément d'un

système électronique peut être décrit dans trois domaines différents

o A l’intérieur de chaque domaine, les


éléments peuvent être décrit à différents
niveaux d’abstraction. Les transitions à
l’intérieur du diagramme en Y entre les
domaines définissent les étapes de
conception.

 Abstraction
o Eliminer des détails, focaliser sur un point de vue du système
o Travailler à différentes échelles de complexité et de temps 9
Étapes de conception
Survol sur la conception
Conception niveau système
Flot de conception
Revue du langage de description matériel (HDL)

Modèles de descriptions

 Suivant le type des détails précisés, on distingue plusieurs types de modélisation,


appelées aussi modèles ou vues.

Les trois modèles où vues


10
Étapes de conception
Survol sur la conception
Conception niveau système
Flot de conception
Revue du langage de description matériel (HDL)
Modèles de descriptions

Modèle physique

 Elle spécifiée les paramètres physiques d'un système, tels que ses dimensions, les
matériaux le constituant. Dans ce type de modèles on décrit les transistors, les masques
(polysilicium, dopant N, métal, ...), leur taille, leur épaisseur, ...

11
Étapes de conception
Survol sur la conception
Conception niveau système
Flot de conception
Revue du langage de description matériel (HDL)
Modèles de descriptions

Modèle structurelle

 On oublie les caractéristiques physiques et on ne voit un système que comme un


assemblage de composants.

 On s'attache à décrire l'interconnexions de différents sous-ensemble dont le plus bas


niveau est le transistor.

12
Étapes de conception
Survol sur la conception
Conception niveau système
Flot de conception
Revue du langage de description matériel (HDL)
Modèles de descriptions

Modèle comportementale

 Le système est décrit en définissant comment ses sorties réagissent en fonction des
entrées et du temps.

o On s'intéresse ici à ce qu'un circuit fait, et non à comment il est conçu


 C'est le modèle la plus abstraite.

13
Étapes de conception
Survol sur la conception
Conception niveau système
Flot de conception
Revue du langage de description matériel (HDL)

Modèles de synthèse
 Le passage d'un modèle à l'autre est appelée synthèse. Il en existe donc deux types.
Synthèse logique

 Transforme le code en une représentation structurelle de bas niveau (netList)


utilisant les cellules de la bibliothèque de la technologie visée (fondeur ou FPGA).
 Permet la simulation sans connaissance du matériel cible

14
Étapes de conception
Survol sur la conception
Conception niveau système
Flot de conception
Revue du langage de description matériel (HDL)

Modèles de synthèse
Synthèse physique
 Transforme une représentation structurelle de bas niveau en une description
physique du circuit (Layout). Elle nécessite une étape supplémentaire de placement et
de routage des portes.
o On part d'une liste de portes et de leurs interconnexions (netlist) pour
aboutir à une description physique du circuit en termes de masques.
o Permet une simulation plus riche tenant compte du matériel cible (délais)

o Permet la configuration sur FPGA ou la réalisation d'un circuit dédié (ASIC)

15
Étapes de conception
Survol sur la conception
Conception niveau système
Flot de conception
Revue du langage de description matériel (HDL)
Top Down Design

16
Étapes de conception
Survol sur la conception
Conception niveau système
Flot de conception
Revue du langage de description matériel (HDL)
Top Down Design

17
Étapes de conception
Survol sur la conception
Conception niveau système
Flot de conception
Revue du langage de description matériel (HDL)

Top Down Design

 Flot descendant « Top-Down »

 Composé de 6 grandes étapes :

1. Description comportementale où Codage

2. Simulation fonctionnelle

3. Synthèse

4. Placement routage

5. Simulation post-routage (niveau porte)

6. Programmation et test
18
Étapes de conception
Survol sur la conception
Conception niveau système
Flot de conception
Revue du langage de description matériel (HDL)

Description comportementale
 Description de la fonction numérique à réaliser

 2 possibilités
o Codage schématique o Codage par langage de programmation
• Bibliothèque de fonction constructeurs • High Description Language

19
Étapes de conception
Survol sur la conception
Conception niveau système
Flot de conception
Revue du langage de description matériel (HDL)

Simulation fonctionnelle

 Vérification du comportement de la description comportementale.

o Génération de vecteur de test en entrée

o Observation des sorties

o Test Bench

Remarque :

 Les paramètres dynamiques des blocs sont ignorés


20
Étapes de conception
Survol sur la conception
Conception niveau système
Flot de conception
Revue du langage de description matériel (HDL)

Synthèse

 Transposition de la description schématique ou textuelle en primitives


disponibles dans le circuit

 Optimisation paramètres dynamiques de la description en fonction des


contraintes imposées (surface, consommation, fréquences, …)

 Génération d’une Netlist

21
Étapes de conception
Survol sur la conception
Conception niveau système
Flot de conception
Revue du langage de description matériel (HDL)

Placement / Routage

22
Étapes de conception
Survol sur la conception
Conception niveau système
Flot de conception
Revue du langage de description matériel (HDL)

Simulation post-routage

 Pourquoi refaire une seconde simulation ?

o Après placement/routage dans le circuit, les paramètres dynamiques

peuvent avoir changés avec les temps de propagation entre chaque bloc

 Simulation post-routage

o Test Bench identique à la simulation fonctionnelle

o Vérification du comportement

23
Étapes de conception
Survol sur la conception
Conception niveau système
Flot de conception
Revue du langage de description matériel (HDL)

Programmation et Test

 Programmation du circuit
o Génération d’un bitstream
• Bitstream = suite de bits de configuration
donnant l’état des fusibles, des entrées sorties ...
o Utilisation d’un programmateur
o Utilisation du port JTAG FPGA

 Test

 Reproduction du test bench

 Utilisation d’un analyseur logique


24
Étapes de conception
Survol sur la conception
Conception niveau système
Flot de conception
Revue du langage de description matériel (HDL)
Je résumé

Configuration

25
Étapes de conception Introduction

Conception niveau système Modélisation et Simulation


Outils de synthèse logique
Revue du langage de description matériel (HDL)
Structure d'un projet
o Des modules comportementales (VHDL)

o Des fichiers de simulation (test-bench)

o Des fichiers de contraintes

26
Étapes de conception Introduction

Conception niveau système Modélisation et Simulation


Outils de synthèse logique
Revue du langage de description matériel (HDL)
Phase de développement

27
Étapes de conception Introduction

Conception niveau système Modélisation et Simulation


Outils de synthèse logique
Revue du langage de description matériel (HDL)
Phase de développement

28
Étapes de conception Introduction

Conception niveau système Modélisation et Simulation


Outils de synthèse logique
Revue du langage de description matériel (HDL)
La description comportementale : c’est quoi ?

 C’est la modélisation des circuits ou systèmes pour simuler et donc vérifier le


comportement des circuits, mais ne décrit pas la structure interne du composant
modélisé.
 Modélisation
o Tout le langage
Logique
Temporel

o Un modèle peut être


 comportemental
 structurel
 data-flow
 Exemple
o Créer des programmes de test
29
Étapes de conception Introduction

Conception niveau système Modélisation et Simulation


Outils de synthèse logique
Revue du langage de description matériel (HDL)
Flot de conception : Modélisation

 Le processus de conception
consiste à concevoir progressivement
un modèle comportementale pour
valider le fonctionnement du système
par simulation.

Remarque
 La description comportementale peut être
elle-même générée par des outils de synthèse de
plus haut niveau (synthèse d’architecture), à
partir de descriptions plus abstraites. 30
Étapes de conception Introduction

Conception niveau système Modélisation et Simulation


Outils de synthèse logique
Revue du langage de description matériel (HDL)
De la modélisation vers la simulation

 Le principal outil de validation de la description comportementale est la simulation,


ce qui nécessite donc de développer les stimuli qui seront appliqués sur le modèle du
composant à valider.

 La qualité de la validation dépendant entièrement de la qualité des stimuli, la


génération des stimuli peut prendre autant de temps que l’écriture du modèle du
composant. 31
Étapes de conception Introduction

Conception niveau système Modélisation et Simulation


Outils de synthèse logique
Revue du langage de description matériel (HDL)
Flot de conception : Simulation

32
Étapes de conception Introduction

Conception niveau système Modélisation et Simulation


Outils de synthèse logique
Revue du langage de description matériel (HDL)
Simulation : Banc de test
 Un banc de test (test-bench) est un modèle comportemental de l’environnement
dans lequel sera plongé le composant à valider.

 La technique du banc de test permet d’éviter :


o L’écriture fastidieuse des séquences de
stimuli.
o Les inévitables erreurs humaines dans la
phase d’analyse des résultats de simulation.
 L’écriture du test-bench peut prendre autant de temps que l’écriture du modèle du
composant à valider..
 Le modèle du test-bench et le modèle du composant peuvent être développés en
parallèle par deux personnes différentes. 33
Étapes de conception Introduction

Conception niveau système Modélisation et Simulation


Outils de synthèse logique
Revue du langage de description matériel (HDL)
De la modélisation vers la synthèse

 Le point de départ de la synthèse est donc toujours la description


comportementale, qui joue le rôle de spécification, pour la synthèse, et qui sera utilisée
comme référence à toutes les étapes de conception ultérieures.

R/P , ect …..


34
Étapes de conception Introduction

Conception niveau système Modélisation et Simulation


Outils de synthèse logique
Revue du langage de description matériel (HDL)
La synthèse : c’est quoi ?

 Le passage d'une vue à l'autre est appelée synthèse. Il en existe donc deux types :

o Synthèse logique

o Synthèse physique

La synthèse logique : c’est quoi ?

 La synthèse logique c’est le passage d'une vue comportementale à une vue


structurelle.

 Elle est souvent automatique, traitée par des logiciels spécialisés et complexes

35
Étapes de conception Introduction

Conception niveau système Modélisation et Simulation


Outils de synthèse logique
Revue du langage de description matériel (HDL)

La synthèse logique en pratique : c’est quoi ?

 En pratique, le terme synthèse est utilisé pour le passage d'une quelconque vue
comportementale ou d'une vue structurelle de niveau élevé (registres / ALU /
mux / ….) à une vue structurelle en portes logiques.

o C'est-à-dire le passage d’une représentation relativement abstraite, telle


qu'elle est utilisée par les concepteurs, à une représentation bas niveau
utilisable pour le placement-routage

 C'est donc un mélange de synthèse logique et éventuellement de


raffinement d'une vue structurelle.

36
Étapes de conception Introduction

Conception niveau système Modélisation et Simulation


Outils de synthèse logique
Revue du langage de description matériel (HDL)

Flot de conception : Synthèse

 Le processus de conception
consiste à transformer progressivement
la description comportementale en une
description physique (utilisable par le
fabriquant de circuits).

Remarque

 Les outils CAO de synthèse permettent


d’automatiser cette transformation.
37
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Qu’est ce que le VHDL

 Pour décrire le comportement du matériel, on utilise généralement des langages


spécialisés appelés HDL (Hardware Description Language)

 L’abréviation VHDL signifie :

VHSIC ( Very High Speed Integrated Circuit)


Hardware
Description
Language

 VHDL : Langage de description matérielle, décrit la structure et le


comportement d’un circuit numérique.
38
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Qu’est ce que le VHDL

 Langage standard de description de circuits ou de systèmes numériques en vue de :

o Modélisation (simulation) des circuits ou systèmes


o Synthèse (génération automatique) niveau RTL
o Descriptions de programmes de test (stimuli)
o Description de type hiérarchique (Netlist)

 But : Langage de description matérielle


o Augmentation de la vitesse de conception des circuits
o Simulation rapide

39
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)
Modélisation où Synthèse

 Modélisation
o Tout le langage. Logique + Temporel
o Un modèle peut être comportemental, structurel ou de type data-flow.

 Synthèse
o Le VHDL de synthèse est un sous-ensemble du VHDL généraliste
o La synthèse demande une bonne connaissance du circuit et de la technologie.

40
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Conception de systèmes complexes

 Permet la modélisation de grands ensembles électroniques ou logiques en


conservant un certain niveau d’abstraction

o Composant élémentaire
• Porte
o Circuit intégré
• Microprocesseur
o Carte – système
• Calculateur
o Processus
• Système de navigation
41
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Pourquoi le VHDL ?

 Demande des USA en 1980


o Nécessité d’un langage de description non
ambiguë des systèmes matériels
o Unicité de la description
o Continuité du modèle

Normalisation IEEE du VHDL en 1987

 Depuis 1987, c’est un standard de description et de modélisation des circuits


et systèmes logiques

o Nombreux outils 100% VHDL


o Entrées possibles en VHDL (cadence)
42
Standard IEEE (ref. IEEE Std 1164 en 93)
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Caractéristiques du VHDL
Avantages

 Simulation de systèmes complexes


o Macroscopiques ou microscopiques
o Modélisation d’ensembles de circuits

 Description structurée
o Travail en équipe, séparation des taches
o Rapidité de conception

 Adaptation aux projets multi-entreprise :

o Indépendance vis à vis de la technologie


o Sécurité grâce à des modèles compilés
43
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Caractéristiques du VHDL

Inconvénients

 Description complexe

 Tout n’est pas synthétisable (analogique)


o Prise en compte avec le VHDL-AMS (1997)

Autres langages proches

 Verilog concurrent et plus ancien. La syntaxe est proche de celle du langage C

 VHDL-AMS Langage de modélisation mixte numérique-analogique IEEE.1076.1-1999.


Il est entièrement compatible avec VHDL, mais utilisé uniquement pour la modélisation.
44
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)
Flot de conception du circuit numérique

45
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Unité de conception : VHDL

46
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Structure d'un module VHDL

 La description d'un système numérique par le biais du langage VHDL passe par 3
étapes différentes :

o La déclaration des ressources externes (bibliothèques)


o La description de l'entité du système, correspondant a la liste des
entrées/sorties
o La description de l'architecture du système, correspondant a la définition
des fonctionnalités du système

Remarque

L'ensemble est contenu dans un fichier source portant l'extension *.vhd.


47
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Déclaration bibliothèques

 Permet d'inclure des librairies de types prédéfinis ou fonctions

 Toute description VHDL utilisée pour la synthèse a besoin de bibliothèques.

 L’IEEE (Institut of Electrical and Electronics Engineers) les a normalisées et plus


particulièrement la bibliothèque IEEE 1164.

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use ieee.std_logic_arith .all ;
use ieee.std_logic_unsigned.all ;

 Réalisée automatiquement pour les bibliothèques courantes


48
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)
Déclaration de l’entité

 L'entité est la description de l'interface du circuit.

Syntaxe :
entity NOM_DE_L_ENTITE is
port ( Description des signaux d’entrées /sorties …);
end entity ;

L'entité précise :
 Le nom du circuit
 Les ports d'entrée-sortie :
Leur nom , Leur direction (in, out, inout,...) , Leur type (bit, bit_vector, integer, std_logic,...)
 Les paramètres éventuels pour les modèles génériques
49
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Déclaration de l’entité

Modélisation VHDL de l’entité

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity FA is Représentation symbolique

port (
A, B, Cin : in std_logic;
déclaration de l’entité
S, Cout : out std_logic
);
end entity;
50
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Déclaration des signaux E/S

 L’instruction port :
Syntaxe : NOM_DU_SIGNAL : sens type;

Exemple:
CLOCK : in std_logic;
BUS : out std_logic_vector (7 downto 0);

 Le sens de signal

o in : pour un signal en entrée.


o out : pour un signal en sortie.
o inout : pour un signal en entrée sortie
o buffer : pour un signal en sortie mais utilise comme entrée dans la description.
51
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)
Déclaration des signaux E/S
 Le TYPE utilise pour les signaux d’entrées / sorties est :
o std_logic pour un signal.
o std_logic_vector pour un bus compose de plusieurs signaux.

 Un bus bidirectionnel de 5 bits s’écrira : LATCH : inout std_logic_vector (4 downto 0) ;

 Les valeurs que peuvent prendre un signal de type std_logic sont :


o ‘0’ ou ‘L’ : pour un niveau bas.
o ‘1’ ou ‘H’ : pour un niveau haut.
o ‘X’ ou ‘W’ : pour un niveau inconnu.
o ‘U’ : pour non initialise.
o ‘Z’ : pour etat haute impedance.
o ‘-‘ : Quelconque, c’est a dire n’importe quelle valeur.
52
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)
Déclaration de l’architecture
 L'architecture est la description interne du circuit.
o Elle décrit le corps du design son comportement,
o Elle établit a travers les instructions les relations entre les entrées et les sorties.

arc1 of FA is

 L’architecture est toujours associée à une entité.

 Une même entité peut avoir plusieurs architecture


53
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)
Exemple : Operateurs logiques de base
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity PORTES is
port (
A,B : in std_logic;
Y1,Y2,Y3,Y4,Y5,Y6,Y7 : out std_logic);
end entity ;
architecture DESCRIPTION of PORTES is
begin
Y1 <= A and B ;
Y2 <= A or B ;
Y3 <= A xor B ;
déclaration de l’architecture
Y4 <= not A ;
Y5 <= A nand B ;
Y6 <= A nor B ;
Y7 <= not(A xor B ) ;
54
end architecture ;
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Niveaux de description

 Trois niveaux de description du fonctionnement du système peuvent être utilisés :

o Structurelle

o Comportementale

o Flot de données

55
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Description de type structurelle

 Le système électronique est décrit comme un module avec des entrées et des
sorties (Port).

 Ce module est composé de sous modules connectés entre eux par des fils (signal)

La description repose sur une bibliothèque ‘’physique’’ d’instances 56


Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Niveau Comportementale
 Ce type correspond à expliciter le comportement d’un modèle par ses équations

o Booléennes(bits, bit_vector), entiers (integer)…


o Descriptions complexes de fonctions (If… then…..else)
o Description temporelle (s<=b after 5ns)

 Le VHDL autorise :
o Structure de boucles (loop… end loop,While)
o Branchement (if… then….else, case… end case)
o Appel aux procédures et fonctions
57
Pas de lien avec une bibliothèque physique
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Description de type Flot de données

 C’est une description qui définit l'évolution des signaux. C’est une définition
temporelle des signaux et des évènements.

 Cette description permet essentiellement de simuler des structures qui ont été
spécifiées
 Elle est définie généralement par l’utilisation d’équations concourantes

58
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)
Les opérateurs de base

 Les opérateurs logiques : AND, NAND, OR, NOR, NOT, XOR, XNOR
Exemple : S1 <= (E1 and E2) or (E3 nand E4);

 Les opérations arithmétiques : ADD, SUB, MULT, DIV

 Les opérateurs relationnels : =, /=, <, >, <=, >=

 Décalage et Rotation : SLL, SLR, SLA, SRA, ROL, ROR

 Affectation simple : <=

BINAIRE, exemple : BUS <= "1001" ; -- BUS = 9 en décimal


HEXA, exemple : BUS <= x"9" ; -- BUS = 9 en hexa
59
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Instructions concurrentes : Affectation conditionnelle

 Modifie l’état d’un signal suivant le résultat d’une condition logique entre
un ou des signaux, valeurs, constantes.

 Syntaxe : SIGNAL <= expression when condition


[else expression when condition]
[else expression]

 Exemple : S1 prend la valeur de E2 quand E1=’1’ sinon S1 prend la valeur ‘0’

S1 <= E2 when ( E1= ‘1’)


else ‘0’;
Schéma correspondant : ET logique 60
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)
Instructions concurrentes : Exemple d’un décodeur 7 segments
 Écrire le code VHDL de décodeur en utilisant une affectation conditionelle.
7-Segments Decoder - BCD (0..9) only

Decod7seg f
a

b f
a

b f
a

b f
a

b f
a

b
g g g g g

Data Segout e c e c e c e c e c

d d d d d

4 7
a a a a a

f b f b f b f b f b
g g g g g

e c e c e c e c e c

Entity SEVEN_SEG is d d d d d

port(
Data : in std_logic_vector(3 downto 0); --Expected within 0…9
Segout: out std_logic_vector(1 to 7)); --Segments A,B,C,D,E,F,G
end entity;
architecture COMB of SEVEN_SEG is
begin
….
….. 61
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)
Instructions concurrentes : Exemple d’un décodeur 7 segments (solution)
 Code VHDL de décodeur en utilisant une affectation conditionelle.

library IEEE;
use IEEE.std_logic_1164.all;

Entity SEVEN_SEG is
port(
Data : in std_logic_vector(3 downto 0); --Expected within 0…9
Segout: out std_logic_vector(1 to 7) --Segments A,B,C,D,E,F,G
);
end entity;

architecture COMB of SEVEN_SEG is


begin
62
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)
Instructions concurrentes : Exemple d’un décodeur 7 segments (solution)
 Code VHDL de décodeur en utilisant une affectation conditionelle.
Segout <= "1111110" when Data = 0
else "0110000" when Data = 1
else "1101101" when Data = 2
else "1111001" when Data = 3
else "0110011" when Data = 4
else "1011011" when Data = 5
7-Segments Decoder - BCD (0..9) only

else "1011111" when Data = 6 a a a a a

else "1110000" when Data = 7


f b f b f b f b f b
g g g g g

else "1111111" when Data = 8 e c e c e c e c e c

else "1111011" when Data = 9 d d d d d

else "-------"; a a a a a

end COMB ; f
g
b f
g
b f
g
b f
g
b f
g
b

e c e c e c e c e c

d d d d d

63
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)
Instructions concurrentes : Affectation sélective
 Cette instruction permet d’affecter différentes valeurs à un signal, selon les
valeurs prises par un signal dit de sélection.

 Syntaxe : with SIGNAL_DE_SELECTION select


SIGNAL <= expression when valeur_de_selection,
[expression when valeur_de_selection,]
[expression when others];

 Exemple : Multiplexeur 2 vers 1

with SEL select


Remarque : l’instruction [expression when others]
Y <= A when ‘0’,
n’est pas obligatoire mais fortement conseillée, elle
B when ‘1’,
permet de définir la valeur du SIGNAL par défaut
'0' when others 64
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Instructions concurrentes : Exemple d’un multiplexeur 4 vers 1

 Code VHDL d’un multiplexeur 4 vers 1 en utilisant une affectation sélective

Library ieee; Use ieee.std_logic_1164.all;


Use ieee.numeric_std.all;
Use ieee.std_logic_unsigned.all;

entity MUX is
port (
E1,E2, E3,E4 : in std_logic;
SEL : in std_logic_vector(1 downto 0);
S : out std_logic);
end entity; 65
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Instructions concurrentes : Exemple d’un multiplexeur 4 vers 1

 Code VHDL d’un multiplexeur 4 vers 1 en utilisant une affectation sélective

architecture MUX_ARCH of MUX is


begin
with SEL select
S <= E1 when "00",
E2 when "01",
E3 when "10",
E4 when "11",
'0' when others;
End MUX_ARCH ;
66
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Instructions concurrentes : Signaux internes

 Syntaxe : signal NOM_DU_SIGNAL : type ;

 Exemple : signal I : std_logic ;

 Signal BUS : std_logic_vector (7 downto 0) ;

On peut décrire le schéma suivant de 2 manières différentes :

AND2
A AB
B OR2
O NOT
inst
AND2 67
inst5
C inst4
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)
Instructions concurrentes : Signaux internes
 Sans signaux internes :
architecture V1 of AOI is
Begin
F <= not ((A and B) or (C and D));
end V1;

 Avec signaux internes :

architecture V2 of AOI is
--zone de declaration des signaux
signal AB,CD,O: STD_LOGIC;
begin
--instructions concurrentes
AB <= A and B;
CD <= C and D; AND2

O <= AB or CD; A

F <= not O; B
inst
end V2; 68 AND2
C
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Instructions concurrentes : Je résumé

ARCHITECTURE simple OF comparateur IS


-- zone de déclaration (types, signaux internes, fonctions, constantes etc..)
BEGIN
-- instructions concurrentes
egal <= ’ 1 ’ WHEN a = b ELSE ’ 0 ’ ;

END simple;
Signaux déjà déclarés
au niveau Entity

 L’ordre des instructions concurrentes est indifférent

 Les instructions concurrentes se situent entre BEGIN et END de l ’architecture

 Toutes les instructions sont évaluées et affectent les signaux de sortie en même temps.
69
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Instructions séquentielles : circuits séquentielles


Bascule D Latch

70
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Instructions séquentielles : circuits séquentielles


Bascule D Flip-Flop

71
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Instructions séquentielles : Processus


 Le processus correspond souvent à un circuit simple. Les connexions entre circuits
sont automatiquement implantées par les signaux d’échange

 Dans un processus, les instructions exécutées séquentiellement c’est à dire les


unes à la suite des autres.

 Processus active par un des signaux de la liste de sensibilité


Syntaxe
[Nom_du_process :] process (liste des signaux de sensibilité)
Nom des objets internes : types ; (si nécessaire)
begin
... -- instructions du process
end process [Nom_du_process] ; 72
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Instructions séquentielles : Règles de fonctionnement d’un processus

 L’exécution d’un process a lieu à chaque changement d’état d’un signal de la liste
de sensibilité.

 Les instructions du process s’exécutent séquentiellement.

 Les changements d’état des signaux par les instructions du process sont pris en
compte à la fin du process.

 Les processus sont utilise avec 3 approches différentes :


o Pour décrire un circuit combinatoire avec des instructions évolue de la programmation
structure : if, case, etc…
o Pour décrire un circuit synchrone qui comporte des cellules de mémorisation (bascules).
o Pour décrire une fonction non synthétisable tel qu’un banc de test ou un modèle.
73
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)
Instructions séquentielles : Principales structures utilisées

Remarque :
 Ne pas confondre => (implique) et <= (affecte).
 L’instruction IF et CASE ne peuvent être utilisées que dans un process 74
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)
Exemple d’une bascule D
 Code VHDL d’une bascule D

Library ieee;
Use ieee.std_logic_1164.all;
Use ieee.numeric_std.all;
Use ieee.std_logic_unsigned.all;

entity BASCULED is
port (
D,CLK : in std_logic;
S : out std_logic);
end entity;

75
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)
Exemple d’une bascule D

 Code VHDL d’une bascule D

architecture DESCRIPTION of BASCULED is


begin
PRO_BASCULED : process (CLK)
begin
if (CLK'event and CLK ='1') then
S <= D; Remarque :
end if; Seul le signal CLK fait partie de la liste de sensibilité.
end process PRO_BASCULED; D’après les règles de fonctionnement du processus,
end DESCRIPTION; seul un changement d’état du signal CLK va
déclencher le process et par conséquent évaluer
les instructions de celui-ci. 76
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)
Exemple d’un décodeur 7 segments

 Code VHDL de décodeur en utilisant une strcture CASE.

library IEEE; Decod7seg


use IEEE.std_logic_1164.all;
Data Segout
4 7
Entity SEVEN_SEG is
port(
Data : in std_logic_vector(3 downto 0); --Expected within 0…9
Segout: out std_logic_vector(1 to 7) --Segments A,B,C,D,E,F,G
);
end entity;

architecture COMB of SEVEN_SEG is


begin
77
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)
Exemple d’un décodeur 7 segments
 Code VHDL de décodeur en utilisant une strcture CASE.

process(Data)
begin
case Data is
when "0000"=> Segout <="0000001";
when "0001"=> Segout <="1001111";
when "0010"=> Segout <="0010010";
when "0011"=> Segout <="0000110";
when "0100"=> Segout <="1001100";
when "0101"=> Segout <="0100100";
when "0110"=> Segout <="0100000";
when "0111"=> Segout <="0001111";
when "1000"=> Segout <="0000000";
when "1001"=> Segout <="0000100";
when others => Segout <="1001000";
end case;
end process;
end COMB ; 78
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Instructions séquentielles : Process combinatoire

 La liste de sensibilité doit être complète : tout les signaux lus dans le process
doivent apparaitre dans la liste de sensibilité.

process (SEL,A,B,C)
begin
if SEL =‘1’ then
OP <= A and B;
else
OP <= C;
end if;
end process;
79
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Instructions séquentielles : Process synchrone

 Un process synchrone est exécute a chaque front de l’horloge.

o Pour tester le front montant de l’horloge, on utilise la fonction rising_edge() qui est

définit dans le package STD_LOGIC_1164.

o Pour tester le front descendante de l’horloge, on utilise la fonction falling_edge() qui

est définit dans le package STD_LOGIC_1164.

o RISING_EDGE est VRAI lorsque l’horloge passe de l’état ‘0’ a l’état ‘1’.

o FALLING_EDGE est VRAI lorsque l’horloge passe de l’état ‘1’ a l’état ‘0’.

 Utile pour décrire une bascule D flip-flop (Dff).


80
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Instructions séquentielles : Exemple Process synchrone

process(CLK)
begin
if RISING_EDGE(CLK) then
Q1 <= D;
end if; process(CLK)

end process; begin


if FALLING_EDGE(CLK) then
Q2 <= D;
end if;
end process;
81
Étapes de conception Introduction au langage VHDL

Conception niveau système Organisation d’un modèle VHDL


Les instructions en VHDL
Revue du langage de description matériel (HDL)

Instructions séquentielles : process non-synthétisable


 Les process non synthétisable sont utilise pour :
o decrire un modèle
o écrire des bancs de test (test bench)

 Les process non synthétisable ne possèdent pas de liste de sensibilité et ce sont


des instructions WAIT qui synchronise le process.

 Un processus est synchronisé par une (ou plusieurs) instructions WAIT


 WAIT ON <événement> ; Exemple : wait on A,B,C,D
- - - - Remplace la liste de sensibilité d’un process classique
 WAIT UNTIL <condition booléenne> ; Exemple : wait until rst = ‘1
- - - - Condition bloquante
 WAIT FOR <durée> ; Exemple : wait for 100 ns ---- Permet de créer un délais
 WAIT - - - - Boucle infini, comme un while(1) en C 82

Vous aimerez peut-être aussi