Sie sind auf Seite 1von 43

Unit denseignement : Bases des systmes logiques (BSL)

Introduction
au langage VHDL

Etienne Messerli
Mise jour le 6 octobre 2008

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 1

Contenu de la prsentation

Documents fournis / conseills


Evolution des mthodes de conception et langage
de haut niveau
Les concepts de base du langage VHDL
Le VHDL pour la synthse automatique
91re partie :
notion de base et instructions concurrentes

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p2


Documents

Manuel VHDL, synthse et simulation


Introduction aux logiciels de Mentor Graphics pour la
conception de circuits
Livres recommands:
9 VHDL. Introduction la synthse logique. Philippe Larcher,
Eyrolles, 1997
9 VHDL. Du langage au circuit, du circuit au langage. J. Weber et M.
Meaudre, Dunod, 2000

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p3

Manuel VHDL, synthse et simulation

Liste des chapitres lire :


91. Introduction
92. Les concepts du langage VHDL
93. Les instructions concurrentes
paragraphes 3-1 3-4
97. Visseries et astuces
paragraphes 7-1 7-4
99. Description de systmes combinatoires

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p4


Unit denseignement : Bases des systmes logiques (BSL)

Evolution des technologies


et des mthodes de conception

Introduction VHDL
E. Messerli
REDS@HEIG-VD

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 5

Evolution "Circuits logiques programmables"

Depuis les annes 1995 :


Formidable volution des
circuits logiques programmables
Caractristiques principales :
9densit inclu RAM, jusqu' 20Mbits
9frquence jusqu' 650 MHz
9prix par gate 1996 : 1ct/gate
2004 : 0,01ct/gate
2006 : 0,0001ct/gate
Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p6
Evolution PLD : caractristiques

technologie 90 nm et 65 nm, futur 45 nm!


11 couches d'interconnections en cuivre (plus alu!)
multiples arbres d'horloges (32) et PLL (16)
frquence jusqu' 650 MHz
nombre de gates jusqu' 10M, flip-flops jusqu' 200K
plusieurs Mbits de RAM, jusqu' 20 Mbits
blocs pr-cbls (DSP, ALM, SERDES)
9 24 transceivers (3 6,5 GigaBit/s), 900 multiplicateurs 18x18
Hard Core (PCI, PCI express, Ethernet MAC, )
Nbr I/O suprieurs 1'100, (boitier FBGA1768)
Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p7

Evolution PLD : prix mai 2008

PLDs de quelques francs 10K francs !


STRATIX-III FPGA 150K, FBGA1152 : 11'000 $
9 142K LEs, total RAM 7.3Mbits, 8 PLLs 2'850 Kgates
9 380 Multiplier 18x18,744 I/O 0,004 $/gate
CYCLONE-III FPGA 5K, EQF144 : 13 $
9 5K LEs, total RAM 414Kbits, 2 PLLs 100 Kgates
9 23 Multiplier 18x18, 94 I/O 0,0001 $/gate
MAX-II CPLD 240 LE, TQFP100 6$
9 240 LEs, total Flash memory 8Kbits, 0 PLLs 4.8 Kgates
9 0 Multiplier 18x18, 80 I/O 0,001 $/gate

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p8


Ancien CPLD : MAX 7000S

Technologie EEPROM
EPM7128SLC84-10
9 $ 30 (-15 $20)
9 68 IOs
9 128 MacroCells
9 128 DFF
9 env. 2500 gates
9 240 MHZ
9 prix ~ 0,01 $/gate

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p9

Nouveau PLD : MAX II

Technologie Flash
FPGA vendu comme CPLD !
EPM1270T144C4
9 $32 (C5 $23)
9 116 IOs
9 1270 LEs
9 1270 DFF
9 env. 20'000 gates
9 8Kbits memory
9 300 MHz
9 prix ~ 0,0015 $/gate
Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 10
FPGA low cost : Cyclone II

Technologie SRAM
EP2C8F256C8
9 env. 30.-
9 182 IOs
9 8256 LEs
9 8256 DFF
9 18 multiplicateurs, 2 PLLs
9 env 150000 gates (60 x EPM128!)
9 162Kbits memory
9 350 MHz
9 prix ~ 0.0002 Fr/gate Boitier 256-FBGA

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 11

Prix Cyclone III, ALTERA

Info octobre 2007


Cyclone III, EP3C25
9 24,624 LEs
9 66 multiplicateurs 18x18
9 594Kbits de RAM
9 4 x PLLs
- EP3C25F324C8 (FBGA)
1 pice $49
prix ~ 0.0001 $/gate

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 12


Complexit et cots...
Nouveau dveloppement:
9PLD indispensable (CPLD, FPGA, HardCopy, ASIC)
Niveau de complexit augmente rapidement :
9dizaines vers centaines de milliers de portes,
voir millions de portes
Dveloppement " la main" trop difficile et trop
coteux :
outils informatiques performants et
bibliothques de "pices" sont indispensables
Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 13

Matriser la complexit

Description performante et lisible


9description hirarchique
Matriser les temps de dveloppement
9augmenter la productivit de description
Assurer une prennit des descriptions
Pouvoir rutiliser des modules
Pouvoir simuler les descriptions

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 14


Solution :

Nouvelles mthodes de conception associes


avec un langage de haut niveau
soit :
VHDL (prfr en Europe)
ou Verilog (prfr aux USA)

& Outils de dveloppement modernes


Les bidouilles ne sont plus possibles

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 15

Reprsentations de fonctions logiques :

Schma-bloc Top

Algorithme, flot de donnes


Table de vrit
VHDL
Equation logique
Schma logique (portes, fonctions courantes)
Schma lectrique (transistors, rsistances, etc)
(PLD : table de fusible)
Down
Photographie du circuit (chip ou carte)
Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 16
Niveaux de description en VHDL

Haut niveau comportemental


9non synthtisable actuellement
RTL Register Transfert Level (inclu schma bloc)
9synthtisable
Netlist de primitive
9rsultat obtenu aprs synthse
niveau porte
9rsultat obtenu aprs placement-routage

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 17

Historique du langage VHDL

VHDL signifie :
9VHSIC Hardware Description Langage
(Very High Speed Integrated Circuit)
Dvelopp par le DOD (annes 1980)
(Dpartement Amricain de la dfense)
Normes IEEE: 1076 (1987, 1993),
1164 (1993) et 1076.3 (1997)
(Institute of Electrical and Electronics Engineers)

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 18


Etablissement d'un standard

1993 rvision norme 1076, VHDL93


1993 paquetage Std_Logic_1164
1997 paquetages arithmtiques
Numeric_bit & Numeric_Std

1999 sous-ensemble synthtisable,


norme 1076.6

Synthse : standard tablit en 2000

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 19

dia laiss vide volontairement

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 20


Unit denseignement : Bases des systmes logiques (BSL)

Les concepts de base


du langage VHDL

Introduction VHDL
E. Messerli,
REDS@HEIG-VD

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 21

Concepts de base de VHDL

Structure similaire ADA, avec


nouvelle classe dobjets : les signaux
types physiques
notion de temps
programme description dun modle = ensemble
de processus concurrents
entity (interface) / architecture (body)
bibliothques

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 22


Unit de conception (module VHDL)

Une entit (entity)


Une architecture (architecture)
Une configuration
Une ou plusieurs bibliothques

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 23

Unit de conception (suite)

Configuration Library
package
package
package
Library
entity
package
package
package
architecture
architecture
Unit de conception

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 24


Les lments du langage

Mots cls : mots rservs du langage


le langage dfinit 100 mots rservs (voir annexe)
Instructions VHDL termines par le sparateur
;

-- exemple instruction termine par ;


Sortie_o <= (A_i or not B_i) and C_i;

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 25

les lments du langage

Commentaires :
dbutent par deux tirets -- , se terminent avec la ligne

--Ceci est un commentaire


--sur deux lignes

entity Exemple is -- commentaire


port (A : in Std_Logic; -- commentaire
...

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 26


les lments du langage

Identificateurs :
9ils doivent commencer par une lettre
9ils comportent des lettres (minuscules ou majuscules), des
chiffres et des souligns (underscore)
9un seul soulign (underscore) de suite :
Bus_Data_Interne
9le VHDL ne distingue pas les majuscules des minuscules
9exemple d'identificateurs identiques :
Bus_Data, BUS_DATA, bus_data, BuS_DatA

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 27

Les objets du langage

Objet : information manipule par le langage


Ils sont rpartis en quatre classes :
9constantes : objets de valeurs fixes
9variables : objets appartenant au monde software

9signaux : objets appartenant au monde hardware


9fichiers : objets servant stocker des valeurs

On parle frquemment de classes d'objets

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 28


Les types du langage

scalaires :
9 numrs (Boolean, Std_Logic,..),
entiers (Integer, ...), physiques (Time),
flottant (Real)
composites : tableau (array)
type Std_Logic_Vector is array( natural range<>) of Std_Logic;

Types ci-dessous pas utilis dans l'unit BSL :


accs : pointeur pour accder des objets (dynamique)
fichier : squence de valeur d'un type donn
Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 29

Les oprateurs du langage


Oprateurs logiques : and,or,nand,nor,xor et xnor
Oprateur relationnel : =, /=, <, <=, > et >=
Oprateurs de dcalage : sll,srl,sla,sra,rol et ror
Oprateur d'addition : +, - et &
9 concatnation & : Vecteur_4Bits <= A & B & "10";
Oprateurs de signe + et -
Oprateur de multiplication : *, /, mod et rem
Oprateur divers : **, abs et not

Il est possible de surcharger les oprateurs, c'est dire


de leur donner une signification pour d'autres types.
Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 30
Types de port

in : entre
out : sortie
inout : entre/sortie,
signal bidirectionnel
buffer : sortie qui peut tre relue
Ne pas utiliser

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 31

Types de port (suite)

port out

port inout

port buffer
Ne pas utiliser
Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 32
Les signaux

Modlisation des signaux logiques (interconnections)


Ont des valeurs dfinies dans le temps : un pass,
un prsent et un futur (chronogramme)
Prennent la nouvelle valeur qui leur est affecte
quaprs un dlai non nul (temps de propagation)

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 33

Affectation d'un signal

Syntaxe de l'affectation d'un signal :


signal <= expression;

L'affectation reprsente un lien dfinitif entre le


signal et le circuit gnrant l'expression (connexion)
L'affectation du signal ne modifie pas la valeur
courante mais les valeurs futures

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 34


affectation d'un signal

Affecter une expression un signal correspond


connecter un signal sur la sortie d'une porte.
Plusieurs affectations sur un mme signal correspond
un
court-circuit !

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 35

Affectation de variable

Syntaxe de l'affectation d'une variable :

variable := expression;

L'affectation de la variable est instantane, ensuite


il n'existe plus aucun lien entre la variable et
l'expression

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 36


Le type Std_uLogic (type numr)

Dfini par le paquetage IEEE.Std_Logic_1164

type Std_uLogic is (
'U',-- tat non initialis
'X',-- tat inconnu fort
'0',-- tat logique 0 fort
'1',-- tat logique 1 fort
'Z',-- tat haute impdance
'W',-- tat inconnu faible
'L',-- tat logique 0 faible
'H',-- tat logique 1 faible
'-' -- tat indiffrent, don't care );

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 37

Std_Logic et Std_ulogic

Std_ulogic : L'interconnexion entre deux signaux est


interdite (unresolved).
9cas des sorties standards des circuits numriques. Elles ne
peuvent pas tre connectes ensembles.
Std_Logic : Interconnexion possible grce
l'utilisation d'une fonction de rsolution
9correspond aux sorties spciales (trois tats, collecteur ouvert,
..) qui sont interconnectes.

Type Std_Logic gnralement utilis dans l'industrie


=> utilis pour le cours
Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 38
Fonction rsolution pour le type Std_Logic

La valeur affecte au point d'interconnexion de deux sorties


Std_logic est rgie par la table de rsolution suivante:
constant resolution_table : stdlogic_table := (
-- ---------------------------------------------------------
-- | U X 0 1 Z W L H - | |
-- ---------------------------------------------------------
( 'U', 'U', 'U', 'U', 'U', 'U', 'U', 'U', 'U' ), -- | U |
( 'U', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X' ), -- | X |
( 'U', 'X', '0', 'X', '0', '0', '0', '0', 'X' ), -- | 0 |
( 'U', 'X', 'X', '1', '1', '1', '1', '1', 'X' ), -- | 1 |
( 'U', 'X', '0', '1', 'Z', 'W', 'L', 'H', 'X' ), -- | Z |
( 'U', 'X', '0', '1', 'W', 'W', 'W', 'W', 'X' ), -- | W |
( 'U', 'X', '0', '1', 'L', 'W', 'L', 'W', 'X' ), -- | L |
( 'U', 'X', '0', '1', 'H', 'W', 'W', 'H', 'X' ), -- | H |
( 'U', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X' ) -- | - |
);
Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 39

Dclaration d'un signal Std_logic

Syntaxe de la dclaration
signal A : Std_Logic;

A l'instant t=0ns le signal aura l'tat non initialis 'U' (Uninitialized)

Possible de donner une valeur initiale


signal A : Std_Logic := '0';

Cette initialisation est purement "soft", elle est excute l'instant


t=0 ns. Elle n'est pas synthtisable.

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 40


Le type Std_Logic_Vector

Le type Sdt_Logic _Vector est dfini dans le


paquetage Std_Logic_1164 de la bibliothque IEEE.

C'est un type compos de Sdt_Logic :

type Std_Logic_Vector is
array(natural range<>) of Std_Logic;

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 41

type Std_Logic_Vector

Gnralement, lors de la dclaration d'un signal, la taille


du vecteur est spcifie :

signal Vecteur : Std_Logic_Vector(7 downto 0);

9Remarque :
Il est possible de ne pas dfinir la taille d'un vecteur. Nous
parlons alors de vecteur non-contraint. Il s'agit d'une application
particulire pour les descriptions rutilisables

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 42


La notion de temps

Le VHDL dfinit la notion de temps


9Cette notion s'avre indispensable pour la description de
matriel
9Cette notion tait inconnue des prcdents langages tels :
CUPL, ABEL, ..
Il sera possible de modliser le comportement rel des
portes logiques (temps de retard)
Mme langage pour : synthse et simulation

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 43

notion de temps

Permet de simuler lcoulement du temps


Est intgre la notion de signal :
B <= A after 10 ns;

B
10ns

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 44


Le pilote d'un signal

La notion de temps permet d'exprimer l'volution d'un signal


Nous parlerons du PILOTE d'un signal

valeur Valeur courante du signal


passe couple date/valeur prvue

10 ns 10 ns 20 ns 30 ns 40 ns
'1'
'0' '0' '1' '0' '1'

Exemple du pilote d'une horloge 50 MHz

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 45

Droulement concurrent et squentiel

Dans un langage informatique :


9Les instructions ont un droulement squentiel
Dans un circuit :
9Toutes les portes fonctionnent simultanment
9Tous les signaux voluent de manire concurrente
Le langage VHDL dispose d'instructions concurrentes
pour la description de circuits (matriel)

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 46


Unit denseignement : Bases des systmes logiques (BSL)

Le VHDL pour la
synthse automatique

Introduction VHDL
E. Messerli
REDS@HEIG-VD

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 47

Fausses ides sur le langage VHDL

Le langage en tant que tel ne garantit pas :


9la qualit des descriptions
9la portabilit des descriptions
9les descriptions soient synthtisables
9le matriel obtenu soit optimum

Mauvais concepteur + VHDL = catastrophe

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 48


Exemple de description VHDL

Soit la description VHDL suivante :

Horloge <= not Horloge after 50 ns;

Cela correspond au chronogramme suivant :

100 ns

HORLOGE

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 49

Description d'une horloge 10 Mhz

Description correcte au sens du langage


Description parfaitement simulable
Aucun circuit ne correspond cette fonctionnalit

La description est non synthtisable

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 50


Ralisation d'un circuit : Design flow
Description VHDL
synthtisable (*.vhd) Manuelle
Console de simulation
"Console_REDS"
Dfinition Synthtiseur
pins (*.tcl) Precision

Traduction
VHDL
Description logique fichier SIMULATEUR
netlist (*.edf) VDHL
fonctionnelle
ModelSim
Simulation
temporelle

Placement routage
Quartus
Fichier de simulation
Intgration VHDL (*_tb.vhd)

Programmation circuit Automatique


fichier
fichiers program. *.pof VDHL
et rapport *.rpt (*.vho)

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 51

Ralisation d'un circuit : Design flow


Description VHDL
synthtisable (*.vhd)
Console de simulation
manuelle "REDS_Console"

Synthtiseur
.

VHDL
Description logique fichier SIMULATEUR
fonctionnelle Simulation
. VDHL
temporelle

Placement routage
.

Fichier de simulation
VHDL (*_tb.vhd)
Programmation circuit fichier
. VDHL
(*.vho)

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, E. Messerli, ReDS@HEIG-VD,


Introduction VHDL, p janvier
52 2007
Caractristiques des deux outils

Le simulateur :
9Interprte le langage VHDL
9Comprend l'ensemble du langage VHDL
Le synthtiseur :
9Traduit la description VHDL en une netlist logique
9Comprend uniquement un sous-ensemble du langage
VHDL

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 53

Le troisime outil

Finalement la netlist obtenue doit tre


intgre dans le circuit cible.
C'est l'outil de placement et routage
9Celui-ci est fourni par le fabricant du circuit
9Les temps de propagations seront dtermins

Le fonctionnement logique
n'est pas modifi durant cette tape

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 54


Ensemble synthtisable du VHDL
Ensemble du VHDL
VHDL synthtisable
VHDL synthtisable
outil X
outil Y

VHDL Synthtisable

VHDL
du cours

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 55

Conception avec le VHDL

Il faut penser CIRCUIT.


Une bonne conception commence par une
dcomposition du systme (hirarchie).
Il faut imaginer l'architecture physique du
systme.
Le VHDL n'est pas un outil de CONCEPTION.
Le VHDL est un outil de DESCRIPTION.

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 56


La portabilit des descriptions

Afin de garantir une bonne portabilit des descriptions :


9Mthode indispensable
9Une seule fonction par module VHDL
9Faire des descriptions simples et lisibles
9Expliciter les lments mmoires
9Utiliser uniquement les bibliothques standardises IEEE

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 57

Structure dun module VHDL

Un module VHDL est compos de :


9Rfrence des bibliothques
9Entit (entity) :
Dfinit l'interconnexion avec l'extrieur
9Architecture (architecture) :
Dfinit le fonctionnement interne

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 58


Structure de lentit (entity)

-- Librairie IEEE
library IEEE;
use IEEE.Std_Logic_1164.all; --Defini type Std_Logic

entity Exemple is
port(Entree_i : in Std_Logic;
Vecteur_i : in Std_Logic_Vector(3 downto 0);
Sortie_o : out Std_Logic;
BiDir_io : inout Std_Logic);
end Exemple;

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 59

Structure de larchitecture
(architecture)
architecture Style_Description of Exemple is
--zone de dclaration
begin

--Instructions concurrentes .......

process (Liste_De_Sensibilit)
begin
--Instructions squentielles .......
end process;

end Style_Description;

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 60


Architecture: zone de dclaration

Dclaration de signaux internes


signal Interne_s : Std_Logic;
signal Vect_s : Std_Logic_Vector(4 downto 0);

Dclaration de constantes
constant Val_c : Std_Logic_Vector(2 downto 0):="101";

Dclaration de composants
Dclarations de types, de procdures et de fonctions
(pour utilisateurs expriments)
Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 61

Architecture, zone de description

Droulement concurrent :
9 toutes les instructions concurrentes
9 les processus (instr. concurrente !)
Si plusieurs processus :
9 excution concurrente entre les processus

Droulement squentiel :
9 UNIQUEMENT l'intrieur d'un processus

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 62


Les styles de description

Styles de descriptions Abrviations


Equations logiques Logique
Table de vrit TDV
Flot de donnes Flot_Don
Comportementale Comport
Machine d'tats M_Etat
Structurelle Struct

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 63

Les instructions concurrentes

Affectation
9 Y <= A and C;

Affectation avec condition


9 Y <=.. when .. else .. ;

Instruction de slection
9 with .... select

Instanciation de composants

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 64


Instruction daffectation
Syntaxe de l'affectation simple :
Signal <= Expression;
Exemples d'expression :
Expression Operator Expression
Identifier
Aggregat

Exemples d'affectation :
Sortie <= Sel0 or Sel1 or Sel2;
Signal <= Vect_8Bits(3);
Vect(0) <= (A or B) and C;
Signal <= Entree;

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 65

instruction daffectation
Syntaxe de l'affectation avec une condition :

Signal1 <= Expression_True when Condition else


Expression_False;
Exemples :
Egal <= 1 when (Valeur="1001") else
'0';

Result <= A or B when (c='1') and (En='1') else


'0';

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 66


instruction daffectation
Syntaxe de l'affectation avec plusieurs conditions :
Signal1 <= Expression when Cond_booleen else
Expression when Cond_booleen else
...
Expression;
Exemple :
Out <= 1 when (Force1 = '0') else
A and B when (FctAnd = '1') else
A ;

Remarque : L'instruction whenelse implique une notion de


priorit entre les diffrentes conditions
Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 67

Instruction de slection

Syntaxe de l'instruction de slection :

with Signal_Commande select


Signal_Affecte <= Expression1 when "Com_Etat1",
Expression2 when "Com_Etat2",
...
ExpressionN when others;

Remarque : le terme others dfinit toutes les autres


combinaisons possibles de l'tat du signal
de commande

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 68


instruction de slection

Exemple :

with Val_Sel select


Sortie <= Entr_A when "00",
Entr_B when "01",
Entr_C when "10",
Entr_D when "11",
'X' when others;

Remarque : le terme others reprsente les combinaisons


"UH", "ZZ", "X0", du signal Val_Sel
Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 69

Instanciation d'un composant

Dans la zone dclaration de l'architecture :


Component Nom_Composant is -- is accepte en VHDL93
port (Ports_Entree : in Std_Logic;
.....
Ports_Sortie : out Std_Logic);
end component;
for all : Nom_Composant use
entity work.Nom_Entity(Style_Description);

Dans la zone de description de l'architecture :


[Label:] Nom_Composant port map
(Signal_Entrees => Signal_Achitecture1_s,
Signal_Sorties => Signal_Achitecture2_s);

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 70


instanciation d'un composant

architecture Struct of Exemple is


component Porte_Et is -- is accepte en VHDL93
port (A_i, B_i : in Std_Logic;
Z_o : out Std_Logic);
end component;
for all : Porte_Et use
entity work.Porte_Et(Flot_Don);
begin
..
U1: Porte_Et port map (A_i => Entr_i,
B_i => Signal_s,
Z_o => Sortie_o);
..
end Struct;

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 71

instanciation d'un composant


Cas d'une sortie non utilise (unconnected) :
architecture Struct of Exemple is
component Module
port (
Sortie_o : out Std_Logic
);
end component;
for all : Module use entity work.Module(Comport);
begin
..
U1: Module port map (
Sortie_o => open,
--Sortie_o => pas connect
);
..
end Struct;
Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 72
Exercices

Donnez la description VHDL correspondant la table


de vrit suivante :
In2 In1 In0 X Y
0 0 0 0 0
0 0 1 1 1
0 1 0 0 1
0 1 1 1 0
1 0 0 1 1
1 0 1 0 0
1 1 0 0 1
1 1 1 1 0

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 73

Exercices

Description d'un multiplexeur 2 1 :


9La sortie Y prend la valeur B lorsque Sel_B est 1 sinon
elle prend la valeur A.
Description de comparaisons
9Circuit qui permet la comparaison de deux nombres sans
signe de 4 bits, Na et Nb, comme suit :
- sortie PG est active si Na est plus grand que Nb
- sortie PP est active si Na est plus petit que Nb
- sortie EG est active si Na est gal Nb

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 74


Unit denseignement : Bases des systmes logiques (BSL)

Annexes

Introduction VHDL
E. Messerli
REDS@HEIG-VD

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 75

Les mots rservs du VHDL93


abs
access body elsif
after buffer end
alias bus entity
all exit
and case
architecture component file
array configuration for
assert constant function
attribute
disconnect generate
begin downto generic
block group
else guarded

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 76


mots rservs du VHDL93

if
impure mod others
in out
inertial nand
inout new package
is next port
nor postponed
label not procedure
library
null process
linkage
loop
protected
of pure
map on
open range
or record

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 77

mots rservs du VHDL93

register
reject sll use
rem sra variable
report srl
return subtype wait
rol when
ror then while
to with
select transport
severity type xnor
signal xor
shared unaffected
sla units
until

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 78


Historique des diffrentes
normalisations du langage VHDL
1980 : Dbut du projet financ par le DoD
1987 : Standard IEEE Std 1076-1987 (VHDL 87)
1993 : Standard IEEE Std 1164-1993 (Std_Logic_1164)
1993 : Standard IEEE Std 1076-1993 (VHDL 93)
1995 : Standard IEEE Std 1076.4 (Vital_Primitive et Vital_Timing)
1997 : Standard IEEE Std 1076.3 (Numeric_Bit et Numeric_Std)
1999 : Standard IEEE Std 1076.6
(Standard for VHDL Register Transfer Level Synthesis)
2000 : Standard IEEE Std 1076-2000 (VHDL 2000)
2002 : Standard IEEE Std 1076-2002 (VHDL 2002)
2004 : Standard IEEE Std 1076.6 -2004

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 79

historique des diffrentes


normalisations du langage VHDL
Autres tapes de l'historique
1994 : Approbation ANSI ( ANSI/IEEE Std 1076-1993 )
1996 : Standard IEEE Std 1076.2 ( Mathematical Packages )

Autres normalisations
1999 : Standard IEEE-1076.1, VHDL-AMS (modlisation
mixte)

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 80


Rfrences EIVD

Prsentations des collgues


9Serge Boada
9Maurice Gaumain
Manuels VHDL
9Darryl Gauthey
9Claude Guex
9Michel Salamin
9Yves Sonnay

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 81

Rfrences bibliographiques

[1] VHDL, Introduction la synthse logique, Philippe Larcher, Eyrolles, 1997 (Livre simple
et facile d'accs, trs bien pour les tudiants)
[2] Le langage VHDL, J. Weber & M. Meaudre, Dunod, 2001
(Bon livre pour dbuter en VHDL)
[3] VHDL. Mthodologie de design et techniques avances. Thierry Schneider, Dunod, 2001
[4] Digital System Design with VHDL, 2000, Mark Zwolinski, Prentice Hall
[5] VHDL du langage la modlisation, Airiau & Berg & Olive & Rouillard, dition 1990 et
1996, PPUR (rfrence pour les instructions VHDL)
[6] VHDL Made Easy !, D. Pellerin et D. Taylor, Hardcover, 1996
[7] IEEE Standard VHDL Language Reference Manual, ANSI/IEEE Std 1076-1993
[8] IEEE Standard Multivalue Logic System for VHDL Model Interoperability,
IEEE Std 1164-1993
[9] IEEE Standard for VHDL Register Transfer Level Synthesis, IEEE 1076.6-1999

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 82


Guides de rfrence et articles

[10] The VHDL Golden Reference Guide, compatible IEEE std 1076-2002
disponible chez : Doulos, http://www.doulos.com/
[11] ACTEL HDL Coding, Style guide, ACTEL, Edition 2003
disponible en PDF sur le site http://www.actel.com/

[12] Circuits programmables et langages de conception, une volution en parallle, C.


Guex & E. Messerli, Revue Vision 1998, EIVD
[13] Conception numrique: Description VHDL et synthse, D. Gauthey &
E. Messerli, Revue Vision 2000, EIVD

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 83

Rfrences de cours VHDL

[a] Cours Expert VHDL, design & verification, Doulos


prsent par Bertrand Cuzeau, septembre 2001, 2002
[b] Le Langage VHDL pour la Conception et le Test des Circuits Logiques
Programmables, A.L.S.E., Paris, Bertrand Cuzeau, juin 1999.
[c] Cours : VHDL tout simplement ., Multi Video Designs, M. E. Garcia,
mars 2000
[d] Conception numrique : mthode et langage VHDL, Etienne Messerli, EIVD,
dition 2000 2005
[e] Cours VHDL avanc, Etienne Messerli, EIVD, octobre 2004

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 84


Liens internet

Informations pratiques sur le VHDL avec exemples


http://www.alse-fr.com/tech_corner.html
Normes IEEE
http://www.ieee.com/
Informations des vendeurs d'outils EDA
http://www.vhdl.org/

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 85

FIN prsentation VHDL !

Questions

Copyright 2008 EMI, REDS@HEIG-VD Introduction VHDL, p 86