Vous êtes sur la page 1sur 47

Conception & Modélisation des CI

numériques par le langage VHDL


VHDL
Very High Speed Integrated Circuit
Hardware Description Language
Langage de description de systèmes matériels

ENSAF
Présenté par: Pr. El Mehdi MELLOULI
PLAN
I. Introduction: les concepts de modélisation
et le flot de conception des CI.
II. Présentation des éléments du langage
VHDL.
III. VHDL & Synthèse
IV. Implémentation FPGA

29/11/2017 10:05 E M . Mellouli 2


1. Introduction
VHDL est un langage de description de matériel destiné à
représenter le comportement ainsi que l'architecture d’un
système électronique numérique.
numérique. Son nom complet
est VHSIC Hardware Description Language
Language..

En analysant l’évolution de la production industrielle d’ASICS


(Application Specific Integrated Circuit = circuit à la demande ou
circuit spécifique) ou de FPGA ( Field Programmable Gate Array),
Array),
on constate que ceux
ceux--ci, bénéficiant des progrès technologiques,
sont de plus en plus complexes
complexes..

29/11/2017 10:05 E M . Mellouli 3


1. Introduction
On sait intégrer à l’heure actuelle sur silicium des millions de
portes pouvant fonctionner à des fréquences supérieures à 1
GHz..
GHz

On parle beaucoup de SOC (System On a Chip) . En effet, plus de


80%
80% des ASICS comporteront un ou plusieurs microprocesseurs,

si on considère qu’un ingénieur confirmé valide 100 portes par


jour, il lui faudrait 500 ans pour un projet de 12 millions de portes
et ceci pour un coût de dizaines de millions de dollars,

Ceci parait totalement absurde et si c’est pourtant réalisable cela


est uniquement dû à l’évolution des méthodes de CAO (équipes
travaillent en parallèle) intégrant en particulier la réutilisation
efficace d’un savoir antérieur
antérieur..

29/11/2017 10:05 E M . Mellouli 4


1. Introduction
1.1. Les systèmes numériques
Utilisation dans différents secteurs industriels
Télécoms
Aéronautique
Automobile
Construction électrique
Transport ferroviaire
Cartes à puce
Les CI numériques remplacent plusieurs circuits analogiques
Audio recording: from tape to music CD to MP3 player
Image processing : from silver-halide film to digital camera
Avantages des systèmes numériques
Reproduction de l’information
Flexibilité et fonctionnalité : stockage facile, transmission et
manipulation de l’information.

29/11/2017 10:05 E M . Mellouli 5


1. Introduction
1.2. Motivations
Réduire le temps de prototypage --> time-to-market

Réduire le coût de production

Faible consommation de puissance

Taille réduite du système

Fiabilité

29/11/2017 10:05 E M . Mellouli 6


1. Introduction
1.3. Introduction à la modélisation hardware
Un VHDL, qu’est ce que c'est ?
moyen de décrire un système matériel :
Qu’est ce qu’un système matériel ?
en général, il s’agit d’un schéma mettant en œuvre :
un certain nombre de composants
des connexions entre composants

29/11/2017 10:05 E M . Mellouli 7


1. Introduction
1.3. Introduction à la modélisation hardware
Répondre à une spécification par une structure réalisable
sur un circuit électronique.
Les niveaux de description peuvent être variables:
Niveau système : comportement du circuit
Niveau transfert de registre RTL
Niveau logique

29/11/2017 10:05 E M . Mellouli 8


1. Introduction
1.3. Introduction à la modélisation hardware
Exemple:

29/11/2017 10:05 E M . Mellouli 9


1. Introduction
1.3. Introduction à la modélisation hardware
VHDL :
ne vise pas une exécution, il est utilisé pour :

La conception

La simulation

La synthèse (l’implémentation)

29/11/2017 10:05 E M . Mellouli 10


1. Introduction
1.3. Introduction à la modélisation hardware
la brique de base est le composant ou l'entité :
tout système est bâti à partir de cette brique.
dans les langages de programmation les briques de base sont les
procédures et les fonctions :
• la procédure est appelée puis oubliée :
– activation explicite
• le composant existe en soi :
– activation implicite par événements sur ses entrées

main()
{
...
resultat = Factorielle(x)
X resultat
Factorielle

}

29/11/2017 10:05 E M . Mellouli 11


1. Introduction
1.3. Introduction à la modélisation hardware
fonctionnement concurrent des composants :
si a et b évoluent en même temps, alors les composants c1 et c2 ont
un fonctionnement parallèle (concurrent)
b s2 a s1
C2 C1

La notion du signal :
connexion des composants entre eux s3
C3 C4

La notion du temps est gérée :


prise en compte des contraintes réel du matériel :
• temps de traversée,
• de calcul,
• etc.
29/11/2017 10:05 E M . Mellouli 12
1. Introduction
1.3. Introduction à la modélisation hardware
Les avantages de VHDL :
indépendant du constructeur Portabilité
indépendant de la technologie
indépendant du niveau de conception
Standard IEEE :
reconnu par les vendeurs d’outils électronique
grand nombres de bibliothèques :
• d’opérateurs
• de composants
• de fonctions
nombreux outils :
• compilateur, simulateur
• mais aussi des outils de synthèse

29/11/2017 10:05 E M . Mellouli 13


1. Introduction
1.3. Introduction à la modélisation hardware
VHDL :
Langage moderne, puissant, général :
jeu d’instructions complet et très riche
fort typage des données
compilation séparée des entités
Développement parallèle facilité :
travail d’équipe :
découpage en unités de conception
développement et validation parallèle
nécessite de bien identifier les interfaces entre les blocs fonctionnels
Simulation du système :
à tous les niveaux :
modèles
réalisation

29/11/2017 10:05 E M . Mellouli 14


1. Introduction
1.3. Introduction à la modélisation hardware
Différence entre le langage C et VHDL :

• VHDL C/C++/pascal

• Equation compilation

• Synthèse assembleur

•mov al,a
•Mov bl,b
•Xor al,bl
•Not al

29/11/2017 10:05 E M . Mellouli 15


1. Introduction
1.4. Conception des systèmes numériques
La conception d’un circuit intégré consiste à rechercher
un modèle vérifiant un ensemble de spécifications
généralement exprimées en terme de fonction, de
performance, de consommation et de coût.
Conception : 4 phases importantes
Spécification : définitions du problème
Traduction logique : Modélisation et synthèse
Implantation : Layout ou réalisation physique
Fabrication : physique du semi-conducteur

29/11/2017 10:05 E M . Mellouli 16


1. Introduction
1.5.2. Flot de conception
La recherche de modèle vérifiant un ensemble de spécifications est
réalisée séquentiellement dans une hiérarchie d’abstractions :
Dans un premier temps, le concepteur traduit la description très haut
niveau du circuit en un langage de description matériel de haut
niveau.
A ce niveau d’abstraction (appelé RTL pour “Register Transfert
Level”), le circuit est constitué de blocs combinatoires et d’éléments
de mémorisation.
Le concepteur raffine ensuite ce modèle à l’aide d’outils de synthèse
logique pour obtenir une description niveau “portes” du circuit, lequel
est alors considéré comme une interconnexion de portes réalisant
des fonctions logiques élémentaires (comme des ET, des OU, des XOR,
etc...).

29/11/2017 10:05 E M . Mellouli 17


1. Introduction
1.5.2. Flot de conception
En substituant ces portes par leur description niveau “transistor”
(préalablement conçues dans les circuits à cellules pré-
caractérisées), le concepteur obtient la description niveau “transistor”
du circuit.
La dernière étape consiste à positionner sur le silicium ces transistors
lors de la phase de placement-routage pour obtenir le modèle
physique du composant.
La deuxième étape de conception consiste à fabriquer le circuit.
Comme le processus de fabrication peut introduire des différences
entre le fonctionnement du circuit réel et son modèle, le concepteur
doit vérifier pendant cette dernière étape, appelée étape de
caractérisation, que le circuit vérifie bien les spécifications.

29/11/2017 10:05 E M . Mellouli 18


1. Introduction
1.5.2. Flot de conception
Exemple:

29/11/2017 10:05 E M . Mellouli 19


1. Introduction
1.5.2. Flot de conception
Exemple:

29/11/2017 10:05 E M . Mellouli 20


1. Introduction
1.5.2. Flot de conception

29/11/2017 10:05 E M . Mellouli 21


1. Introduction
1.5.2. Flot de conception
On observe le rôle fédérateur du VHDL car il intervient au moins sur 3
niveaux:
celui de la description comportementale traduisant les spécifications :
synthèse architecturale
celui du code RTL (Register Transfert Level) : synthèse logique
et enfin au niveau technologique post-Layout censé représenter le
circuit « vrai » : simulation post-Layout
Ces trois types de description seront validées par une même famille
de fichiers de test eux-mêmes écrits en VHDL.

29/11/2017 10:05 E M . Mellouli 22


1.5.2. Flot de conception
1.5.2.1. Synthèse architecturale
La description comportementale définit la fonction du
circuit sans définir les structures, ni les connexions entre
les éléments.

Description au niveau RTL : décrit l’architecture du circuit


sous forme de blocs logiques des milliers de lignes de
code pour un circuit complet.

29/11/2017 10:05 E M . Mellouli 23


1.5.2. Flot de conception
1.5.2.2. Synthèse logique
Synthèse logique

Optimisation des équations logiques

Objectif : minimiser une fonction de coût liée à la technologie


(surface, vitesse, puissance),

29/11/2017 10:05 E M . Mellouli 24


1.5.2. Flot de conception
1.5.2.3 Synthèse physique
Synthèse physique : 3 étapes
Synthèse électrique : niveau porte niveau transistor
Synthèse topologique : niveau transistor niveau layout
Placement / routage : assemblage optimisé des cellules (niveau
layout) layout complet du circuit

29/11/2017 10:05 E M . Mellouli 25


1. Introduction
1.6. Unités de conception
Elles sont toujours constituées de 2 parties

Vu externe vue interne

29/11/2017 10:05 E M . Mellouli 26


1. Introduction
1.6. Unités de conception
Exemples

Composant vu externe vue interne

29/11/2017 10:05 E M . Mellouli 27


1. Introduction
1.6. Unités de conception
5 unités de conception disponible en VHDL :

29/11/2017 10:05 E M . Mellouli 28


1. Introduction
1.6. Unités de conception
Spécification d’entité :
Définit la vue externe :

Description des entrées et des


sorties de la structure en
explicitant pour chacune
d'entre elles le nom,
la direction (IN, OUT et INOUT) et le type.

29/11/2017 10:05 E M . Mellouli 29


1. Introduction
1.6. Unités de conception
Spécification d’architecture :

29/11/2017 10:05 E M . Mellouli 30


*
1. Introduction
1.6. Unités de conception

L'entité donne les informations concernant les signaux


d'entrées et de sorties de la structure ainsi que leurs noms
et leurs types.

L'architecture décrit le comportement de l'entité.

Il est possible de créer plusieurs architectures pour une


même entité. Chacune de ces architectures décrira l'entité
de façon différente.

29/11/2017 10:05 E M . Mellouli 31


1. Introduction
1.6. Unités de conception
Modèle comportemental :
Description du fonctionnement du système :
Algorithmes,..
Algorithme proche de ceux des langages de programmation
Le temps peut intervenir :
Permet de coller à la réalité par le respect des temps de traversée
Une description haut niveau est d’abord comportementale :
Elle sert de référence pour la suite de la conception
le comportement de la structure est directement inscrit dans
l'architecture à l'aide d'instructions séquentielles

29/11/2017 10:05 E M . Mellouli 32


1. Introduction
1.6. Unités de conception
Modèle comportemental : Exemple additionneur
algorithmes, équations logique, ...

29/11/2017 10:05 E M . Mellouli 33


1. Introduction
1.6. Unités de conception
Modèle structurel
Dans ce type de description, on relie entre eux des composants
préalablement décrits en VHDL.
Description par la structure :
liste d’éléments
interconnexions
ne fait pas intervenir le temps :
connexions permanentes
Décrit la structure de la fonction réalisée

29/11/2017 10:05 E M . Mellouli 34


1. Introduction
1.6. Unités de conception
Modèle structurel : Exemple additionneur

29/11/2017 10:05 E M . Mellouli 35


1. Introduction
1.6. Unités de conception
Modèle structurel : Exemple additionneur Code VHDL

29/11/2017 10:05 E M . Mellouli 36


1. Introduction
1.6. Unités de conception
Modèle structurel : hiérarchisation

29/11/2017 10:05 E M . Mellouli 37


1. Introduction
1.6. Unités de conception
Code VHDL avec Demi Add

29/11/2017 10:05 E M . Mellouli 38


1. Introduction
Modèles de description VHDL

29/11/2017 10:05 E M . Mellouli 39


1. Introduction
1.6. Unités de conception
Modèle flot de données

29/11/2017 10:05 E M . Mellouli 40


1. Introduction
1.6. Unités de conception
Spécification de configuration :
Admettons que plusieurs architectures aient été créées pour l'entité A
utilisée au sein de l'architecture arch_princ de l'entité princ. Lors de
la synthèse ou de la simulation de l'entité princ, il va être nécessaire
de spécifier quelles sont les architectures à utiliser. Cette spécification
peut être faite grâce à l'utilisation d'une configuration.
La configuration permet, comme son nom l'indique, de configurer
l'entité à laquelle elle est associée. On peut, par exemple, spécifier les
architectures à utiliser pour tous les composants déclarés au sein
d'une description.
Pour qu'une description soit portable, c'est-à-dire synthétisable ou
simulable sur des outils différents et pour des composants cibles
différents, il est préférable de n'avoir qu'une seule architecture par
entité. Les configurations deviennent alors inutiles.

29/11/2017 10:05 E M . Mellouli 41


1. Introduction
1.6. Unités de conception

29/11/2017 10:05 E M . Mellouli 42


1. Introduction
1.6. Unités de conception
Spécification de package :

Dans le langage VHDL, il est possible de créer des “package” et


“package body” dont les rôles sont de permettre le
regroupement de données, variables, fonctions, procédures, etc.,
que l'on souhaite pouvoir utiliser ou appeler à partir
d'architectures.

Il est ainsi possible de se créer une sorte de bibliothèque d'objets


(constantes, variables particulières, fonctions ou procédures
spécifiques, etc.) que l'on pourra appeler à partir de plusieurs
descriptions.

29/11/2017 10:05 E M . Mellouli 43


1. Introduction
1.6. Unités de conception
Spécification de package :

Cette possibilité est particulièrement intéressante lorsque l'on


utilise, au sein d'un projet contenant plusieurs entités, des
ressources (constantes, variables particulières, fonctions...)
identiques.

Imaginons, par exemple, qu'un projet contenant deux entités A


et B aux architectures respectives arch_A et arch_B utilise la
constante de temps tps_propa = 27ns. L'utilisation d'un package
nommé pack_proj et d'un package body nommé pack_bod
donnerait :

29/11/2017 10:05 E M . Mellouli 44


1. Introduction
1.6. Unités de conception

29/11/2017 10:05 E M . Mellouli 45


1. Introduction
1.6. Unités de conception
Déclaration d’un package :

29/11/2017 10:05 E M . Mellouli 46


1. Introduction
1.6. Unités de conception
Déclaration du corps de package :

29/11/2017 10:05 E M . Mellouli 47

Vous aimerez peut-être aussi