Mémoires mortes








télécharger 184.53 Kb.
titreMémoires mortes
page7/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

Les classes d'objets



Il y a trois classes d'objets utilisées dans les zones de déclarations des programmes :

  • Signaux

  • Variables

  • Constantes

Notion de signal


  • Représentation matérielle du support de l'information en VHDL

  • L'affectation de signal (a <= '0') permet de faire évaluer au cours du temps les valeurs présentes sur le signal.


Remarques : le signal se déclare sans l'architecture, les variables elle se déclarent dans le process

Exemple d'affectation de signal
a <=1 after 4ns, 0 after 8 ns, 1 after 12 ns;

Attention les expressions doivent être ordonnées selon un ordre croissant des délais.
2 4 6 8 10 12 14 temps (ns)

a
b

s1


s2


z


Il faut maintenant trouver b, s1, s2 et z

b <= 1, 0 after 2ns, 1 after 6ns, 0 after 10ns ;

s1 <= not (a);

s2 <= not (b);

z <= 1, 0 after 2ns, 1 after 4ns, 0 after 6ns, 1 after 8ns, 0 after 10ns, 1 after 12ns ;

A.Propriété des signaux





  • Chaque signal à 3 propriétés : son type, sa valeur et son histoire temporelle.

  • Les signaux sont déclarées dans les entités et la partie déclarative des architecture.

  • Attention on ne peut pas les déclarer dans un process.

  • Les signaux ne reçoivent leur assignation définitive que lorsque le process a fini son exécution.



B.Les variables



Les variables se déclarent dans le domaine séquentiel d'un process, d'une procédure ou d'un fonction
Syntaxe :
Variable var_name {, var_name} : TYPE [ := value ] ;
Exemple
Variable i : INTEGER range 0 to 3 ; -- valeur initiale 0

Variable x : std_ulogic ; -- valeur initiale 0

i := 3 ;

x := 0 ;
Remarque : une affectation de variable est immédiate dans un process
Exercice
Process (C,D)

Begin

Av := 2 ; Av = 2

Bv := Av + C ; Bv = 2+1 = 3

Av := D + 1 ; Av = 2+1 = 3

Ev := Av * 2 ; Ev = 3*2 = 6

A <= 2 ; A = 3

B <= A + C ; B = 3

E <= A * 2 ; E = 6

End process;
A = 1

B = 1

C = 1

D = 1

E = 1

On commence en mettant D à 2

Résultat
A = 3 B = 3 E = 6

C.Les constantes





  • Les constantes sont utilisées pour référencer une valeur ou un type spécifique.

  • Elles permettent une meilleure lecture et la maintenant d'une source.

  • De tous type, elles sont utilisées dans les architectures ou les packages.


Syntaxe :
Constant const_name {, const_name} : TYPE [ := value ] ;
Exemple
Constant BUS_WIDTH : INTEGER := 8 ;
La déclaration generic
La section "GENERIC_DECLARATION" dans l'entête "ENTITY" permet de définir des paramètres exploitables dans l'architecture. Cette méthode d'écriture permet un maintenance plus aisée.
Exemple :
ENTITY entity_name IS

GENERIC (TP : time := 30 ns) ;

Port (declarations) ;

END [entity_name] ;

Chapitre VIILes délais



VHDL permet de modéliser différents types de délais, qui sont utiles lors des simulations :
Délais d'inertie :


  • Il agit comme un filtre, c'est à dire que les impulsions de durée inférieure à celle indiquée sont supprimées.

  • Celles qui sont égales ou supérieures sont retardées de cette valeur. Utile pour tenir compte du temps de montée/descente.

  • Ex : sum <= inertial (a xor b) after 5ns ;

Le mot inertial est facultatif

Délais d'inertie :


  • Il représentent le délai encouru par les interconnections

  • Utile pour tenir compte des délais RC dans les longs fils

  • Ex : sum <= transport (a xor b) after 5ns ;



Chapitre VIIITypage des objets



Le typage des objets permet en premier lieu de protéger les affectations d'objets en restreignant les possibilités d'affectations aux objets du même type.

A.Les types prédéfinis



Les types prédéfinis reconnaissent six objets scalaires ayant une valeure unique à chaque instant :

  • Bit

  • Bit_vector

  • Boolean

  • Real

  • Integer

  • Character



B.Le type énuméré



Ce type permet de définir un type utilisateur auquel on peut assigner un objet.

Tous les objets doivent être assignés à un type.

Chaque type doit être unique.
Syntaxe :
Type identifier is (enumeration_type_literals) ;
Exemple
Type couleur is (rouge, vert, jaune) ;

Type op_type is (opadd, opor, opand, opxor) ;

Type letters is ('A','a','R','r') ;

C.Le type numérique



Cette définition de type doit être dans une échelle de valeur. La base par défault est le décimale.
Syntaxe :
Type identifier is Range implementation_defined ;
Exemple
Type byte is Range 0 to 255 ; -- byte variant de 0 à 255

Type index is Range 7 downto 0 ; -- index variant de 7 à 0

D.Le type physique



Cette définition de type représente une quantité physique. La base des unités doit être spécifiée. Les valeurs sont calculées à partir de cette base.
Syntaxe :
Type identifier is Range implementation_defined ;

Units

Base_unit_declaration;

[secondary_unit_declaration]

End units;
Exemple
Type time is Range implementation_defined ;

Units

fs;

ps = 1000 fs;

ns = 1000 ps;

us = 1000 ns;

ms = 1000 us;

sec = 1000 ms;

min = 60 fs;

hr = 60 min;

End units;

E.Le type tableau



Le type tableau est un groupement de types identiques. Les tableaux peuvent être multidimensionnels.

Il existe deux sortes de tableaux :

  • Tableau avec contraintes : à dimensions figées (rangées colonnes)

  • Tableau sans contraintes : sans préciser les dimensions (dynamique)


Syntaxe :
Type identifier is Array ;

[unconstrained_array_definition] ;

[constrained_array_definition] ;
Exemple
Type data_bus is Array (0 to 31) of bit; --tableau de 32 bits

Type bit4 is Array (3 doxnto 0) of bit; --tableau de 4 bits

Type string is Array (positive RANGE <>) of character;

Type dim2 is Array (0 to 7,0 to 7) of bit; --tableau à 2 dim

Type bit_vector is Array (natural range <>);

F.Le type trois états



Std_logic et std_logic vector

G.Les pointeurs



Ils ne sont pas synthétisables du fait de leur caractère dynamique. Ils sont uniquement affectable sur les variables et constante pas les signaux. Ils sont strictement réservés au domaine fréquentiel.
Syntaxe :
Type pointeur is Access typeobjet ;
Exemple
Variable pt : pointeur ;

Pt : = new typeobjet ; -- allocation dynamique d'un objet en mémoire
La libération du pointeur se fait avec : dellocate (pt)

H.Les structures : RECORD



Les structures permettent de regrouper un ou plusieurs champs de type différents et fournissent un accès au champs par leur nom. Un type record peut être associé à une variable comme un signal.
Exemple :

TYPE data is RECORD

Bus1, bus2, bit ;

Duree : time ;

Donnees : integer range 0 to 255 ;

End record ;

Signal enregistrement1 : data ;

enregistrement1 . bus1 <= '1' ;

enregistrement1 <= ('0', '1', duree, donnees)

I.les sous types : SUBTYPE



SUBTYPE est une restriction d'un type à un sous domaine de ce type.
Exemple :

TYPE color is (red, yellow, blue, green, black) ;

SUBTYPE primary IS colors RANGE red TO blue ;
TYPE integer is range –2147483647 to 2147483647;

SUBTYPE absolu IS integer 0 TO 2147483647;

Chapitre IXLes entités (ENTITY)



EXERCICE :
Réaliser un compteur synchrone comptant sur front montant d'horloge (en entrée l'horloge, en sortie un compteur sur 4 bit)
L'instruction de front montant est réalisé par l'attribut 'event :

CLOCK = '1' and CLOCK 'event


S(3)

S(2)

S(1)

S(0)




CLOCK


Entity compteur is

Port (CLOCK : in std_logic ;

S :inout std_logic_vector (3 downto 0)) ;

End compteur;
Architecture cbo of compteur is

Begin

Process (CLOCK)

Begin

If (CLOCK = '1' and CLOCK 'event)

Then S <= S + 1;

End if ;

End process ;

End cbo;
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