Vous êtes sur la page 1sur 48

Vhsic Hardware Description

Language

Vhsic : Very High Speed Integrated Circuit

Langage de description des systèmes matériels


Plan

 Introduction
 Langages de description matériel HDL
 Historique
 Définition du langage VHDL
 Flot de conception
 Méthodes de conception
 Modélisation et synthèse
 Unités de conception

2
Introduction

3
Introduction
ASIC

Circuits Circuits Circuits


analogiques intégrés programmables

Amplificateurs Microprocesseurs
Opérationnels Microcontrôleurs
Timers … Mémoires
Circuits PLDs ….
logiques
Combinatoires
Séquentiels

4
Introduction

Monde des Processeurs Monde conçu en HW


(µP, µC, DSP) (ASIC, PLD)
Architecture fixée par le constructeur Architecture conçue par l’utilisateur
(CPU, RAM, ROM, EPROM, Périphériques,…)
Les modules électroniques du circuit
Exécution séquentielle des instructions conçu fonctionnent en mode parallèle et/ou
séquentiel
Fréquence du fonctionnement limitée par
le mode séquentiel Fréquence de fonctionnement élevée
(mode parallèle)

5
Langages HDL

Abstraction textuelle

Évolution des technologies a permis une forte intégration de


transistors sur une même puce.
Apparition des langages de description du matériel (HDL) dont
le but de : modéliser, simuler et concevoir,
Traduction de la description textuelle en dessin de transistors
(dessin au micron).
Les langages sont structurels : description de l’ensemble par
assemblage des composants élémentaires.
Existence des bibliothèques de composants élémentaires (dessin
au micron destiné au placement, routage et simulateur).
Le concepteur aborde le problème à un niveau d’abstraction plus
élevé: manipulation des portes logiques
6
Langages HDL
Abstraction fonctionnelle
 Les langages fonctionnels (ou comportementaux) ont mis en
évidence des descriptions à des niveaux d’abstraction plus élevés.
 Les langages fonctionnels ont répondu à des besoins
fondamentaux des concepteurs de circuits intégrés :
 Réduction des temps de conception.
 Accélération des simulations .
 Normalisation des échanges entre industriels, entre
fournisseurs et clients: Verilog, VHDL et SystemC .
 Anticipation: possibilité de concevoir un système alors que ces
composants ne sont pas encore disponible.
 La fiabilité : limitation des risques d’erreurs.
 La portabilité
 Le synthétiseur logique détermine la structure à partir de la
fonction.

7
Historique
1999 VHDL AMS
conception mixte

1993 Révision du standard


IEEE 1164

1987 Publication du standard


IEEE 1076

1986 Transfert des droits à


IEEE

1983 Développement des bases du


langage par Intermetrics, IBM et TI

1981 Initiation du langage


aux Etats Unis

8
Définition
Le VHDL est un langage fonctionnel de haut niveau qui ne
vise pas une exécution, il est utilisé pour :
 La modélisation des systèmes électroniques complexes.
 La simulation du comportement des modèles.
 La synthèse
 La documentation.

9
Définition
A ce jour on utilise le langage VHDL pour :

Concevoir des circuits spécifiques (ASICs)

Programmer des composants programmables comme les


PLDs, CPLDs et FPGAs.

10
Flot de conception

11
Méthodes de conception
La complexité des fonctions réalisées sur une seule puce de silicium ne peut
être maîtrisée que grâce à l’assistance d’outils logiciels appropriés et de
méthodes de conception systématiques:

 Conception descendante « Top-Down »


 Spécifications à haut niveau jusqu’à l’implémentation détaillée.
 Utilisation des cellules standards, matrice de portes, séquenceurs

 Conception ascendante « Bottom-up »


Assemblage à partir d’une bibliothèque existante.

 Conception mixte « Meet in the Middle»


Adaptée à la réalisation des circuits à application spécifiques ASICS

12
Méthodes de conception

descendante mixte

ascendante

13
Modélisation et synthèse
Modélisation des systèmes électroniques complexes.

 Langage de haut niveau facilitant la description comportementale des


modèles.
 Fort niveau d'abstraction. La faisabilité matérielle n'est pas
nécessairement prise en compte à ce stade.
 Le partitionnement en plusieurs sous-ensembles permet de sub-diviser
un modèle complexe en un certain nombre d'éléments prêts à être
développés séparément.

14
Modélisation et synthèse
Simulation :

 Les modèles comportementaux ( spécifications ) sont simulés


afin de vérifier que la fonction est bien la fonction désirée.

 Disposer du modèle et des stimuli (description des signaux


d’entrée du modèle au cours du temps) .

 Un environnement de simulation complet comprend:


 Le modèle de l’objet à simuler.
 Générateur de stimuli.
 Un vérificateur automatique de résultats

15
Modélisation et synthèse
Synthèse:
Le passage d’une vue (modèle) à l’autre s’appelle synthèse.
 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.
 Synthèse physique:
Passage d'une vue structurelle à une vue physique. On part
généralement d'une liste de portes et de leurs interconnexions
(netlist) pour aboutir à une description physique du circuit en
termes de masques. Fonction de placement et routage de
cellules (transistor, portes, ALU , mémoires).

16
Modélisation et synthèse
Synthèse:

 Les langages fonctionnels permettent de concevoir des circuits


(description des objets qui seront véritablement fabriqués).
 Prendre en considération les limites des outils logiciels:
 Traduction du code en portes logiques (synthétiseurs)
 Description structurelle en dessin au micron (placeurs- routeurs)
 Production d’une description structurelle la plus économique
possible (surface de silicium plus petite possible).

17
Modélisation et synthèse
Limites actuelles du VHDL :

Création de modèles de simulations: Création d’un circuit intégré:

NORME IEEE VHDL NORME IEEE VHDL

La totalité de la norme Seule une partie de la


peut être utilisée pour norme peut être utilisée
réaliser des modèles de pour réaliser des circuits.
simulations.

18
Modélisation et synthèse

Modélisation Synthèse
Tout le langage: Langage simplifié(pas de
Logique + Temporel retards). Le style d’écriture
Un modèle peut être anticipe une primitive circuit.
comportemental, structurel ou La synthèse demande une
de type data-flow bonne connaissance du
 Exemple: circuit et de la technologie.
crée des programmes de test

19
Modélisation et synthèse
Les avantages de VHDL :

Le VHDL :
 indépendant du constructeur
 indépendant de la technologie Portabilité
 indépendant de la démarche
 indépendant du niveau de conception

20
Unités de conception
Définition:
L’unité de conception (design unit) est le plus petit module
compilable séparément.

21
Unités de conception
Définition:

VHDL offre cinq types d’unités de conception :


 La déclaration d’entité;
 Le corps d’architecture (architecture body), ou plus
simplement architecture;
 La déclaration de configuration;
 La déclaration de paquetage;
 Le corps de paquetage (package body).

22
Unités de conception
Entité et architecture:

 En VHDL, une structure logique est décrite à l'aide d'une


entité et d'une architecture de la façon suivante :

23
Unités de conception
 Déclaration de l’entité:
Portion du code permettant de définir en particulier les Entrées/Sorties

 Les " ports " d‘E/S doivent impérativement être déclarés dans l'entité. Leur
mode sera : in, out, inout et buffer.
 Les " ports " peuvent être déclarés sous forme de " signaux " simples ( ex :
bit ) ou sous forme de bus ( ex : bit_vector ).

Remarque: Mode buffer est déconseillé dans une structure hiérarchique

24
Unités de conception
Entité : Syntaxe de déclaration
Entity EXEMPLE is
port (
liste des ports d‘ E/S comportant : nom_des_signaux, mode et type.
);
end EXEMPLE;

 Le nom donné à l'entité peut être quelconque. ( excepté les mots


réservés ! )
 Donner de préférence le même nom à l'entité et au fichier VHDL.
Ex : exemple.vhd
 La liste des ports est comprise entre deux parenthèses, et suivie d'un
point-virgule.
 Nom de l'entité facultatif après le mot clef "end"

25
Unités de conception
Exemple d’entité

Entity EXEMPLE is
port ( A, B : in bit;
SEL : in bit;
Y : out bit
);
end;

A
Y
B
EXEMPLE
SEL

Equivalence schématique

26
Unités de conception
Architecture :

Portion de description du comportement du dispositif à synthétiser.


 Est associée à une entité.
 Possède une partie déclarative et une partie opératoire.

Architecture ARCH of EXEMPLE is


-- partie déclarative
signal Z : bit ; -- signal interne

Begin
-- partie opératoire
Z <= A when SEL = '0' else B;
Y <= '1' when Z = A else '0';
end ARCH;

27
Unités de conception
Architecture :

La partie déclarative peut contenir :

 Déclarations de signaux internes.


( autres que les I/Os )
 Déclarations de composants.
( gestion de la hiérarchie, VHDL structurel).
 Déclarations de constantes.
 Déclarations de types d'objets.
( utilisé en particulier pour les machines d'états ).
 Déclarations de sous-programmes.
( fonctions et procédures )

28
Unités de conception
Trois descriptions d’architectures sont possibles:

 Description comportementale : ce que fait l’entité

 Description structurelle : comment elle le fait

 Description flot de donnés: Data flow

29
Unités de conception
Description Comportementale: type RTL
E1
E2
Bascule D
 Décrit ce que fait l’entité Circuit
E3 Combinatoire Y D Q S
E4
CLK CK
Entity Circuit is port ( E1, E2, E3, E4 : in bit;
Reset, CLK : in bit;
CLR
S : out bit );
End;
Architecture RTL of Circuit is
Reset
Signal Y: bit;
Begin

Y <= (E1 xor E2) and (E3 or not(E4));

process(reset, CLK)
begin
if Reset = ‘0’ then S <= ‘0’;
elsif rising_edge(CLK) then S <= Y;
end if;
end process;
End RTL;
30
Unités de conception

 Description structurelle : comment elle le fait

 décrit la structure de la fonction réalisée

 décrit un schéma, des connexions entre composants

31
Unités de conception
 Description structurelle:

32
Unités de conception
 Description structurelle:

Déclaration et instanciation d’un composant:

33
Unités de conception
Exemple de description structurelle:

34
Unités de conception
 Description flot de donnés: Data Flow
Exprime le flot de données sortant par rapport au flot entrant

Entity XOR_ENT is port ( E1, E2 : in bit;


S : out bit );
End;

Architecture DATA_FLOW of XOR_ENT is

Begin

S <= E1 XOR E2;

End DATA_FLOW ;

35
Unités de conception
Exemple: Additionneur complet

Cin

A S
Additionneur
B Cout

36
Unités de conception

Exercice d’application:

Donner le modèle comportementale,


structurel et data flow de l’additionneur
complet.

37
Unités de conception
Modèle comportemental:
architecture comportementale of additionneur is
begin
process
A begin
if (A= ‘0’ and B = ‘0’ and Cin = ‘0’ ) then S
S <= ‘0’ ; Cout <= ‘0’ ;

B end if;
if (A= ‘0’ and B = ‘0’ and Cin = ‘1’ ) then
S <= ‘1’ ; Cout <= ‘0’ ;
end if;
Cout
Cin if (A= ‘0’ and B = ‘1’ and Cin = ‘0’ ) then
S <= ‘1’ ; Cout <= ‘0’ ;
end if;
…...
wait on A, B ;
end process;
end comportementale;
38
Unités de conception
Modèle structurel:

39
Unités de conception
Modèle structurel:

architecture structurelle of additionneur is


Signal s1, s2, s3 : bit ;

component porte_OU port ( e1 : in bit;


e2 : in bit; begin
s : out bit );
u0: porte_ET port map (A, B, S2) ;
end component ;
u1: porte_XOR port map (A, B, S1) ;
component porte_ET port ( e1 : in bit;
e2 : in bit; u2: porte_ET port map (S1, Cin, S3) ;
s : out bit );
u3: porte_XOR port map (S1, Cin, S) ;
end component ;
u4: porte_OU port map (S2, S1, Cout) ;
component porte_XOR port ( e1 : in bit;
e2 : in bit; end structurelle 
s : out bit );
end component ;

40
Unités de conception
Modèle Data flow:

architecture data_flow of additionneur is


begin
S <= A xor B xor Cin;
Cout <= A and B or (A xor B) and Cin
end data_flow;

41
Unités de conception
Configuration
Si l'entité A est utilisée au sein de l'architecture arch_princ de l'entité princ, et si on
a plusieurs architectures pour cette entité A. 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.

Configuration conf_princ of Princ is


for arch_princ
for U1 : A use entity work.A(arch_A2)
end for;
end for;
end conf_princ;
42
Unités de conception
Configuration

 Laconfiguration permet, comme son nom l'indique, de


configurer l'entité à laquelle elle est associée.
 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é.

43
Unités de conception
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.

44
Unités de conception
Package:
 Décrit une vue externe (boite noire)
 Regroupement de déclaration de type et/ou sous programme.
 Construction d’une bibliothèque.
 Possibilité de l’exportation de l’un de ces objets.
 Le contenu de la déclaration du paquetage est visible de l’extérieur.
 Déclaré avant l’entité.

Package Body:
 Décrit une vue interne (comment de la boite noire)
 Contient l’écriture proprement dites des fonctions et des procédures
déclarées au niveau du paquetage.
 Le corps du package n’est pas toujours nécessaire.

45
Unités de conception
Package:

package PACK is
-- déclarations de types, sous types, signaux, composants
-- constantes, sous programmes (sans code)
-- aucune variable
end PACK;

Package Body:

Package body PACK is


-- déclarations identiques (sauf signaux)
-- corps des SP de la partie déclarative
end PACK;

46
Unités de conception
Exemple:

use work.geometrie.pi;
use work.geometrie.aire_cercle;
..........

calc: process(h)
variable aire, perim :real ;
begin
.....
aire_cercle (rayon,aire);
perim := 2*pi*rayon;
.....
end process calc;
.......

47
Unités de conception

Exercice :

Donner le modèle comportemental et le modèle


structurel d’un multiplexeur 2 vers 1.

48

Vous aimerez peut-être aussi