Vous êtes sur la page 1sur 109

Modules numriques dcrits en VHDL

ENIT - Gnie lectrique Bourguiba Riadh


riad.bourguiba@enit.rnu.tn

Modules numriques dcrits en VHDL


1. Logique combinatoire 2. Logique squentielle

Bourguiba Riadh - ENIT - Gnie Electrique

1. Logique combinatoire
A. Additionneur B. Oppos

Bourguiba Riadh - ENIT - Gnie Electrique

A. Additionneur
i. Architecture structurelle ii. Architecture flot de donnes iii. Simulation

Bourguiba Riadh - ENIT - Gnie Electrique

i. Architecture structurelle
L'additionneur binaire peut se construire partir d'lments plus simples.

On peut ainsi construire une porte non-et, puis un demi-additionneur, puis un additionneur 1 bit et enfin un additionneur N bits. La dpendance des fichier sera le suivante : addN add1 demi_add nand2
Bourguiba Riadh - ENIT - Gnie Electrique

Top-level

i. Architecture structurelle
La porte nand2 scrit directement en flot de donnes, avec loprateur nand du paquetage std_logic_1164 de la librairie IEEE.

Bourguiba Riadh - ENIT - Gnie Electrique

i. Architecture structurelle
Pour le demi-additionneur il suffit dassembler plusieurs portes Nand2 conformment au schma suivant :

Ce dernier rsulte des tables de vrit de c et de s.


Bourguiba Riadh - ENIT - Gnie Electrique

i. Architecture structurelle
Le code VHDL du demi-additionneur scrit :

Bourguiba Riadh - ENIT - Gnie Electrique

i. Architecture structurelle
Remarquez que la porte nand2 nest pas dclare dans la zone de dclaration de larchitecture. En effet, la dclaration est faite dans un fichier de paquetage pack. Le demi-additionneur fait appel ce paquetage grce aux lignes 4 et 5.

La porte nand2 est utilisable dans tous les fichiers VHDL qui font appel au paquetage pack. Si lon modifie lentit de nand2, il suffira de mettre jour le paquetage pack, pour quautomatiquement toutes les instances de nand2 bnficient des modifications de son entit. Centraliser les dclarations de composants prsente un grand intrt lorsque lon dveloppe des systmes complexes.

Bourguiba Riadh - ENIT - Gnie Electrique

i. Architecture structurelle
Le code VHDL du paquetage pack scrit :

10

Dornavant, nous ajouterons ce paquetage les dclarations de tous les composants au fur et mesure de nos dveloppements, sans le montrer. Aussi on se contentera de faire appel pack en supposant que les dclarations y sont dj contenues.
Bourguiba Riadh - ENIT - Gnie Electrique

i. Architecture structurelle
Maintenant, il faut assembler deux demi-additionneurs pour crer un additionneur 1 bit :

11

a b cin

s2 a demi_add (U1) b s c s1 a demi_add (U2) b s c s3 U3 cout

On effectue dabord la somme des bits a et b, laquelle on ajoute ensuite cin


Bourguiba Riadh - ENIT - Gnie Electrique

i. Architecture structurelle
Le code VHDL de ladditionneur 1 bit scrit :

12

Bourguiba Riadh - ENIT - Gnie Electrique

i. Architecture structurelle
Les modules prcdents n'avaient qu'une seule entit et une seule architecture. Leur description commenait par les appels aux paquetages, continuait avec l'entit et se terminait par l'architecture.

13

Dans le cas o un module possde plusieurs architectures, il est dusage de placer lentit en dbut du fichier source VHDL, suivie de ses diffrentes architectures. Chaque unit de conception doit alors tre prcde de ses propres appels aux paquetages externes dont elle a besoin. Nous allons suivre cette organisation pour notre top-level (addN).

Bourguiba Riadh - ENIT - Gnie Electrique

i. Architecture structurelle
Son entit prsentera donc un paramtre N de type entier.

14

Ladditionneur N bits est un composant gnrique, capable de sadapter un nombre de bits paramtrable .

On fixera la valeur de N chaque instanciation (utilisation) de addN.


Bourguiba Riadh - ENIT - Gnie Electrique

i. Architecture structurelle
Une architecture possible pour raliser addN repose sur linstanciation rptitive dadd1. Celle-ci utilise le paramtre N dans une boucle de gnration itrative : : for ... in generate end generate;

15

Notez qu'en VHDL le compteur de boucle est obligatoirement un entier. Il na donc pas besoin dtre dclar. Reste maintenant dcomposer notre additionneur N bits en N additionneurs 1 bit.

Bourguiba Riadh - ENIT - Gnie Electrique

i. Architecture structurelle
La somme sur N bits et laddition 1 bit scrivent :

16

cn +

c1 an-1 a0 bn-1 b0

cout cin a + b s

sn sn-1 s0

Il faut normaliser les largeurs de donnes pour dessiner une structure rgulire que lon pourra dcrire simplement.

Bourguiba Riadh - ENIT - Gnie Electrique

i. Architecture structurelle
Pour cela, on ajoute les bits en rouge :

17

cn+1 cn c1 c0 an an-1 a0 + bn bn-1 b0


sn sn-1 s0
c0 est fix 0, car il ny a pas de retenue provenant de rangs infrieurs. Si ladditionneur travaille uniquement sur des entiers positifs cods en binaire simple, alors an et bn sont fixs 0. Si ladditionneur travaille sur des nombres signs en complment 2, alors a n et bn sont obtenus par extension de signe (a n-1 et bn-1).
Bourguiba Riadh - ENIT - Gnie Electrique

i. Architecture structurelle
Le code VHDL de larchitecture structurelle de addN (partie 1/2) s'crit :

18

Bourguiba Riadh - ENIT - Gnie Electrique

i. Architecture structurelle
Le code VHDL de larchitecture structurelle de addN (partie 2/2) s'crit :

19

Bourguiba Riadh - ENIT - Gnie Electrique

A. Additionneur
i. Architecture structurelle ii. Architecture flot de donnes iii. Simulation

20

Bourguiba Riadh - ENIT - Gnie Electrique

ii. Architecture flot de donnes


Une autre architecture possible pour addN repose sur lutilisation de loprateur + dfinit dans le paquetage std_logic_unsigned ou std_logic_signed de la librairie IEEE :

21

Bourguiba Riadh - ENIT - Gnie Electrique

A. Additionneur
i. Architecture structurelle ii. Architecture flot de donnes iii. Simulation

22

Bourguiba Riadh - ENIT - Gnie Electrique

iii. Simulation

23

La simulation de notre composant ncessite la cration de banc de test ou testbench. Un testbench est un composant virtuel destin crer un environnement de simulation pour un composant rel. A ce titre, il ne possde aucun port, mais il peut avoir des paramtres gnriques. Il est conu en vue de la simulation uniquement, pas de la synthse. Il instancie le composant tester et stimule ses entres. Par convention, son nom est celui du module test (ex : module), prcd du prfixe tb_ (ex : tb_module).

Bourguiba Riadh - ENIT - Gnie Electrique

iii. Simulation
Pour notre testbench, nous utiliserons un paramtre gnrique N. La valeur de N sera fixe par dfaut, directement dans lentit.

24

Nous appellerons galement le paquetage std_logic_arith , qui contient la fonction conv_std_logic_vector qui permet de convertir un entier en un vecteur logique et dont on se servira dans larchitecture.

Bourguiba Riadh - ENIT - Gnie Electrique

iii. Simulation
Par ailleurs, le choix de larchitecture simule se fait la ligne 16, => Un testbench sert simuler toutes les architectures dune mme entit.

25

tant donn le grand nombre de valeurs binaires possibles, nous utilisons deux boucles imbriques pour gnrer a et b (lignes 32 38).

Bourguiba Riadh - ENIT - Gnie Electrique

iii. Simulation

26

Bourguiba Riadh - ENIT - Gnie Electrique

iii. Simulation
On obtient pour les chronogrammes suivant :

27

Bourguiba Riadh - ENIT - Gnie Electrique

1. Logique combinatoire
A. Additionneur B. Oppos

28

Bourguiba Riadh - ENIT - Gnie Electrique

B. Oppos
i. Introduction ii. Architecture structurelle iii. Architecture flot de donnes iv. Simulation

29

Bourguiba Riadh - ENIT - Gnie Electrique

i. Introduction

30

La recherche de loppos dun nombre sign not en complment 2 est une opration trs courante dans les systmes logiques. Algorithme 1 : Recopier tous les bits de la droite vers la gauche jusquau premier bit 1 inclus, puis inverser les bits suivants. Algorithme 2 : Inverser tous les bits, puis ajouter 1.
Bourguiba Riadh - ENIT - Gnie Electrique

B. Oppos
i. Introduction ii. Architecture structurelle iii. Architecture flot de donnes iv. Simulation

31

Bourguiba Riadh - ENIT - Gnie Electrique

ii. Architecture structurelle


a2 b2

32

Cette structure exploite une proprit intressante de la porte XOR : linversion commande.
Commande 0 0 e 0 1 0 1 Xor 0 1 1 0

a1

b1

1 1

a0 0

Commande=0 => e

b0

Commande=1 => not e Sur le schma, on distingue clairement 3 blocs identiques

Bourguiba Riadh - ENIT - Gnie Electrique

ii. Architecture structurelle

33

Notre description utilisera donc ce bloc lmentaire 1 bit (opp1), pour gnrer un bloc de taille variable (oppN).

c
oppN opp1 Top Level

a b

Bourguiba Riadh - ENIT - Gnie Electrique

ii. Architecture structurelle


Description VHDL de opp1 :

34

Bourguiba Riadh - ENIT - Gnie Electrique

ii. Architecture structurelle


Une simple boucle de gnration permet ensuite dcrire oppN.

35

Bourguiba Riadh - ENIT - Gnie Electrique

B. Oppos
i. Introduction ii. Architecture structurelle iii. Architecture flot de donnes iv. Simulation

36

Bourguiba Riadh - ENIT - Gnie Electrique

iii. Architecture flot de donnes

37

Pour cette description, on aura besoin de loprateur not et de loprateur + appliqus un vecteur de bits sign. Ceux-ci sont dfinis dans le paquetage std_logic_signed de la librairie IEEE. Larchitecture obtenue scrit :

Bourguiba Riadh - ENIT - Gnie Electrique

B. Oppos
i. Introduction ii. Architecture structurelle iii. Architecture flot de donnes iv. Simulation

38

Bourguiba Riadh - ENIT - Gnie Electrique

iv. Simulation
Entit

39

Bourguiba Riadh - ENIT - Gnie Electrique

iv. Simulation
Architecture

40

Bourguiba Riadh - ENIT - Gnie Electrique

iv. Simulation
Chronogrammes :

41

Bourguiba Riadh - ENIT - Gnie Electrique

Modules numriques dcrits en VHDL


1. Logique combinatoire 2. Logique squentielle

42

Bourguiba Riadh - ENIT - Gnie Electrique

2. Logique squentielle
A. Bascule D B. Registre C. Registre dcalages D. Compteur/dcompteur

43

Bourguiba Riadh - ENIT - Gnie Electrique

A. Bascule D
i. Introduction ii. Entit iii. Architecture squentielle avec signal iv. Architecture squentielle avec variable v. Simulation

44

Bourguiba Riadh - ENIT - Gnie Electrique

i. Introduction

45

La bascule D est une circuit squentiel synchronis avec une horloge, clk, qui mmorise une simple information binaire, un instant privilgi du cycle, si certaines conditions sont runies. L'instant privilgi de l'horloge est indiqu par un front qui peut tre montant ou descendant, selon le type de bascule. Un signal permet de forcer la valeur de sortie de la bascule au dmarrage : reset set : valeur de sortie force zro. : valeur de sortie force un.

La prise en compte de ce signal peut dpendre de l'horloge (reset ou set synchrone), ou bien ne pas en dpendre (reset ou set asynchrone). Un signal de validation, enable, permet de valider ou d'ignorer les fronts actifs de l'horloge. Enfin, reset, set et enable sont facultatifs et peuvent tre actif l'tat bas ou l'tat haut.
Bourguiba Riadh - ENIT - Gnie Electrique

i. Introduction
On considre la bascule D suivante :

46

e D r clk Q

La bascule D est remise zro de faon asynchrone lorsque r est vrai. La donne D est recopie dans Q, sur front montant de clk, condition que e soit vrai.

Bourguiba Riadh - ENIT - Gnie Electrique

A. Bascule D
i. Introduction ii. Entit iii. Architecture squentielle avec signal iv. Architecture squentielle avec variable v. Simulation

47

Bourguiba Riadh - ENIT - Gnie Electrique

ii. Entit
L'entit s'crit conformment au symbole :

48

e D r clk Q

Bourguiba Riadh - ENIT - Gnie Electrique

A. Bascule D
i. Introduction ii. Entit iii. Architecture squentielle avec signal iv. Architecture squentielle avec variable v. Simulation

49

Bourguiba Riadh - ENIT - Gnie Electrique

iii. Architecture squentielle avec signal

50

Bourguiba Riadh - ENIT - Gnie Electrique

iii. Architecture squentielle avec signal


Supposons dans un premier temps que q et q_tmp sont confondus. La liste de sensibilit

51

Elle est extrmement importante. Elle comporte une liste des signaux susceptibles de modifier le rsultat du process (ici q_tmp). Ces dernier doivent donc provoquer l'activation du process. Elle contient les signaux asynchrones (qui ne dpendent pas de l'horloge), ainsi que l'horloge elle mme. En revanche, les signaux synchrones n'ont pas besoin d'y tre placs, car leur valeur n'est prise en compte que sur front actif de l'horloge et que celle-ci est dj dans le liste. Si on ajoute les signaux synchrones la liste, ils ralentiront inutilement la simulation.
Bourguiba Riadh - ENIT - Gnie Electrique

iii. Architecture squentielle avec signal


L'horloge

52

C'est un signal de contrle particulier : il doit se propager sur un rseau de routage optimis pour garantir que les fronts dhorloge actifs se produiront au mme instant travers tout le circuit. => il faut donc le distinguer des autres signaux. Pour cela, on le teste sparment, aprs avoir test les signaux asynchrones (r) et avant de tester les signaux synchrones (e). Ainsi les outils de synthse seront mme de lidentifier sans aucune ambigut.

Bourguiba Riadh - ENIT - Gnie Electrique

iii. Architecture squentielle avec signal


Affectations conditionnelles

53

q_tmp tant un signal, il faut prciser sa valeur de sortie dans TOUTES les circonstances. => Sinon, loutil de synthse risque de choisir les valeurs qui larrangent pour les cas de non spcifis Toute affectation d'une valeur un signal dans un process ne deviendra effective qu' la sortie du process (franchissement de end process). Signal q_tmp On travaille avec le signal q_tmp, car ce signal interne peut tre lu et crit, contrairement au port de sortie q, qui ne peut tre que crit. q_tmp est connect au port de sortie q, n'importe o l'extrieur du process.
Bourguiba Riadh - ENIT - Gnie Electrique

A. Bascule D
i. Introduction ii. Entit iii. Architecture squentielle avec signal iv. Architecture squentielle avec variable v. Simulation

54

Bourguiba Riadh - ENIT - Gnie Electrique

iv. Architecture squentielle avec variable

55

Bourguiba Riadh - ENIT - Gnie Electrique

iv. Architecture squentielle avec variable

56

Cette fois ci, on dfinit q_tmp comme une variable et non plus comme un signal. Une variable est locale au process et conserve sa valeur entre deux activations successives (come une variable static en C). Par consquent, il est possible cette fois-ci de supprimer les lignes 58 et 60, puisqu'il n'y a pas de modification de la valeur de la variable et que celle-ci est conserve automatiquement. On prfre toutefois rester explicite par soucis de maintenabilit du code. L'oprateur d'affectation d'une variable est := et l'affectation est immdiate. Aprs laboration du rsultat, la variable q_tmp doit tre affecte au port de sortie q. En gnral, on effectue cela la fin du process, pour que q reflte les changements.

Bourguiba Riadh - ENIT - Gnie Electrique

A. Bascule D
i. Introduction ii. Entit iii. Architecture squentielle avec signal iv. Architecture squentielle avec variable v. Simulation

57

Bourguiba Riadh - ENIT - Gnie Electrique

v. Simulation
Il faut gnrer trois signaux de contrle :

58

le reset (r)

lhorloge (clk)

le enable (e)

Il existe plusieurs faons de les crer. En voici deux diffrentes, mais toutes aussi efficaces.
Bourguiba Riadh - ENIT - Gnie Electrique

v. Simulation
Pour le reset il faut gnrer une impulsion au dmarrage du systme.
Solution 1 1. Lui affecter une premire valeur dans un processus et attendre un certain dlai, 2. puis changer cette valeur et suspendre dfinitivement le processus. Solution 2

59

Lui affecter une valeur dinitialisation, puis lui affecter une valeur dfinitive aprs un dlai, partir dune seule instruction.

Bourguiba Riadh - ENIT - Gnie Electrique

v. Simulation
Pour lhorloge, il faut gnrer un signal priodique.
Solution 1 1. Dclarer le signal dhorloge normalement. Solution 2

60

1. Dclarer le signal et lui affecter une valeur dinitialisation.

2. Lui affecter une premire valeur dans un processus et attendre un certain dlai, 3. puis changer cette valeur et attendre le mme dlai avant de recommencer.

2. Inverser cette valeur au bout dun dlai et recommencer, le tout avec une seule instruction.

Bourguiba Riadh - ENIT - Gnie Electrique

v. Simulation
L'entit du testbench est vide :

61

Elle n'a pas besoin de paquetages, puisqu'elle n'a ni ports d'entre/sortie, ni paramtres. Nous allons maintenant envisager deux architectures pour le testbench de la bascule D, afin d'illustrer les diffrentes syntaxe de gnration du reset et de clk.

Bourguiba Riadh - ENIT - Gnie Electrique

v. Simulation
1re architecture

62

Bourguiba Riadh - ENIT - Gnie Electrique

v. Simulation
2me architecture

63

Bourguiba Riadh - ENIT - Gnie Electrique

v. Simulation
Chronogrammes

64

Bourguiba Riadh - ENIT - Gnie Electrique

2. Logique squentielle
A. Bascule D B. Registre C. Registre dcalages D. Compteur/dcompteur

65

Bourguiba Riadh - ENIT - Gnie Electrique

B. Registre
i. Introduction ii. Entit iii. Architecture squentielle avec signal iv. Architecture squentielle avec variable v. Simulation

66

Bourguiba Riadh - ENIT - Gnie Electrique

i. Introduction

67

Les registres que nous tudions ici sont construits exclusivement partir de bascules D assembles en parallle. Ds lors, deux solutions s'offrent nous : Construire le registre l'aide d'une boucle de gnration de bascules D. Construire le registre partir d'une description comportementale squentielle, comme nous l'avons fait pour la bascule D. => Nous choisissons la seconde solution. Cette dernire offre galement deux possibilits, avec signal ou avec variable, que nous verrons toutes les deux.

Bourguiba Riadh - ENIT - Gnie Electrique

B. Registre
i. Introduction ii. Entit iii. Architecture squentielle avec signal iv. Architecture squentielle avec variable v. Simulation

68

Bourguiba Riadh - ENIT - Gnie Electrique

ii. Entit

69

L'entit s'crit conformment comme celle de la bascule, sauf que les donnes sont dsormais des vecteurs logiques paramtrs :

Bourguiba Riadh - ENIT - Gnie Electrique

B. Registre
i. Introduction ii. Entit iii. Architecture squentielle avec signal iv. Architecture squentielle avec variable v. Simulation

70

Bourguiba Riadh - ENIT - Gnie Electrique

iii. Architecture squentielle avec signal

71

Bourguiba Riadh - ENIT - Gnie Electrique

iii. Architecture squentielle avec signal


accs direct accs par tranche : accs par agrgat : notation positionnelle : a(1 to 3) <= (0,1,1); notation avec nommage : a(4 downto 0) <= (3=>1,1=>1,others=>0);
Bourguiba Riadh - ENIT - Gnie Electrique

72

Nous allons utiliser une notation nouvelle. En effet, laccs aux lments dun vecteur de bits peut se faire de diffrentes faons en VHDL. : a(7) <= b(2);

a(7 downto 5) <= b(2 downto 0);

b <=(1,1,others=>0);

B. Registre
i. Introduction ii. Entit iii. Architecture squentielle avec signal iv. Architecture squentielle avec variable v. Simulation

73

Bourguiba Riadh - ENIT - Gnie Electrique

iii. Architecture squentielle avec variable

74

Bourguiba Riadh - ENIT - Gnie Electrique

B. Registre
i. Introduction ii. Entit iii. Architecture squentielle avec signal iv. Architecture squentielle avec variable v. Simulation

75

Bourguiba Riadh - ENIT - Gnie Electrique

v. Simulation

76

L'entit comporte cette fois-i un paramtre (N) qui sera attribu au composant test (regN).

Bourguiba Riadh - ENIT - Gnie Electrique

v. Simulation
L'architecture dclare les signaux et instancie le composant tester.

77

Bourguiba Riadh - ENIT - Gnie Electrique

v. Simulation

78

Puis, elle gnre les valeurs qui seront affects aux signaux, et donc aux ports d'entre du composant tester.

Bourguiba Riadh - ENIT - Gnie Electrique

v. Simulation
Chronogrammes

79

Bourguiba Riadh - ENIT - Gnie Electrique

2. Logique squentielle
A. Bascule D B. Registre C. Registre dcalages D. Compteur/dcompteur

80

Bourguiba Riadh - ENIT - Gnie Electrique

C. Registre dcalages
i. Introduction ii. Entit iii. Architecture squentielle avec signal iv. Simulation

81

Bourguiba Riadh - ENIT - Gnie Electrique

i. Introduction

82

Un registre dcalage est un registre classique, auquel on ajoute une fonction de dcalage. Il prsente ainsi deux signaux de contrle en plus du reset et de clk: load : provoque le chargement du registre lorsqu'il vaut '1'. shift : provoque le dcalage de la donne contenue dans le registre et pralablement charge lorsqu'il vaut '1'. Gnralement, le chargement (load) est prioritaire sur le dcalage (shift). Il existe plusieurs sortes de dcalages. De plus, la distance du dcalage dpend de l'application ralise.
Bourguiba Riadh - ENIT - Gnie Electrique

i. Introduction
Voici quelques exemples avec une distance de 1 bit :
gauche droite

83

Rotation

Dcalage

Dcalage

Bourguiba Riadh - ENIT - Gnie Electrique

C. Registre dcalages
i. Introduction ii. Entit iii. Architecture squentielle avec signal iv. Simulation

84

Bourguiba Riadh - ENIT - Gnie Electrique

ii. Entit
Les donnes sont paramtres

85

Bourguiba Riadh - ENIT - Gnie Electrique

C. Registre dcalages
i. Introduction ii. Entit iii. Architecture squentielle avec signal iv. Simulation

86

Bourguiba Riadh - ENIT - Gnie Electrique

iii. Architecture squentielle avec signal

87

Bourguiba Riadh - ENIT - Gnie Electrique

iii. Architecture squentielle avec signal


reset clk load shift : Il est prioritaire sur l'horloge. Il est donc asynchrone. : Il est consult suite au front actif de clk, il est donc synchrone.

88

: Il cadence le fonctionnement du registre sur ses fronts montants.

: Il est galement synchrone. En revanche, il n'est test que si load vaut '0'. Il est donc moins prioritaire.

Bourguiba Riadh - ENIT - Gnie Electrique

C. Registre dcalages
i. Introduction ii. Entit iii. Architecture squentielle avec signal iv. Simulation

89

Bourguiba Riadh - ENIT - Gnie Electrique

iv. Simulation

90

Bourguiba Riadh - ENIT - Gnie Electrique

iv. Simulation

91

Bourguiba Riadh - ENIT - Gnie Electrique

iv. Simulation

92

Bourguiba Riadh - ENIT - Gnie Electrique

iv. Simulation

93

Bourguiba Riadh - ENIT - Gnie Electrique

2. Logique squentielle
A. Bascule D B. Registre C. Registre dcalages D. Compteur/dcompteur

94

Bourguiba Riadh - ENIT - Gnie Electrique

D. Compteur/dcompteur
i. Introduction ii. Entit iii. Architecture squentielle avec signal iv. Simulation

95

Bourguiba Riadh - ENIT - Gnie Electrique

i. Introduction

96

Un compteur/dcompteur est un circuit logique squentiel dont la valeur s'incrmente ou se dcrmente au rythme de l'horloge (clk). Pour cela, il faut une valeur initiale qui peut tre charge comme dans un registre, si le registre a une entre de chargement (load). Sinon le compteur/dcompteur est simplement initialis zro (reset). Le compteur/dcompteur travaille sur un nombre de bits fixe, ce qui dtermine un intervalle de valeurs reprsentables. Arriv aux limites de cet intervalle le compteur peut tre bloqu, s'il possde un circuit de dtection des limites. Sinon, il fait un dpassement de capacit, c'est dire qu'il passe d'une limite de l'intervalle, l'autre.
Bourguiba Riadh - ENIT - Gnie Electrique

i. Introduction

97

Nous allons considrer ici le cas d'un compteur/dcompteur avec dtection des limites. La valeur initiale sera toujours nulle et fixe par le signal reset (pas de chargement). Le choix du sens du comptage s'effectuera en fonction de la valeur du signal up_down : '1' : le compteur/dcompteur compte. '0' : le compteur/dcompteur dcompte. Enfin, les front montants de l'horloge seront valids par un signal enable.

Bourguiba Riadh - ENIT - Gnie Electrique

D. Compteur/dcompteur
i. Introduction ii. Entit iii. Architecture squentielle avec signal iv. Simulation

98

Bourguiba Riadh - ENIT - Gnie Electrique

ii. Entit
Nous obtenons donc l'entit suivante :

99

Bourguiba Riadh - ENIT - Gnie Electrique

D. Compteur/dcompteur
i. Introduction ii. Entit iii. Architecture squentielle avec signal iv. Simulation

100

Bourguiba Riadh - ENIT - Gnie Electrique

iii. Architecture squentielle avec signal

101

Bourguiba Riadh - ENIT - Gnie Electrique

iii. Architecture squentielle avec signal

102

Les tests de enable, de up_down et des limites de l'intervalle sont tous regroups ensembles. Seul le test du front d'horloge reste isol, afin de garantir une interprtation correcte du code VHDL au moment de la synthse.

Bourguiba Riadh - ENIT - Gnie Electrique

D. Compteur/dcompteur
i. Introduction ii. Entit iii. Architecture squentielle avec signal iv. Simulation

103

Bourguiba Riadh - ENIT - Gnie Electrique

iv. Simulation

104

Bourguiba Riadh - ENIT - Gnie Electrique

iv. Simulation

105

Bourguiba Riadh - ENIT - Gnie Electrique

iv. Simulation

106

Bourguiba Riadh - ENIT - Gnie Electrique

iv. Simulation

107

Bourguiba Riadh - ENIT - Gnie Electrique

iv. Simulation

108

Bourguiba Riadh - ENIT - Gnie Electrique

iv. Simulation

109

Bourguiba Riadh - ENIT - Gnie Electrique