17 / 20 · Concept
Tableaux de suivi et invariants
Vérifiez termes, étiquettes, fronts et transferts de sortie en plus de la matrice finale.
Les leçons sont gratuites. Inscrivez-vous pour enregistrer vos progrès.
Séparer deux références
Utilisez une référence mathématique directe pour calculer les sommes larges avec des boucles i/j/k indépendantes. Utilisez un modèle temporel distinct pour déplacer A à droite et B vers le bas. Copier la fonction d’indexation RTL dans le modèle de référence risque de reproduire le même défaut. Commencez par des exemples fixes calculés à la main, puis élargissez aux entrées aléatoires reproductibles.
Indexez le tableau de suivi des résultats par job et coordonnées globales de sortie. Comparez chaque valeur reçue et marquez sa clé reçue. Une clé répétée est un doublon, une clé inattendue est une erreur d’adresse et une clé attendue non reçue manque. Les résultats zéro exigent toujours une livraison. Les coordonnées de remplissage hors plage ne doivent jamais être stockées.
Vérifier les invariants dans le réseau
Chaque PE doit consommer exactement [0, 1, ..., K−1]. Des opérandes valides correspondants nécessitent les mêmes étiquettes job et k. Count reste entre zéro et K. Un front de pause conserve opérandes, valid, étiquettes, accumulateur et count. Clear laisse count et accumulateur à zéro sans jeton valide. Un résultat bloqué conserve données et job avec valid actif.
| Couche | Exemple d’échec | Défaut probable |
|---|---|---|
| Arithmétique | 23 au lieu de 19 | Indice, signe ou largeur |
| Termes | [0, 1, 1] | Jeton dupliqué |
| Temporisation | Dernier PE terminé à E2 | Fin prématurée |
| Pause | Count change pendant une pause | Conservation partielle de l’état |
| Sortie | Une clé reçue deux fois | Commande du transfert synchronisé |
Dans l’exemple 2×2, le dernier PE contient dix-huit après E2 et cinquante après E3. Un défaut global-done à E2 doit échouer aux vérifications numériques et temporelles. Inversement, dupliquer et omettre des produits de même valeur peut conserver la somme finale ; suivre les termes détecte cette coïncidence.
Stockez graines aléatoires, matrices, dimensions, largeurs et positions de pause. Consignez le premier PE, terme et front physique incohérents. Les erreurs intentionnelles d’étiquette doivent échouer visiblement au lieu de disparaître silencieusement.
Observez l’état après E_t de façon cohérente. Exécution de référence Node, compilation RTL, simulation RTL, synthèse, fermeture temporelle, exécution de projet DDS et tests sur carte établissent des faits différents. Les programmes Node fournis valident les modèles arithmétiques et d’ordonnancement. Les futurs tests RTL peuvent réutiliser les jeux, mais doivent conserver leurs propres versions d’outils, commandes et journaux.
Essayez vous-même
Construisez des entrées pour lesquelles vérifier seulement la somme finale manque un terme dupliqué et un terme omis.
Lire l’explication
Une ligne A [1, 1] et une colonne B [5, 5] donnent correctement dix. Consommer [0, 0] donne aussi dix, mais duplique k0 et omet k1. Exiger la valeur et la liste exacte des termes [0, 1] détecte le défaut.