37 / 63 · Concept
Entrées série et limites des trames
Définir ordre d'entrée et fronts valides, puis calculer la disposition des bits série-parallèle.
Les leçons sont gratuites. Inscrivez-vous pour enregistrer vos progrès.
Transformer l'ordre temporel en positions de bits
Une entrée série transmet un bit par front accepté. Avec le registreRegistre 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 trois bits q<={q[1:0],din}, q initial=000 et les entrées 1,0,1,1 :
| Bits acceptés | din | Nouveau q |
|---|---|---|
| 1 | 1 | 001 |
| 2 | 0 | 010 |
| 3 | 1 | 101 |
| 4 | 1 | 011 |
Le nouveau bit entre à droite et les anciens montent en indice. Le registre est une fenêtre des trois derniers bits ; recevoir le quatrième fait perdre le premier.
Chaque colonne observe un front montantFront montant Instant où l'horloge passe de 0 à 1, distinct du niveau désignant tout l'intervalle CLK=1. En savoir plus, avec entrées avant et états after après mise à jour. L'alignement n'est pas un retard physiqueRetard de propagation Temps nécessaire après un changement d'entrée pour que la sortie se stabilise à sa valeur correcte. Équivalence logique et caractéristiques temporelles sont distinctes. En savoir plus. La première colonne est un reset ; ensuite, seuls les trois derniers bits acceptés parmi 1,0,1,1 restent dans q. Repérez l'éjection du premier bit à la fin.
Voir les données du chronogramme
| Signal | Forme d'onde | Valeurs du bus |
|---|---|---|
| edge | 23452 | E0 → E1 → E2 → E3 → E4 |
| reset | 10... | |
| din | 0101. | |
| q après | 23452 | 000 → 001 → 010 → 101 → 011 |
MSB-first et LSB-first sont des règles de communication
Envoyer un octet MSBMSB Bit de poids le plus fort. Son indice dépend du sens de déclaration du vecteur ; ce n'est pas nécessairement l'indice numérique le plus grand. En savoir plus d'abord et en recevoir les huit bits de cette manière reconstitue le vecteur original. Un envoi LSBLSB Bit de poids le plus faible. Vérifiez ensemble sens d'écriture et règles d'indexation. En savoir plus d'abord inverse sa disposition et exige une autre connexion ou une permutation finale. Ce n'est pas une préférence d'affichage : émetteur et récepteur doivent partager le protocole.
Les valeurs seules ne délimitent pas une trame
Il faut mémoriser quel front porte le premier bit, combien de bits ont été reçus et quand consommer le résultat. On associe généralement compteur de bits acceptés et valid ou done. Si des cycles sont vides, comptez les données acceptées, pas les cycles.
Avec ready/validHandshake Contrat validant le transfert lorsque valid de l'émetteur et ready du récepteur valent 1 au même front. Il définit aussi la conservation des données en attente. En savoir plus, ne mettez à jour décalage et compteur que sur un front où cette condition est vraie. Appliquer enable à un seul des deux désaligne données et longueur. Le TP à entrées continues est le cas simple où chaque front de données est accepté.
Essayez vous-même
Dans une trame huit bits, valid reste à 0 pendant deux cycles après le quatrième bit. Avec ready=1, que font le compteur et le registre à décalage ?
Lire l’explication
accept=0 pendant les deux cycles : conservez ensemble compteur et registre de données. Le prochain bit valide est le cinquième. Compter les horloges seules pourrait annoncer la fin avant d'avoir reçu assez de données.