Vous êtes sur la page 1sur 112

Le langage VHDL A.

EL KARI

04/01/2013

Master GE_FSTG

Sommaire

Introduction La ralisation des systmes numriques Le langage VHDL Historique et standardisation Les bases du langages Lentit Larchitecture Les types de donnes Les paquetages et les librairies Exemple dapplication : Le TIMER Les familles de circuits programmables
Master GE_FSTG 2

04/01/2013

Le langage VHDL

Introduction

04/01/2013

Master GE_FSTG

Introduction

La ralisation de systmes numriques

04/01/2013

Master GE_FSTG

Les quations boolennes

Tout systme numrique peut se dcrire par des quations boolennes qui seront transformes physiquement par des portes et des bascules. Exemple : Comparateur 1 bit
a 0 0 1 1 b 0 1 0 1 Sinf 0 1 0 0 Ssup Seg 0 0 1 0 1 0 0 1

Sinf = a.b Ssup = a.b

Seg = a b

Malgr des mthodes doptimisation, cela devient vite irralisable lorsque lon dpasse la centaine dquations logiques.
Master GE_FSTG 5

04/01/2013

La mthode graphique

La CAO permet de raliser des schmas de systmes numriques en utilisant des circuits prdfinis dans des bibliothques constructeurs.

La densit des circuits numriques de nos jours rend lutilisation de cette mthode longue et complexe.
Master GE_FSTG 6

04/01/2013

Les langages de description hardware

Les langages de description hardware permettent de faire une description fonctionnelle du systme numrique. Un outil de synthse traduira cette description en quations logiques pour limplmenter dans un circuit programmable. Exemple : Comparateur 1 bit Si a < b alors Sinf = 1 Sinon si a > b alors Ssup = 1 Sinon Seg = 1 Sinf = a.b

Ssup = a.b
Seg = a b

Les langages de description les plus utiliss sont les langages ABEL, Verilog et VHDL.
Master GE_FSTG 7

04/01/2013

Introduction

Le langage VHDL

04/01/2013

Master GE_FSTG

Quelques avantages

Langage complet : Couvre les diffrentes tapes de la conception de systmes numriques : Spcifications, modlisation, simulation, synthse. Langage indpendant : aucune dpendance par rapport aux fabricants de PLD et par rapport au systme hte.

Langage moderne : syntaxe lisible, conception modulaire,


Langage standard : gage de compatibilit, de portabilit, de stabilit et de prennit. Langage ouvert : volutions contrles par lIEEE. Fonctions et procdures permettent dtendre ses fonctionnalits

04/01/2013

Master GE_FSTG

Historique et standardisation

~1970 : Dpt de la dfence amricaine cre le programme VHSIC (Very High Scale Integrated Circuit) Le langage VHDL est devenu un standard IEEE depuis 1987 puis rvis en 1993.

1076 VHDL

1076.1 1076.2 1076.3 1076.4 1076.5

VHDL Analog Extention


VHDL Math Utilitaire VHDL Synthse (1996) VITAL librairie ASIC IEEE librairie

1029 WAVES

1164 STD LOGIC

IEEE Standard 1164 Extention : logique valeurs multiples pour dcrire les systmes rels (1993)

VHDL WAform and Vector Exchange Specification


04/01/2013 Master GE_FSTG 10

Le langage VHDL

Les bases du langage

04/01/2013

Master GE_FSTG

11

Structure dune description VHDL


library ieee; use ieee.std_logic_1164.all; use work.std_logic_arith.all; entity CPT6 is port (CLK : in std_logic; SIX : out std_logic; BCD : out integer range 0 to 5); end; architecture arch_CPT6 of CPT6 is signal Q: integer range 0 to 5; Begin Process (CLK) Begin If(CLK='1' and CLK'event) then if Q = 5 then Q <= 0 ; else Q<= Q + 1; end if; end if; end process; BCD <= Q; SIX <= '0' when Q = 5 else '1'; end;

Dclaration des librairies et des packages utiliss Dclaration de linterface du circuit Description structurelle et/ou fonctionnelle du circuit

04/01/2013

Master GE_FSTG

12

Les bases du langage

Lentit

04/01/2013

Master GE_FSTG

13

Dfinition

Lentit fournit les spcifications de linterface au systme et comprend gnralement 2 lments : Les connexions du systme cd ses E/S. Les paramtres du systme (largeur de bus, fmax,) (optionnel)
Entity REG8BIT is

Generic
I0 I1 I2 I3 I4 I5 I6 I7 clk Registre 8bits Fmax = 50MHz

(LONG = 8; Fmax = 50MHz);

paramtres

Port

connexions

O0 O1 O2 O3 O4 O5 O6 O7

(clk : in bit; I : in bit_vector[LONG-1 downto 0]; O : out bit_vector[LONG-1 downto 0]);

End REG8BIT;
04/01/2013 Master GE_FSTG 14

Les spcifications des ports

Chaque signal physique dE/S du systme dclar lintrieur de linstruction port (); doit avoir : Un nom unique, Un mode, Un type.

La syntaxe est la suivante : Nom_port : mode type_port


Exemples : DATA : in bit_vector (3 downto 0); RESET : in std_logic; CARRY : inout std_logic; Q : out std_logic_vector (7 downto 0);
Master GE_FSTG 15

04/01/2013

Les diffrents modes

Les 4 principaux modes sont :

In : signal en entre
Out : signal en sortie Inout : signal bidirectionnel

Buffer : signal en sortie avec un rebouclage interne

in inout

out buffer

04/01/2013

Master GE_FSTG

16

Les diffrents types logiques


Les principaux types logiques utiliss sont : Bit : signal binaire de valeur 0 ou 1, Std_logic : signal logique qui peut prendre les valeurs : 0,1 : valeurs basse et haute L,H : valeurs basse et haute forage faible, X : inconnue, U : non initialise, - : quelconque, Z : haute impdance
Rq : Pour utiliser le type std_logic, il faut avoir pralablement dclar la bibliothque IEEE et son paquetage std_logic_1164.
Master GE_FSTG 17

04/01/2013

Dclaration dun bus

Pour simplifier la dclaration des E/S, il est possible de dclarer des bus de donnes sous la forme : Bit_vector (n downto m) : (n > m) Dans ce cas n est le MSB et m le LSB. Bit_vector (m to n) : (m < n) Dans ce cas m est le MSB et n le LSB Exemple : BUS1 : in bit_vector (0 to 3)

Exemple : BUS1 : in bit_vector (3 downto 0)

3210 MSB 1011


04/01/2013

0123 LSB MSB 1101


Master GE_FSTG

LSB

Ici Bus1 = 11

Ici Bus1 = 13

18

Exemples

Trouver la syntaxe des deux entits suivantes :

Entity BUFFER is port ( G,En : in std_logic; In1 : inout std_logic_vector (7 downto 0); In2 : inout std_logic_vector (7 downto 0)); End BUFFER;

Entity CTR12 is port ( clk,Reset : in std_logic; CT : out std_logic_vector (11 downto 0)); End CTR12;

04/01/2013

Master GE_FSTG

19

04/01/2013

Master GE_FSTG

20

Les paramtres gnriques


Les paramtres gnriques sont utiliss pour faire passer des valeurs constantes relatives aux systmes. Ils sont principalement utiliss pour dimensionner: un bus, une boucle itrative, Une constante de temps.

04/01/2013

Master GE_FSTG

21

Taille dun bus


Entity BUFFER8 is Generic ( long : integer := 8); Port ( G,En : in std_logic; In1,IN2 : inout std_logic_vector (long-1 downto 0)); End BUFFER8; BUFFER8 Entity BUFFER16 is Generic ( long : integer := 16); Port ( G,En : in std_logic; In1,IN2 : inout std_logic_vector (long-1 downto 0)); End BUFFER16; BUFFER16

G
8 En In1 In2
04/01/2013 Master GE_FSTG

G
8 16 En In1 In2
22

16

Une boucle itrative


Entity CPT is Generic ( compteur : integer := 4); End CPT; For k in 1 to compteur loop End loop;

K = compteur ?

OUI

NON

K=K+1

04/01/2013

Master GE_FSTG

23

Paramtre temporel
Entity TEST is Generic ( retard : time := 4); End TEST; X <= Y after retard; Y t

t
0

t0 - 4

Rq : Les paramtres temporels ne sont pas utiliss pour la synthse numrique mais pour gnrer des vecteurs de test (Testbench).

04/01/2013

Master GE_FSTG

24

Les bases du langage

Larchitecture

04/01/2013

Master GE_FSTG

25

Dfinition

Larchitecture permet de dcrire le fonctionnement interne du systme dlimit par lentit. Il existe 3 types de description :

Par flot de donnes ou fonctionnelle : On exprime les fonctions des sorties par des q boolennes

Comportementale ou procdurale : Larchitecture est dcrite avec des instructions squentielles traduisant un algorithme.

Structurelle :Larchitecture est le rsultat de lassociation de structures elles-mmes dcrites sous la forme comportementale ou fonctionnelle.

04/01/2013

Master GE_FSTG

26

Exemple dun multiplexeur 4 vers 1


E(0) E(1) E(2) E(3) SEL(0) SEL(1) MUX41 S Entity MUX41 is port ( E : in std_logic_vector (3 downto 0); SEL : in std_logic_ vector (1 downto 0); S : out std_logic); End MUX41;

SEL(1)

SEL(0)

0
0 1

0
1 0

E(0)
E(1) E(2)

1
04/01/2013

E(3)
Master GE_FSTG 27

Description de type flot de donnes

Leq boolenne de la sortie S se dduit de la table de vrit.

Architecture flot_MUX41 of MUX41 is Begin S <= ((not SEL(0) and not SEL(1)) and E(0)) or ((SEL(0) and not SEL(1)) and E(1)) or ((not SEL(0) and SEL(1)) and E(2)) or (SEL(0) and SEL(1) and E(3)) ; End flot_MUX41; <= est la fonction daffectation

04/01/2013

Master GE_FSTG

28

Les oprateurs logiques


Ils sont au nombre de 7 : and, nand, or, nor, xor, xnor et not. Les oprandes sont : Boolens, Bit ou bit_vector, Std_logic ou std_logic_vector Ils ont tous la mme priorit ; lutilisation de parenthses est ncessaire ds quil y a incertitude dinterprtation.
A

B
C D

S <= (A and B) or (C and D);

04/01/2013

Master GE_FSTG

29

La fonction daffectation <=

Lorsquil y a plusieurs instructions daffectations, elles sont excutes en parallle. On parle alors dinstructions concurrentes.

La forme slective de la fonction daffectation utilise linstruction With .select.

Architecture Selec_MUX41 of MUX41 is Begin With SEL select S <= E(0) when 00 , E(1) when 01 , E(2) when 10 , E(3) when others; End Selec_MUX41;

04/01/2013

Master GE_FSTG

30

La fonction daffectation <=

La forme conditionnelle de la fonction daffectation utilise les instructions when else.

Architecture Cdt_MUX41 of MUX41 is Begin S < = E(0) when (SEL = 00 ) else E(1) when (SEL = 01 ) else E(2) when (SEL = 10 ) else E(3); End Cdt_MUX41;

04/01/2013

Master GE_FSTG

31

Les oprateurs relationnels

Ils permettent de comparer deux oprandes de mme type. Le rsultat est un boolen. Ils sont au nombre de 6 : =, /=, <, <=, >, >= Ils peuvent tre combins aux oprateurs logiques sans violation de typage : X <= 1 when (A>10 and A <15) else 0;

04/01/2013

Master GE_FSTG

32

Description de type comportemental

Lalgorithme de fonctionnement du multiplexeur est dcrite laide de linstruction squentielle Ifthenelsifelseendif;

Architecture Compor1_MUX41 of MUX41 is Begin Process (SEL) Begin If (SEL(0) = 0 and SEL(1) = 0 then S <= E(0)); elsif (SEL(0) = 1 and SEL(1) = 0 then S <= E(1)); elsif (SEL(0) = 0 and SEL(1) = 1 then S <= E(2)); Else S <= E(3); Endif; End process; End Compor1_MUX41;

04/01/2013

Master GE_FSTG

33

Linstruction CASE

Linstruction CASE est particulirement adapte la transcription dune table de vrit. Architecture Compor2_MUX41 of MUX41 is Begin Process (SEL) Begin Case SEL is when 00 => S <= E(0); when 01 => S <= E(1); when 10 => S <= E(2); when 11 => S <= E(3); End case; End process; End Compor2_MUX41;

04/01/2013

Master GE_FSTG

34

Linstruction Process

Un process est une partie de la description dun circuit dans laquelle les instructions sont excutes squentiellement. Lexcution dun process a lieu chaque changement dtat dun signal de la liste de sensibilit. Le changement dtat des signaux par les instructions du process sont pris en compte la fin du process.

04/01/2013

Master GE_FSTG

35

Exemples de process

La bascule D
H Q D

Excution du process si H change d tat

Library ieee; Entity BasculeD is port ( D,H: in std_logic; Q : out std_logic); end BasculeD;

0
1

0
1 Qn

Les instructions s excutent squentiellement

0/1 X

Les signaux ne changent d tat qu la fin du process

Architecture ArchD of BasculeD is begin process (H) begin if (Hevent and H= 1 ) then Q <=D; end if; end process; end ArchD;

04/01/2013

Master GE_FSTG

36

Exemples de process

Compteur dcimal avec remise 0 asynchrone


CPT10 H 4 Q

RST

Carry
0 0 1

1
0 0

0
Si Q < 9 alors Q+1 Si Q = 9 alors Q = 0

RST Carry

Description VHDL

Description VHDL synchrone


Master GE_FSTG

Description VHDL asynchrone


37

04/01/2013

library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; entity CPT10 is port ( H,RST : in std_logic; CARRY : out std_logic; Q : buffer integer range 0 to 9); end CPT10; architecture a_CPT10 of CPT10 is Begin Process (H,RST) Begin IF RST =1 THEN Q<=0 ELSE if (H'event and H = '1') then if Q = 9 then Q <= 0; else Q <= Q + 1 ; end if; end if; End if; end process; CARRY <= '1' when (Q = 9) else '0'; end a_CPT10;

04/01/2013

Master GE_FSTG

38

Description de type structurel

On dcompose de manire hirarchise larchitecture du composant en une interconnexion de composants internes.


Architecture STRUCT of FONC is Component F1 Port (A,B : in bit; O1 : out bit); End component; Component F2 Port (C,D : in bit; O2 : out bit); End component; Signal S1 : bit ; Begin Etiq1 : F1 port map (E0,E1,S1); Etiq2 : F2 port map (S1,E2,S); End STRUCT;

E0 E1

A S1 O1 B C O2 D S

E2

04/01/2013

Master GE_FSTG

39

Exemple de description structurelle

Mise en cascade de compteurs dcimaux


CPT10 CPT10 H

CLK

4 Q

S1

4 Q

RST Carry RAZ DIZ CPT10

RST Carry

Description asynchrone

CENT CPT10

CLK

4 Q

4 Q

RST Carry
0 RAZ
04/01/2013

RST Carry EN DIZMaster GE_FSTG CENT

Description synchrone

EN

40

Exercice
1. Donner la description de type flot de donnes dun demi additionneur. 2. Donner la description structurelle dun additionneur de 1 bit partir dun demi additionneur. 3. Donner la description gnrale dun additionneur de N bits en utilisant un paramtre gnrique et une description structurelle partir dun additionneur de 1 bit.
DEMI_ADD ADD1b ADDNb

A S
B Rt
Description

A S
B Rt Rt_1
Description

N N

A S
B Rt Rt_1
Description

04/01/2013

Master GE_FSTG

41

Les bases du langage

Les types de donnes

04/01/2013

Master GE_FSTG

42

Les trois familles dobjet

Les objets sont les lments de base du langage VHDL. Ils sont au nombre de 3 :

Les signaux : Ils permettent de modliser les informations transitant sur des fils ou de manire gnrale transitant entre deux composants (linstruction daffectation est <=). Les constantes : Elles permettent daffecter une valeur fixe un objet (linstruction daffectation est :=). Les variables : Elles sont utilises comme objet intermdiaire dindexation par exemple et se situent dans les process (linstruction daffectation est :=).

A chaque objet on associe un type.


04/01/2013 Master GE_FSTG 43

Les types scalaires

Un type scalaire fait rfrence un objet qui ne peut prendre quune et une seule valeur tout instant.

Il existe 5 types scalaires prdfinis : Boolean : true ou false Character : tous les caractres dfinis par la norme ISO8859-1 31 31 Integer : Pour WARP de 2 -1 +2 -1 Real : rel compris entre 1E38 +1E38 Bit : 0 ou 1

04/01/2013

Master GE_FSTG

44

Les types scalaires numrs

Un type scalaire est dit numr si toutes les valeurs quil peut prendre sont listes dans sa dclaration. Lutilisateur peut ainsi dfinir des types qui correspondent ses besoins.

Exemple : type couleur is (ROUGE, ORANGE, VERT); Ainsi ROUGE sera cod 00 , ORANGE 01 et VERT 10

04/01/2013

Master GE_FSTG

45

Les types scalaires non numrs


Les types integer et real font partis des types non numrs. Nanmoins lutilisateur peut les borner par linstruction range qui dfinit une limite basse et haute de manire ne pas bloquer de la ressource inutilement.

Exemple : type integer is range 255 to 255

On peut aussi crer un ou plusieurs type utilisateur pour limiter lintervalle de variation.

Exemple : INDEX is range 0 to 100 Linstruction range a pour effet de tester un ventuel dpassement de valeur lors de lanalyse et de la simulation et de coder INDEX sur 7 bits lors de la synthse.
04/01/2013 Master GE_FSTG 46

Le type composite record (article)

Un article est une collection dlments de mme type ou de type diffrents. Chaque lment est un champ. Le type est dfini en numrant les champs.

Exemple2 : Exemple1 : Type ARTICLE2 is record Type ARTICLE1 is record M,C,D,U : integer range 0 to 9; ADDR : integer range 0 to 3; DONNEE : std_logic_vector (3 downto 0); End record; End record; Variable ANNEE : ARTICLE1 ANNEE := (2,0,0,6); signal SIG1 : ARTICLE2; ANNEE.U := 7; SIG1 <= (3, 0011 ); SIG1.ADDR <= 2; On accde un
04/01/2013

lment de larticle par son champ

Master GE_FSTG

47

Le type composite ARRAY(tableau)

On peut dfinir un tableau sur une seule range.

Exemple : type ANNEE is array (0 to 3) of integer range 0 to 9;

0 ANNEE

09 09 09 09

Variable ANNEE_EN_COURS : ANNEE; ANNEE_EN_COURS := (2,0,0,6); ANNEE_EN_COURS(3):=6;

On accde un lment de larticle par son indice

Remarque : le type bit_vector est un exemple de tableau une range. Mais il est tellement commun quil a dj t dfinit dans le paquetage STANDARD. 04/01/2013
Master GE_FSTG 48

Les tableaux plusieurs ranges


Il existe 3 possibilits pour crer des tableaux plusieurs ranges. La 1 mthode consiste empiler plusieurs objets de type ARRAY Type ANNEE is array (0 to 3) of integer range 0 to 9; Type DATE is array (2 downto 0) of ANNEE ;

Exemple :

constant ANNIVERSAIRE : DATE := ((1,9,6,8),(1,9,7,1),(1,9,9,4));


0 1
9
9 9

2
6
7 9

3
8
1 4
49

0
DATE 1 2
04/01/2013

1
1 1

Master GE_FSTG

Les tableaux plusieurs ranges

La 2 mthode consiste former un tableau dobjets de type scalaire pour obtenir un tableau 2 dimensions.

Exemple : Une table de vrit peut alors facilement se dfinir.


E2 0 0 0 0 1 1 1 1 E1 0 0 1 1 0 0 1 1 E0 0 1 0 1 0 1 0 1 S1 0 0 1 1 0 0 1 1 S0 0 1 1 0 0 1 1 0

Type TABLE1 is array (0 to 7, 1downto 0) of bit; Constant CODE1 : TABLE1 := ( (0,0), (0,1), (1,1), (1,0)); Type TABLE2 is array (0 to 7) of bit_vector(1 downto 0); Constant CODE2 : TABLE2 := ( ( 00 ),( 01 ),( 11 ),,( 10 ));
Master GE_FSTG 50

04/01/2013

Les tableaux plusieurs ranges

La 3 possibilit est de constituer un empilement dobjets de type record pour obtenir un array of record.

Exemple : Dclaration dun calendrier


M
M J

A
E E

R
R U

1
0 1

9
7 3

4
3 4

5
0 5

indice 0

1
2

Type DATE is record JOUR : string (0 to 2); HEURE : integer range 0 to 23; MINUTE : integer range 0 to 59; End record;

Type TABLE3 is array (0 to 2) of DATE; JOUR HEURE MINUTE Constant COURS : TABLE3 := ( (MAR,19,45), (MER,07,30), La valeur de COURS(2).HEURE est 13 (JEU,13,45));
04/01/2013 Master GE_FSTG 51

Les sous types

Un sous type dun type donn nest que ce type avec un intervalle de variation limit.

Exemples : Subtype natural is integer range 0 to integerHIGH Subtype positive is integer range 1 to integerHIGH Type JOUR_SEMAINE is (LUN,MAR,MER,JEU,VEN,SAM,DIM); Subtype WE is JOUR_SEMAINE range SAM to DIM;

04/01/2013

Master GE_FSTG

52

Les attributs

Un attribut est une caractristique associe un type ou un signal. Il est plac juste aprs ce type ou ce signal mais spar par lui par une apostrophe.
Types
Scalaire Tableaux signal

Attributs prdfinis
Left, right, low, high, length Left, right, low, high, length, range, range_reverse event

Scalaire numrs pos, val, succ, pred

04/01/2013

Master GE_FSTG

53

Exemples dattribut
Pour la table de vrit CODE1 dfinie par le type TABLE1 (diapo51) on a : TABLE1left(1) = 0 TABLE1right(1) = 7 TABLE1left(2) = 1 TABLE1right(2) = 0 TABLE1length(1) = 8 TABLE1length(2) = 2 TABLE1range(1) = 0 to 7 TABLE1range(2) = 1 downto 0

Pour le type numr JOUR_SEMAINE on a : JOUR_SEMAINEval(2) = MER JOUR_SEMAINEpos(JEU) = 3 JOUR_SEMAINEpred(DIM) = SAM

04/01/2013

Master GE_FSTG

54

Exercice

Donner la description VHDL dun dcodeur BCD/7SEG en utilisant un tableau de constante. Prvoir un affichage derreur si le code BCD est incorrect (DP allum). Les sorties peuvent tre remplaces par un bus 7 bits avec le segment g comme MSB et le segment a comme LSB.

rponse
04/01/2013 Master GE_FSTG 55

Les bases du langage

Les paquetages et les librairies

04/01/2013

Master GE_FSTG

56

Le paquetage
Le paquetage est une collection de dclarations et de sousprogrammes utiliss frquemment et partageables par plusieurs utilisateurs. Il est constitu de deux parties :

La spcification de paquetage (package) : Cest la liste des dclarations : type utilisateur, signaux, constantes, composants, sous-programmes. Le corps de paquetage (package body) qui est la vue interne du paquetage et peut comprendre les descriptions des sousprogrammes sil y en a.

04/01/2013

Master GE_FSTG

57

Les paquetages prdfinis

Les constructeurs proposent souvent des paquetages qui permettent de simplifier et synthtiser plus facilement les structures les plus courantes sous VHDL. Par exemple avec WARP sont fournis les 2 paquetages suivants : Std_logic_1164 qui dfinit les spcifications lies la norme IEEE 1164 pour le type std_logic, Std_arith qui dfinit les oprations arithmtiques pour les vecteurs std_logic mais des oprations entre std_logic et integer.

Pour utiliser ses paquetages,il faut faire appel linstruction USE telle que: Library ieee; Use ieee.std_logic_1164.all; Fichier std_arith Use work.std_arith.all;
Master GE_FSTG 58

04/01/2013

Quelques fonctions intressantes

Avec le prcdent paquetage on peut utiliser des fonctions de conversion de type telles que :

to_integer (a) :retourne la valeur entire dun vecteur binaire Signal Bus:std_logic_vector (3 downto 0); I <= to_integer (Bus); Si Bus = 0011 alors I = 3

Exemple :

to_std_logic_vector (i,s) : retourne la valeur binaire sur s bits dun entier i.

Exemple :

Constant I : integer := 5; Bus <= to_std_logic_vector (I,4); Bus prend la valeur 0101

04/01/2013

Master GE_FSTG

59

Les paquetages utilisateurs

Lutilisateur peut crer ses propres paquetages dans lesquels il peut placer des composants ou des fonctions pour simplifier la description de lunit principale. Ainsi pour simplifier lcriture de ladditionneur N bits, on peut placer les composants ADD1B et DEMI_ADD dans un paquetage pack_add et faire appel celui-ci dans ADDNB.

Paquetage pack_add

Description de ADDNB

04/01/2013

Master GE_FSTG

60

Les bases du langage

Les architectures de test

04/01/2013

Master GE_FSTG

61

Description

Une entit de test permet de tester une fonction VHDL. Cette entit ne possde ni entre, ni sortie par contre elle possde des signaux internes dentre qui sont des stimulis et de signaux de sorties qui correspondent la rponse de la fonction aux stimulis. Pour tester une fonction il faut donc : Dclarer la fonction comme composant local, Dclarer et initialiser un signal de test pour chaque port du composant, Instancier ce dernier en spcifiant les connexions entre ses ports et les signaux de test, Gnrer les signaux de test.

04/01/2013

Master GE_FSTG

62

Description
Entity TEST_ FUNC is End TEST_FUNC; Test_FUNC
FUNC Test_E1 Test_E2 E1 S1 E2 S2 Test_S1 Test_S2

Architecture a_test of TEST_ FUNC is


Component FUNC port (

E1,E2 : in std_logic;
S1,S2 : out std_logic); End component; Signal Test_E1, Test_E2, Test_S1, Test_S2 : std_logic; Test_E1 <= not Test_E1 after 10ns; Test_E2 <= not Test_E2 after 20ns;

Test_E1
Test_E2

End a_test;
04/01/2013 Master GE_FSTG 63

Le langage VHDL

Exemple dapplication : Le TIMER

04/01/2013

Master GE_FSTG

64

Le cahier des charges


Assurer le dcompte dun temps pralablement fix par lutilisateur jusqu 0 pour mettre un signal dalarme lumineux. Plage de rglage du timer : de 0 9min59s Dcrmentation de la valeur fixe toutes les secondes Lalarme lumineuse correspond au clignotement la frquence de 1 Hz des points dcimaux des afficheurs 7 segments. A tout moment, on peut venir faire une remise 0 du systme. Deux modes de rglages de la dure du timer sont possibles : Un mode impulsionnel qui permet un rglage prcis, Un mode de dfilement rapide qui est obtenu par un maintien denviron 2 secondes sur les touches de prselection.

04/01/2013

Master GE_FSTG

65

Le fonctionnement

On a adopt lutilisation de 4 boutons (Up, Down, St/Sp et Reset) pour tre en adquation avec le cahier des charges
Up X X 1 Down X X X St/Sp X Bascule 0 Reset Fonctionnement 1 0 0 Remise 0 gnrale Arrt de lalarme Dclenchement du timer Arrt du timer Rglage du timer par incrmentation des secondes Rglage du timer par dcrmentation des secondes
66

04/01/2013

Master GE_FSTG

Le choix de la logique de commande

Notre choix sest port sur un circuit logique programmable CPLD du constructeur CYPRESS associ au sytme de dveloppement WARP
Min Up Down St/Sp Reset H Base de temps Seconde

CPLD
3*8

04/01/2013

Master GE_FSTG

67

Le comptage/Dcomptage et laffichage
D_CPT_NS H Q D_CPT 0 EN RAZ Rt BCD_7SEG

AFF

M_INT

H Q D_CPT EN RAZ Rt

AFF

S_DIZ

H Q D_CPT EN RAZ
04/01/2013

AFF

S_UNIT

Rt
Master GE_FSTG 68

La logique de commande
FSM_timer_bascule TEMPO CLKin tempo Start CLKin tempo Start Up Down FSM_timer St Sp Up Down z0 ALARM H5s H10s DU CLK

St/Sp
Reset

St_Sp Reset

St Sp

Reset
H1s

DIV H CLKin H1s H5s H10s


04/01/2013 Master GE_FSTG 69

Le langage VHDL

Les circuits logiques programmables

04/01/2013

Master GE_FSTG

70

La ralisation en lectronique : Les besoins

La complexit des conceptions augmente (vitesse, intgration, mixit) La rutilisabilit est obligatoire Le juste par conception est vital (pas de prototypage)

Composants personnalisables Composants spcifiques lapplication

04/01/2013

Master GE_FSTG

71

La ralisation en lectronique : Les moyens

La solution cble (Glue logic) : On fait appel des circuits logiques existants au catalogue des constructeurs

Les circuits classiques ont t de plus en plus intgrs (LSI/VLSI/ULSI) On ne savait plus quoi intgrer pour tre assez gnraliste On veut pouvoir disposer de systmes avec plusieurs millions de portes

Avantage : rapidit relative (qlq MHz) Inconvnients : fig, cot lev

04/01/2013

Master GE_FSTG

72

La ralisation en lectronique : Les moyens

La logique programme enregistr : Cest un systme microprocesseur qui ralise le travail Avantage : modulaire (carte UC, E/S) Inconvnients : lent , cot des outils de dveloppement lev

La logique programmable : On achte les circuits vierges et on les programme Avantage : rapidit (>100MHz), faible cot Inconvnients : petite et moyenne srie

04/01/2013

Master GE_FSTG

73

La ralisation en lectronique : Les moyens

La logique semi custom : On utilise des circuits ASIC (Application Specific Integred Circuit ) On dessine le circuit partir de cellules connues et onvoie le masque au fondeur On finalise le masque dinterconnexion dun circuit catalogue Avantage : rapidit Inconvnients : cot lev, fig

La logique Full custom : On dessine compltement le circuit voulu et on le donne au fondeur Avantage : rapidit Inconvnients : propre au grande srie
Master GE_FSTG 74

04/01/2013

volution : La loi de Moore

Pour une surface de silicone donne, on double le nombre de transistor tous les 18 mois !

98 0.25m 1 5M

99 0.18m 5-10M

01 0.15m 20-25M

02 0.13m >25M

04 90nm

06 65nm

04/01/2013

Master GE_FSTG

75

Les familles de circuits logiques

CIRCUITS LOGIQUES

Standard Logic

ASIC

PLD

Gate Array

Cells-Based ICs

Full Custom ICs

SPLD

CPLD

FPGA

04/01/2013

Master GE_FSTG

76

Exemple doffre du constructeur ALTERA

04/01/2013

Master GE_FSTG

77

Historiques des circuits logiques programmables


Invention de la PROM fusible avant 1974 Invention PLD par Signetics en 1975

75-85 : le complment des cartes logiques Interfaage, transcodage 85-95 : le co-processing Contrleur de priphriques Telecoms Traitement du signal >95 : le processeur rentre dans le circuit

04/01/2013

Master GE_FSTG

78

Avantages des circuits logiques programmables

Systme de taille rduite Diminution de la surface des CI Moins de composants, cot de fabrication rduit Fiabilit accrue Accroissement des performances Vitesse de fonctionnement Technologie CMOS faible consommation Grande flexibilit : Reprogrammable Correction des erreurs Mise jour et volution du sytme Grande scurit Protection en lecture

04/01/2013

Master GE_FSTG

79

Croissance industrielle

04/01/2013

Master GE_FSTG

80

Les technologies de programmation

PLD

criture

ecriture effacable

volatile

Antifusible

fusible Mtal/Si PROM

UV-EPROM obsolte

EEPROM

SRAM

04/01/2013

Master GE_FSTG

81

Fusible Mtal ou Silicium (Si)

Les lignes mtalliques forment les interconnexions ou les fusibles . Un courant permet de les griller ou non.

Intact

Programm

Mme structure en ligne polysilicium ou des transistors grillables jouent le rle de fusibles.

04/01/2013

Master GE_FSTG

82

Antifusible

04/01/2013

Master GE_FSTG

83

LES SPLD

04/01/2013

Master GE_FSTG

84

Les SPLD : Structure

REBOUCLAGE BROCHES BLOC DES ENTREES BLOC DES SORTIES BLOC DES ENTREESSORTIES ENTREESORTIE

BROCHES
DENTREE

MATRICE ET programmable

MATRICE OU Pr-cble

BLOC COMBINATOIRE PROGRAMMABLE

04/01/2013

Master GE_FSTG

85

Structure de la PALCE22V10

04/01/2013

Master GE_FSTG

86

04/01/2013

Master GE_FSTG

87

Exemple de la PALCE22V10

Rseau ET

Rseau OU

04/01/2013

Master GE_FSTG

88

Bloc de sortie (Macro-cellule) de la PALCE22V10

Possibilit de programmer des fonctions combinatoires ou squentielles Possibilit entre un rebouclage ou une entre

04/01/2013

Master GE_FSTG

89

La PALCE22V10

ZOOM
04/01/2013 Master GE_FSTG

Complet
90

Dnomination

NNN EE V SS
Nom gnrique Nbr maximal des entres Type de sortie Nbr maximal des sorties

Exemple : GAL 16 V 8, PALCE 22 V 10, PALC 16 R 4

04/01/2013

Master GE_FSTG

91

LES CPLD

04/01/2013

Master GE_FSTG

92

Structure des CPLD


Macro-cellule Bloc logique
04/01/2013

Un circuit CPLD (Complex Programmable Logic Device) se compose de plusieurs blocs logiques quivalent un SPLD associs entre eux par une matrice dinterconnexions.

Matrice dinterconnexions

Bloc logique

Bloc logique

Master GE_FSTG

93

La famille MAX7000 d ALTERA

PIA : Programmable Interconnect Array LAB : Logic Array Blocks


Master GE_FSTG 94

04/01/2013

Dtail dune macro-cellule

04/01/2013

Master GE_FSTG

95

Bloc de commande des entre/sortie

04/01/2013

Master GE_FSTG

96

Quelques caractristiques

04/01/2013

Master GE_FSTG

97

La famille ULTRA37000 de Cypress

04/01/2013

Master GE_FSTG

98

Dtail dun bloc logique

04/01/2013

Master GE_FSTG

99

Dtail dun bloc dentre/sortie

04/01/2013

Master GE_FSTG

100

Quelques caractristiques

04/01/2013

Master GE_FSTG

101

Exemple dapplications des CPLD

04/01/2013

Master GE_FSTG

102

LES FPGA

04/01/2013

Master GE_FSTG

103

Structure des FPGA

04/01/2013

Master GE_FSTG

104

Exemple de la famille CYCLONE de ALTERA

M4K : bloc mmoire de 4Kbit


Master GE_FSTG 105

04/01/2013

Structure des LAB

LAB : Logic Array Block


Master GE_FSTG 106

04/01/2013

Dtail dun lment logique

04/01/2013

Master GE_FSTG

107

Quelques caractristiques

04/01/2013

Master GE_FSTG

108

Exemple dapplication des FPGA

Systme multimdia de voiture

04/01/2013

Master GE_FSTG

109

Environnement de programmation

04/01/2013

Master GE_FSTG

110

Bibliographie

The designers guide to VHDL Peter J. Ashenden Morgan Kaufmann VHDL for programmable Logic Kevin Skahill Addison Wesley Initiation au langage VHDL Michel Aumiaux Dunod VHDL : Introduction la synthse logique Philippe LARCHER Eyrolle
Master GE_FSTG 111

04/01/2013

Webographie

Sites constructeur : www.cypress.com www.altera.com www.xilinx.com www.atmel.com

04/01/2013

Master GE_FSTG

112

Vous aimerez peut-être aussi