42 / 63 · Concept
Vérifier le décalage et l'alignement données/valid
Détecter les erreurs masquées par les motifs symétriques et le désalignement d'un cycle de valid.
Les leçons sont gratuites. Inscrivez-vous pour enregistrer vos progrès.
Choisir des motifs révélant les erreurs
Décaler seulement 0000 ou 1111 masque une inversion de direction. Suivez chaque position avec un motif asymétrique comme 1000 ou un seul bit à 1. Une initialisation toujours nulle peut aussi masquer certains défauts d'initialisation et de maintien.
Dans trois bitsRegistre 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 initialisés à 000, les entrées 1,0,0 donnent 001→010→100. Le sens opposé donne 100→010→001 : la différence apparaît dès le premier front.
Examiner deux représentations de la référence
Comparez ce modèle numérique au RTL de tranchesTranche Sélection d'une plage contiguë de bits d'un vecteur. La plage choisie fixe largeur et ordre des bits du résultat. En savoir plus et concaténations à chaque front accepté. Pour N=3, huit états et deux entrées donnent seize transitions à tester exhaustivement. Ajoutez séparément les combinaisons reset/enable.
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, entrées avant et états after après ; ce 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. Avec q initial=000, le deuxième front a enable=0 : q reste 001 malgré le changement de din. Comptez fronts et acceptations séparément.
Voir les données du chronogramme
| Signal | Forme d'onde | Valeurs du bus |
|---|---|---|
| edge | 2345 | E0 → E1 → E2 → E3 |
| enable | 101. | |
| din | 10.1 | |
| q après | 2.34 | 001 → 010 → 101 |
Reproduisez le chronogramme : un front avec din=1 donne 001 ; un autre avec enable=0,din=0 conserve 001. Réactivez enable et appliquez 0 puis 1 : 010 puis 101. Le modèle ne traite que les données ; la nécessité d'arrêter valid avec le même enable est examinée ci-dessous.
Le reset synchrone est prioritaire sur enable. Si enable=0, conserver la valeur mémorisée. q=000; q_next = (2q + din) mod 8
valid fait partie du chemin de données
Si les données s'arrêtent mais valid avance, ou inversement, le récepteur consomme le mauvais échantillon. Des bits de sortie corrects ne suffisent pas à prouver l'interface.
| Test | Comportement attendu |
|---|---|
| Entrées continues | Ordre correct et latence valide fixe |
| enable=0 au milieu | Données et valid maintenus ensemble |
| Reset au milieu | Suppression de la validité de l'ancienne trame |
| Trames consécutives | Séparation entre fin de l'ancienne et début de la nouvelle |
Notez le numéro d'acceptation pour ne pas le confondre avec le numéro de cycle. Un contre-exemple minimal contenant la limite de trame est plus efficace que la relecture répétée d'un long chronogramme.
Essayez vous-même
Les données avancent seulement avec enable=1, mais valid avance à chaque horloge. Quel stimulus révèle facilement l'erreur ?
Lire l’explication
Insérez un front d'arrêt enable=0 entre deux données différentes. valid peut arriver trop tôt ou accompagner la mauvaise donnée. Comparez à une référence appliquant la même condition d'acceptation aux données et métadonnées.