
Dans cette leçon, l’instructeur rappelle d’abord les notions d’encodeur (circuit combinatoire qui génère un code binaire unique à partir d’une entrée activée) et de décodeur (circuit qui réalise l’opération inverse). Il introduit ensuite le transcodeur, un circuit combinatoire à plusieurs entrées et plusieurs sorties où plusieurs entrées peuvent activer plusieurs sorties simultanément, sans contrainte stricte entre le nombre d’entrées et de sorties. Le transcodeur sert à « transcoder » d’un code à un autre. Deux exemples concrets sont développés : 1. Conversion d’un code binaire naturel (3 bits) en code de Gray à l’aide d’un transcodeur 3 × 3. L’instructeur construit la table de vérité, utilise un tableau de Karnaugh pour chaque sortie (S0, S1, S2) et obtient les fonctions logiques S0 = E0, S1 = E0 ⊕ E1, S2 = E1 ⊕ E2, puis montre le schéma du circuit. 2. Conception d’un transcodeur BCD → afficheur 7 segments (4 entrées, 7 sorties). Après la table de vérité des 10 combinaisons BCD, il décrit la méthode de minimisation : choisir la forme complémentaire lorsque les 1 sont majoritaires, écrire la fonction de la sortie inversée puis l’inverser. Il illustre le processus avec les sorties A et B, puis indique que la même démarche s’applique aux autres segments. Enfin, il mentionne l’usage en cascade d’encodeurs, décodeurs et transcodeurs, par exemple un clavier (encodeur BCD) suivi d’un transcodeur BCD‑7 segments pour afficher le chiffre pressé. Le cours se conclut par une invitation à consulter d’autres vidéos de la série (tableau de Karnaugh, code BCD).
Chapters
Bonjour à tous et bienvenue dans cette nouvelle leçon sur la logique booléenne. Aujourd'hui, nous allons voir le transcodeur. Dans les 2 dernières vidéos, nous avons vu le codeur et le décodeur. En guise de rappel, un codeur est un circuit combinatoire qui permet de générer un code binaire unique selon l'entrée activée. Le nombre d'entrées d'un codeur vaut 2^le nombre de ses sorties. Par exemple, si on dispose de 2 sorties, alors on aura 4 entrées. En plus, seule une entrée peut être activée à la fois. Le cas le plus connu de l'utilisation d'un codeur est celui du clavier, où chaque touche enfoncée produit un code binaire différent pour que l'ordinateur puisse identifier la touche exacte. Un décodeur quant à lui assure la fonction inverse d'un codeur, c'est-à-dire il permet d'activer une sortie selon le code présent à son entrée. On parle souvent d'un décodeur 1 parmi N pour dire qu'une seule sortie est activée parmi les N sorties dont il dispose. La règle qui régit le nombre d'entrées et de sorties est la même que celle d'un codeur, mais inversée. Donc le nombre de sorties vaut 2 à la puissance du nombre d'entrées. À titre d'exemple, si on dispose de 2 entrées, alors on peut avoir jusqu'à 4 sorties. Le cas le plus célèbre où le codeur est utilisé est le décodage d'adresse mémoire. En effet, le décodeur est placé entre le bus d'adresse et la mémoire, ce qui permet d'activer une case mémoire selon le code présent à son entrée. Parfois, on se retrouve face à des cas où plusieurs entrées et plusieurs sorties sont activées, ce qui est différent du comportement d'un codeur et d'un décodeur. On parle dans ce cas de transcodeur. Un transcodeur est un circuit combinatoire qui dispose de plusieurs entrées et plusieurs sorties de telle sorte que plusieurs entrées puissent activer plusieurs sorties à la fois. De plus, il n'y a pas vraiment de relation entre le nombre d'entrées et de sorties, donc on peut avoir 3 entrées et 3 sorties, 4 entrées et 7 sorties, etc. En fait, tout dépend du type de problème que l'on cherche à résoudre avec le transcodeur comme on va le voir juste après. Donc, on peut comprendre qu'un transcodeur permet de passer d'un code à un autre, et c'est justement ce que signifie littéralement le terme transcodage. Imaginons que l'on veut convertir un code binaire naturel en code de Gray. En guise de rappel, le code de Gray, connu aussi sous le nom de code binaire réfléchi, est un code qui permet de ne changer qu'un seul bit si on passe au nombre suivant ou au nombre précédent. Pour mieux comprendre, imaginons que l'on souhaite produire les 8 premières séquences binaires en utilisant le code de Gray. On imagine donc qu'on aura besoin de 3 bits, exactement comme c'est le cas pour un code binaire naturel. On note A, B et C les bits de notre code. On suppose que A est le bit de poids fort, dit MSB, et C le bit de poids faible, appelé LSB. On commence par établir toutes les combinaisons binaires possibles du bit de poids faible noté C. Bien entendu, on en aura 2: 0 et 1. Maintenant, si on veut produire le code sur 2 bits, c'est-à-dire qu'on ajoutera aussi le bit noté B, la méthode est la suivante: on va prendre les bits déjà établis du bit C, mais de manière symétrique. C'est comme si la séquence initiale a été réfléchie à l'aide d'un miroir, d'où le nom de code binaire réfléchi. Pour le bit B, on va juste placer 2 0 puis 2 1. Là encore, c'est comme si on a affaire à un code binaire naturel comme on l'a vu à plusieurs reprises. Pour produire un code sur 3 bits, on va procéder exactement comme avant. Donc on va reprendre les 2 bits déjà établis, mais de manière symétrique, donc réfléchie. Encore une fois, comme si on a placé un miroir pour produire l'effet de réflexion. Pour le bit A, on va placer 4 0 puis Encore une fois, comme si on a affaire à un code binaire naturel. On continue ainsi si on veut ajouter un 4e bit, puis un 5e bit, etc. Donc, nous avons établi le code de Gray codé sur 3 bits dans l'ordre. Maintenant, posons le code binaire naturel équivalent sur 3 bits aussi ainsi que le code décimal qui va avec. Regardons maintenant le passage de 3 à 4. Dans le code binaire naturel, tous les bits ont changé. En effet, le premier bit à droite passe de 1 à 0, le bit suivant de 1 à 0 aussi, et le dernier bit de 0 à 1. Par contre, dans le code de Gray, seul le dernier bit change et passe de 0 à 1, et c'est la même chose partout. Donc quand on passe d'un code au code suivant ou précédent, on n'a qu'un seul bit qui change d'état en passant de 0 à 1 ou de 1 à 0, et c'est justement l'objectif du code de Gray. Pour convertir un code binaire naturel en code de Gray, on va utiliser un transcodeur de 3 entrées et 3 sorties. Comme d'habitude, on commence par la table de vérité qui contient les entrées à gauche et les sorties à droite. On notera les entrées E0, E1 et E2, et elles représenteront le code binaire naturel, et les sorties S0, S1 et S2 qui représenteront le code de Gray. Comme d'habitude, on considère que E0 et S0 sont les bits de poids fort. On pose les combinaisons binaires dans l'ordre comme vu précédemment. Maintenant, nous allons établir les 3 fonctions logiques correspondant aux 3 sorties S0, S1 et S2. À titre d'information, il sera plus rapide de passer par le tableau de Karnaugh pour produire nos fonctions logiques. En effet, le tableau de Karnaugh utilise déjà le code Gray pour indexer ses cases, ce qui facilitera considérablement notre tâche. Je vous invite à regarder ma vidéo sur le tableau de Karnaugh dans cette même série. Posons le tableau de Karnaugh pour la sortie S0, en y plaçant les valeurs adéquates produites par la table de vérité. On constate qu'on a 4 1 voisins dans la deuxième ligne, donc on peut les regrouper ensemble, et on constate que les bits E1 et E2 changent tous les deux alors que E0 reste égal à 1, ce qui donnera S0 E0. Et c'est évident, car même sans utiliser le tableau de Karnaugh, on constate bien dans la table de vérité que les valeurs de S0 sont identiques à celles de E0. Si jamais vous n'êtes pas à l'aise avec la technique du tableau de Karnaugh, alors vous pouvez passer par la méthode classique pour produire les fonctions logiques. C'est censé produire le même résultat, ou au moins un résultat logiquement équivalent. On fait pareil pour la sortie S1. Donc on remplit les cases du tableau de Karnaugh selon les valeurs produites par la table de vérité. Là encore, on constate qu'il y a 2 groupes de 2 valeurs de 1 chacun, ce qui produira la fonction logique S1= 1. E0 barre E1 E0 E1 barre, ce qui signifie E0 XOR E1. On refait la même opération pour S2, et là encore on a 2 groupes de valeur 1, ce qui produira la fonction logique S2 E1 barre E2 E1 E2 barre, donc E1 XOR E2. On peut maintenant dessiner le circuit logique correspondant à notre transcodeur qui permet de convertir un code binaire naturel en code de Gray sur 3 bits. Imaginons maintenant que l'on souhaite concevoir un transcodeur qui permet de convertir un code BCD en un code adapté à l'afficheur 7 segments. Pour rappel, un afficheur 7 segments est un dispositif qui permet d'afficher les chiffres de 0 à 9 ainsi que d'autres symboles comme le tiret ou même quelques caractères alphabétiques comme le b minuscule ou le N majuscule. Il s'agit d'un afficheur largement utilisé avant l'apparition des afficheurs LCD ou LED haute définition. Il est encore utilisé de nos jours dans certaines applications comme les afficheurs de prix dans les stations-service ou les tables d'affichage de taux de change dans les banques. Nous allons considérer que nous voulons afficher seulement les chiffres allant de 0 à 9 et qu'on aura déjà codés en BCD. Je vous invite à regarder ma vidéo sur le code BCD dans la série consacrée aux systèmes numériques pour plus d'informations. Donc, on imagine que notre transcodeur sera doté de 4 entrées notées E0, E1, E2 et E3. E2 et E3, E0 étant le bit de poids fort. Quant aux sorties, on en aura 7. Chacune d'entre elles sera connectée à un segment de notre afficheur et que l'on notera A, B, C, D, E, F et G. Maintenant, si on veut afficher le chiffre décimal 0 et qui correspond au code BCD 0000, alors les segments A, B, C, D, E et F seront allumés, ce qui signifie que les sorties respectives seront mises à 1 alors que la sortie restante, c'est-à-dire G, sera mise à 0. Par conséquent, le segment associé sera éteint. Si on veut afficher le chiffre 4, alors les segments B, C, F et G seront allumés tandis que les segments restants seront éteints, etc. Nous allons maintenant dresser notre table de vérité qui contiendra les 4 entrées, E1, E2 et E3, et les 7 sorties A, B, C, D, E, F et G. Nous allons placer les 10 combinaisons associées au code BCD en entrée, de préférence dans l'ordre. Quant aux sorties, nous allons juste activer les segments qui sont censés être allumés pour afficher l'un des 10 chiffres évoqués. Par exemple, le segment A est censé être allumé pour les chiffres 0, 2, 4, 3, 5, 6, 7, 8 et 9. Donc on mettra 1 devant ces valeurs-là et 0 dans le reste. On va procéder de la même façon pour les autres sorties. Il est temps d'établir les fonctionnologies correspondantes aux sorties de notre transcodeur. On en aura 7 bien entendu, mais ça risque de nous prendre beaucoup de temps. Donc je vais juste représenter les sorties A et B et vous ferez exactement la même chose pour les autres sorties. Je rappelle que pour établir une fonction logique, on prend en considération les lignes où la sortie vaut 1. Mais comme je l'ai expliqué dans une vidéo précédente, si par hasard on se rend compte qu'on a plus de 1 que de 0, alors il serait judicieux de prendre en considération les 0 car ça engendrera une fonction logique moins compliquée. Je rappelle que l'astuce est simple, on va juste représenter la fonction logique de la sortie inversée, Comme ça, les 0 deviendront 1 et les 1 deviendront des 0. Donc on va représenter la fonction de A barre, ce qui donnera: E0 barre E1 barre E2 barre E3 E0 barre E1 E2 barre E3 barre. Donc E0 barre E2 barre E1 XOR E3. N'oubliez pas qu'il s'agit là de la fonction logique de A barre. Donc pour trouver la fonction logique de la sortie A, il suffit d'inverser l'expression. Pareil pour la sortie B où on constate aussi plus de 1 que de 0. Donc on inverse, on établit la fonction logique, puis on inverse encore une fois. Pour le circuit logique, je vais me contenter de représenter ces 2 sorties et vous suivrez cette méthode pour exprimer le reste des sorties. Avant de finir, sachez qu'il est courant de mettre des codeurs, des décodeurs et des transcodeurs en cascade selon les situations. À titre d'exemple, si on dispose d'un clavier qui contient les touches numériques et on veut afficher le chiffre enfoncé sur un afficheur 7 segments, alors on imagine que notre clavier sera connecté à un codeur qui produira le code BCD du chiffre activé. Ce codeur sera ensuite connecté au transcodeur que l'on vient de traiter. Merci pour votre attention et à la vidéo prochaine.
More from Yamossoun

Algorithme de calcule de la racine carrée par dichotomie #dichotomy #squareroot #algorithm









