13 / 63 · Concept
DEMUX et décodeur : envoyer les données sur le chemin choisi
Comparer sens et rôles de MUX, DEMUX et décodeur, puis vérifier one-hot et one-hot-or-zero.
Les leçons sont gratuites. Inscrivez-vous pour enregistrer vos progrès.
MUX rassemble, DEMUX distribue
Un MUXMultiplexeur Circuit combinatoire reliant une entrée parmi plusieurs à la sortie selon une sélection. La correspondance entre bits de sélection et numéro d'entrée doit être spécifiée. En savoir plus transmet une entrée parmi plusieurs vers une sortie. Un DEMUXDEMUX Circuit envoyant une donnée unique vers la sortie choisie par la sélection. Les valeurs des sorties non sélectionnées font aussi partie du contrat. transmet l'unique donnée d vers la sortie choisie et met les autres à 0. Pour un DEMUX 1-vers-4 d'adresse :
La même fonction avec un décodeur à enable
Dans le schéma, lisez a1 et a0 comme l'adresse et enable comme la donnée d. Les sorties d0–d3 correspondent à y0–y3. Une même fonction combinatoire peut recevoir des noms différents selon son usage.
d[i] = enable AND (2 × a1 + a0 = i)
Si l'adresse vaut 10 et la donnée 1, seul y2 vaut 1. Si d=0, même la sortie sélectionnée vaut 0. L'invariant one-hotOne-hot Représentation où exactement un bit vaut 1. Si le motif tout à zéro est aussi autorisé, on parle de one-hot-or-zero. En savoir plus « exactement un 1 » est donc faux sur l'ensemble du fonctionnement ; la bonne propriété est « au plus un 1 », ou one-hot-or-zero.
Distinguer sélection et événement d'écriture
Pour écrire dans un des quatre registresRegistre Circuit stockant plusieurs bits d'état. Les registres synchrones du cours capturent leur entrée définie sur un front d'horloge. En savoir plus, on peut utiliser write_en comme d et l'adresse pour sélectionner. Mais le décodeurDécodeur Circuit activant la ligne correspondant à un code binaire. Avec enable, toutes les sorties peuvent être mises à 0 lorsqu'il est désactivé. En savoir plus ne stocke rien : le registre capture données et autorisation au front d'horloge. Un changement de sélection combinatoire ne modifie pas immédiatement la valeur stockée.
- Adresse + write_en: Définir où écrire et si l'écriture est autorisée
- Décodeur: Produire enable pour le seul registre choisi
- Front d'horloge: Le registre choisi mémorise les données
Vérifiez la sortie sélectionnée et toutes les autres, qui doivent rester à 0. Quatre cas d=0 et quatre cas d=1 donnent huit combinaisons. Cette vérification fonctionnelle ne garantit pas l'absence de glitches lors des transitions d'adresse.
Essayez vous-même
Pour s1s0=01, donnez y3y2y1y0 avec d=1 puis d=0. Quand échoue un test imposant exactement un enable actif parmi quatre registres ?
Lire l’explication
Les résultats sont respectivement 0010 et 0000. Si d ou write_en vaut 0, l'absence de sortie active est le comportement normal. « Exactement une » ne s'applique que lorsque d=1.