Les simplifications dans le cas des sorties multiples sont encore plus complexes. Nous n'allons pas aborder ce problème de front mais plutôt des problèmes périphériques.

Représentation des Nombres

Le système binaire

Lisez le système binaire, particulièrement l'énumération des premiers nombres et dans l'expression d'un nombre, la partie sur la représentation des nombres positifs.

Vous pouvez aussi lire dans le WIKIBOOK Architecture des ordinateurs le chapitre Représentation des données qui vous explique les changements de base binaire vers décimal et décimal vers binaire.

Voir aussi Utiliser le système binaire.

Le système BCD

Lisez le code BCD

Les nombres signés

Les nombres signés sont des nombres qui peuvent être positifs ou négatifs.

Il existe plusieurs représentations de ces nombres. Nous en présentons deux ici (voir aussi Représentation des entiers négatifs).

Représentation en Complément à 1

Voir Complément à 1.

Ses propriétés arithmétiques ne sont pas suffisamment bonnes pour qu'on en fasse un standard de la représentation des nombres négatifs. En particulier, le zéro a deux représentations.

Représentation en Complémént à deux

Voir Complément à 2.

C'est essentiellement cette représentation que l'on utilisera par la suite. Une des raisons de cette utilisation est qu'elle permet de transformer une soustraction en addition comme on sait le faire depuis que l'on a découvert les nombres décimaux négatifs. Autrement dit, on attend d'une bonne représentation la propriété :

A - B = A + (-B)

qui exprime le fait qu'une soustraction est une addition d'un nombre négatif.

Addition et Soustraction

Addition binaire

L'addition binaire est expliquée dans un autre WIKIBOOK.

Soustraction binaire

La soustraction binaire est elle aussi expliquée dans un autre WIKIBOOK.

Nous allons maintenant nous intéresser à la matérialisation de l'addition en nous contentons dans un premier temps de l'additionneur sur 1 bit.

Du demi-additionneur à l'additionneur 1 bit

Ce problème est abordé en détail ici : Additionneur

Remarquons comme indiqué par la figure suivante que le schéma de l'additionneur est obtenu en n'utilisant pas les regroupements optimaux dans le tableau de Karnaugh. C'est une propriété des circuits à sorties multiples : la simplification ne consiste pas à simplifier chacune des sorties séparément. Mais nous ne traiterons pas ce problème dans le cas général ici.

Exercice 1

Implanter l'additionneur avec des OU exclusifs et des ET-NON seulement. Écrire la table de vérité d'un soustracteur (3 entrées : A, B et Ci et deux sorties D et Co). Le soustracteur sort sur 2 bits en complément à deux (Co,D) = A - B - Ci. Implanter ce soustracteur avec des OU exclisifs et des ET-NON seulement. Implanter un circuit qui fait soit une addition soit une soustraction avec une entrée de sélection.

De l'addition à 1 bit à l'addition à n bits

De l'addition 1 bit à l'addition 4 bits

Ce problème est abordé en détail dans l'article déjà cité : Additionneur. Il faut à tout prix voir dans le schéma le côté mise en série de l'additionneur 1 bit en commençant par la droite (les poids faibles). Une addition en binaire s'exécute exactement comme on l'a appris à l'école primaire : on commence par additionner les poids faibles pour additionner ensuite les poids de plus en plus fort. Ce qui change par rapport à l'addition décimale, c'est la table d'addition qui est beaucoup plus simple ici.

Vous pouvez aussi lire le WIKIBOOK Architecture des ordinateurs, particulièrement la section additionneur.

Exercice 2

Quel est le temps de propagation de l'additionneur 3 bits (puis 4 bits) si un additionneur a lui-même un temps de propagation tp=10 ns.

Arithmétique et VHDL

L'additionneur ci-dessus peut être facilement décrit en VHDL :

-- additionneur 3 bits VHDL
ENTITY add3 IS
PORT (a,b :IN INTEGER RANGE 0 TO 7;
      s :OUT INTEGER RANGE 0 TO 15);
END add3;
ARCHITECTURE add OF add3 IS
BEGIN
  s<=a+b;
END add;

En écrivant cela, on n'a aucune indication sur la façon dont il sera implanté : cela dépendra du compilateur VHDL et de la cible.

Codes et transcodage

Code de Gray

Code de Gray est une code ayant une propriété particulière intéressante : il n'y a qu'une variable qui change lorsque l'on passe d'une valeur à une valeur contiguë. Cet article explique comment retrouver un code de Gray sur n bits par des symétries successives. On trouve aussi une méthode sous forme algorithmique qui peut être intéressante à mémorisée.

Remarque : Les entités en VHDL pour entrées et sorties multiples sont plutôt déclarées sous la forme :

-- Entrees et sorties multiples
ENTITY binGray IS
PORT (b :IN BIT_VECTOR(3 DOWNTO 0);
      g :OUT BIT_VECTOR(3 DOWNTO 0));
END binGray;

Exercice 3

On a besoin d'un circuit combinatoire pour transcoder le code binaire en Code de Gray. Trouver les formes disjonctives simplifiées de G3, G2, G1, G0. Implanter avec des OU exclusifs. Écrire la partie architecture du programme VHDL correspondant.

Codes décimaux

Un code décimal permet de représenter les dix valeurs 0 --> 9. On trouve le code DCB (Decimal Codé Binaire) ou BCD en anglais. Le Code Excess 3 est aussi présenté ici même s'il est peu utilisé.

Exercice 4

Un décodeur Excess 3 est un circuit qui entre le code 4 bits E3 E2 E1 E0 et valide une sortie parmi les 9. On évitera de confondre ce circuit avec un transcodeur BCD / Excess 3. Étudier un tel circuit, l'implanter. Écrire le programme VHDL correspondant.

Exercice 5

Trouver la table de vérité d'un transcodeur BCD vers Code de Gray (c'est à dire un code GRAY cyclique sur 10 valeurs).

Eléments de solution de l'exercice 5

Table de vérité du code gray BCD cyclique
EntréesSorties
B3B2B1B0G3G2G1G0
00000000
00010001
00100011
00110010
01000110
01010111
01100101
01110100
10001100
10011000
1010ΦΦΦΦ
1011ΦΦΦΦ
1100ΦΦΦΦ
1101ΦΦΦΦ
1110ΦΦΦΦ
1111ΦΦΦΦ

Les nombres à virgule

Vous avez de quoi travailler dans les WIKI :

  • Wikipédia vous propose un article sur les nombres à virgule flottante : la norme IEEE 754.
  • WikiBook vous propose un chapitre sur les nombres à virgule flottante : la norme IEEE 754.

Liens externes

Il est bon pour comprendre ce chapitre de lire :

Pour votre culture lisez aussi :

Cet article est issu de Wikibooks. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.