LOGIQUE PROGRAMMABLE EN VERILOG
Chapitre 1. Introduction
Chapitre 2. Traitement combinatoire et syntaxe du langage
2.1. Le module
2.2. Les entrées - sorties
2.3. Les niveaux logiques
2.4. Le corps du programme
2.5. Les opérations logiques binaires
2.6. Les opérations logiques unaires
2.7. Les opérations arithmétiques
2.8. Les bus
2.9. La déclaration de paramètre
2.10. La concaténation
2.11. Exemple: l'additionneur 1 bit complet
2.12. Taille et codage des nombres
2.13. Extension des modules
2.14. Avantages et Inconvénients des différentes approches sur un exemple
2.15. Exercices
2.16. Solution des exercices
Chapitre 3. L'usage de l'outil QUARTUS II
Chapitre 4. Description comportementale
Chapitre 5. Projets : énoncés
Chapitre 6. Projets : vers la solution
Page d'accueil Table des matières Niveau supérieur Page précédente Bas de la page Page suivante

2.6. Les opérations logiques unaires

Une opération unaire nécessite un opérateur et une seule opérande et fournit un résultat sur un bit. L’opérateur unaire le plus connu est sûrement le signe – devant un nombre qui le transforme en son opposé.

Les opérations logiques unaires connues par le langage sont :

  • le complément à 1, bit à bit (~),
  • le complément à 2 (-),
  • le ET réduit (&),
  • le OU réduit (|),
  • le NAND réduit (~&),
  • le NOR réduit (~|),
  • le OU exclusif réduit (^),
  • le OU exclusif réduit (~^ ou ^~),
  • le complément logique (!).

Remarque : les opérateurs unaires présentent toujours la plus grande priorité par rapport aux opérateurs binaires.

2.6.1 Complément à 1 et complément logique

Ces 2 opérateurs peuvent avoir un comportement identique, mais se différencient. Lorsque l'on travaille sur des variables dont la taille est le bit, il n'y a pas de différence et on peut utiliser indifféremment les 2 opérateurs.

Lors de l'usage de mots (sur plus d'un bit), l'opérateur ~ fait un complément bit à bit. L'opérateur ! considère le mot comme une entité et associe un contenu nul à 0 (faux) et tout autre valeur à 1 (vrai).

Conseil : l'opérateur ! est plutôt à classer dans les opérations proprositionnelles. Il est souvent utilisé comme inverseur sur les variables booléennes (1 bit)

Ainsi :

Si a est un mot codé sur 4 bits et vaut 12 (1100 en binaire)

a = 12 ;

b = !a ; // b vaut 0

c = ~a ; //c n'est pas nul et vaut 3 (0011 en binaire)

2.6.2 Opération réduite

C'est une opération qui s'applique à une grandeur d'au moins un bit et qui fera une opération logique en donnant un résultat sur 1 bit.

On peut dire que :

  • l'opération réduite ET donne 1 quand tous les bit d'un mot sont à 1,
  • l'opération réduite OU donne 1 quand au moins 1 des bits du mot est à 1,
  • L'opérateur NAND réduit est l'inverse du ET réduit,
  • L'opérateur NOR réduit est l'inverse de l'opérateur OU réduit,
  • l'opérateur OU Exclusif réduit et son inverse permet de vérifier la parité d'une grandeur (nombre de bits à 1 ou 0).

 

2.6.3 Le complément à 2

C'est l'opération arithmétique qui calcule l'opposé d'un nombre. Le complément à 2 peut être considéré comme une opération logique (complément à 1 bit à bit augmenté de 1).

 

 
Page d'accueil Table des matières Niveau supérieur Page précédente Haut de la page Page suivante