< Logique (sciences de l'ingénieur) < Exercices



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.

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 exclusifs 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

Ce problème est abordé en détail dans l’article déjà cité : Additionneur.

Exercice 2

Quel est le temps de propagation de l'additionneur 3 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 {{Unité|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.

Codes et transcodage

Code de Gray

Le code 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ë.

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 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 Exess 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 GRAY (c'est-à-dire un code GRAY cyclique sur 10 valeurs).

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