Mémoires mortes








télécharger 184.53 Kb.
titreMémoires mortes
page6/7
date de publication29.03.2017
taille184.53 Kb.
typeMémoires
ar.21-bal.com > droit > Mémoires
1   2   3   4   5   6   7

C.Les instructions du mode séquentiel




1.Définition d'un process



Un process est une partie de la description d'un circuit dans laquelle les instructions sont exécutées séquentiellement. L'exécution d'un process est déclenché par un ou des changements d'états de signaux logiques. Le nom de ces signaux est défini dans la liste de sensibilité lors de la déclaration du process.

[nom_du_process :] Process ( liste_de_sensibilite )

Begin

… instruction_du_process … ;

End process;
Le nom du process est facultatif.

2.Règle de fonctionnement d'un process

a)L'exécution d'un process





  • L'exécution d'un process a lieu à chaque changement d'état d'un signal de la liste de sensibilité

  • L'instruction du process s'exécute séquentiellement

  • Les changements d'état des signaux par les instructions du process sont prises en compte à la fin du process

  • 2 process d'une architecture ayant la même liste de sensibilité vont être exécutés en même temps


Exemple :
Process (C,D)

Begin

A <= 2 ;

B <= A + C ;

A <= D + 1 ;

E <= A * 2 ;

End process;
A = 1 A <= D + 1 ;

B = 1 B <= A + C ;

C = 1

D = 1

E = 1 E <= A * 2 ;
On commence en mettant D à 2

On trouve les résultats suivants :

A = 3 B = 2 E = 2
Remarque : Les valeurs ne sont affectées qu'après la fin du process

b)Les principales structures du mode séquentiel





  • A l'intérieur d'un process, on peut utiliser des "if" et/ou des "case". L'exécution est alors séquentielle.

  • De même on peut utiliser des boucles pour contrôler l'exécution. Les "for" sont à bornes fixes, alors que les "while" ne le sont pas.



iLe fonctionnement du "If"


Syntaxe : If condition then instructions ;

Elsif condition then instructions ;

Else instructions ;

End if ;

Exemple du démultiplexeur 1 vers 4



SEL

S

00

S1

01

S2

10

S3

11

S4


SEL

E (1 bit)

S1 (1bit)

S2

S3

S5

Enable



Library ieee;

USE iee.std_logic_1134.all

Entity demultiplex is

Port ( SEL : in std_logic_vector (1 downto 0);

E : in std_logic

Enable : in std_logic;

S1,S2,S3,S4 : out std_logic;);

End demultiplex;
Architecture desc_demultiplex of demultiplex is

Begin

Process (SEL, ENABLE, E) --liste de sensibilité

Begin

If SEL ="00" and ENABLE = '0' then S1 <= E ;

Elsif SEL ="01" and ENABLE = '0' then S2 <= E ;

Elsif SEL ="10" and ENABLE = '0' then S3 <= E ;

Elsif SEL ="11" and ENABLE = '0' then S4 <= E ;

Else S1<='Z', S2<='Z', S3<='Z', S4<='Z' ;

End if;

End process ;

End desc_demultiplex ;

iiLe fonctionnement du "Case"


Syntaxe : Case signal de selcteion is

When valeur_de_selection => instruction;

When valeur_de_selection => instruction;



Whenothers => instruction;

End case;
Même exercice avec case :
Library ieee;

USE iee.std_logic_1134.all

Entity demultiplex is

Port ( SEL : in std_logic_vector (1 downto 0);

E : in std_logic

Enable : in std_logic;

S1,S2,S3,S4 : out std_logic;);

End demultiplex;
Architecture desc_demultiplex of demultiplex is

Begin

Process (SEL, ENABLE, E) --liste de sensibilité

Begin

If ENABLE = '0' then

Case SEL is

When "00" => S1 >= E ;

When "01" => S2 >= E ;

When "10" => S3 >= E ;

Whenothers S4 >= E ;

End case

Else S1<='Z', S2<='Z', S3<='Z', S4<='Z' ;

End if ;

End process ;

End desc_demultiplex ;

iiiLe fonctionnement du "for"


Syntaxe : FOR parametre IN intervalle (Ex : 0 to 5) LOOP

instruction;

End LOOP;
Exemple de codage de données :
Le cahier des charges est le suivant :

s0 = a0

Pour i > 0 si = ai . ai-1 + ai . ai-1
ENTITY codage IS

a : IN std_logic_vector (3 downto 0) ;

s : OUT std_logic_vector (3 downto 0) ;

END codage

Architecture archi of codage is

Begin

Process

Begin

s(0) <= a(0);

FOR I IN 1 to 3 LOOP

s(i)<=(a(i) AND a(i-1)) OR ((NOT a(i) AND NOT a(I-1));

END LOOP;

END process ;

END archi;

ivLe fonctionnement du "wait"




  • Il est possible de définir un process sans liste de dépendance. Chaque process est toujours exécuté au moins une fois, au début.

  • En ajoutant des énoncés "wait", il devient possible d'indiquer que le process sera réveillé à un certain endroit, selon une certaine condition :

  • Wait for time

  • Wait on signal

  • Wait until condition


Chapitre VILe VHDL

1   2   3   4   5   6   7

similaire:

Mémoires mortes iconMémoires mortes reprogrammables effaçables aux rayons ultra-violets

Mémoires mortes iconAigues-mortes exposition

Mémoires mortes iconDessins aquarelles gouaches pastels
«gitans et leur roulotte pres des remparts d’aigues mortes» Aquarelle signée en bas à droite. 38x52 cm

Mémoires mortes iconMémoires géographiques

Mémoires mortes iconMémoires, à paraître

Mémoires mortes iconAdresses mémoires

Mémoires mortes iconMÉmoires d'un voyageur chinois

Mémoires mortes iconMÉmoires sur la chine

Mémoires mortes iconTD2 : Mémoires et disques

Mémoires mortes iconMÉmoires sur la chine








Tous droits réservés. Copyright © 2016
contacts
ar.21-bal.com