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 : [Link]
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 [Link];
use [Link].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