Chapitre VLes instruction de base du mode concurrent : logique combinatoire
Dans toute description VHDL, toutes les instructions sont évaluées en même temps et affectent les signaux de sortie en même temps également. L'ordre dans lequel les instructions sont écrites n'a aucune importance puisque VHDL génère les structures électroniquement ce qui le différencie d'un langage informatique classique.
A.Les opérateurs
1.L'affectation : <=
Elle permet de modifier l'état d'un signal en fonction d'autres signaux Exemple : S <= '0';
S2 <= "001"; Binaire : BUS <="010";
Hexadécimal : BUS <= X "0AF";
Octal : BUS <= O "11";
2.Opérateur de concaténation : &
Ex : A <= "001";
B <= "101";
C <= A & B & "01" C <= 00110101
3.Opérateurs logiques
Opérateur
| VHDL
| Explication
| ET
| AND
|
| NON ET
| NAND
|
| OU
| OR
|
| NON OU
| NOR
|
| OU EXCLUSIF
| XOR
|
| NON OU EXCLUSIF
| XNOR
|
| NON
| NOT
|
| DECALAGE A GAUCHE
| SLL
| Remplacement par des 0
| DECALAGE A DROITE
| SRL
| Remplacement par des 0
| ROTATION A GAUCHE
| ROL
| Le caractère de gauche est mis à droite
| ROTATION A DROITE
| ROR
| Le caractère de droite est mis à gauche
|
Les opérateurs logiques ont priorités sur la concaténation. Exercice : A <= "1010011"
Donner le résultat des opérateurs suivants : B <= "01" & A SLL 2 B <= 011001100
C <= A SRL 3 & "11" C <= 000101011
D <= A ROL 4 D <= 0111010
E <= AROR 2 & "00" E <= 111010000
4.L'opérateur arithmétique
Le langage VHDL utilise les opérateurs arithmétiques classiques (+, -, *, /), cependant pour les utiliser il faut utiliser les bibliothèques numériques suivantes : USE ieee.numeric_std.all
USE ieee.std_logic_arith.all Remarque : l'utilisation de ces opérateurs avec des signaux de grandes tailles peut générer de grandes structures électronique.
5.Opérateurs relationnels
Il permet de modifier l'état d'un signal ou de signaux suivant le résultat d'un test ou d'une condition. En logique combinatoire, ils sont souvent utilisés avec les instructions when, select, with.
Opérateur
| VHDL
| Egal
| =
| Différent
| /=
| Inférieur
| <
| Inférieur ou égal
| <=
| Supérieur
| >
| Supérieur ou égal
| >=
|
|