Altifigence Academy

17 / 20 · Concept

Tableaux de suivi et invariants

Vérifiez termes, étiquettes, fronts et transferts de sortie en plus de la matrice finale.

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.

CoucheExemple d’échecDéfaut probable
Arithmétique23 au lieu de 19Indice, signe ou largeur
Termes[0, 1, 1]Jeton dupliqué
TemporisationDernier PE terminé à E2Fin prématurée
PauseCount change pendant une pauseConservation partielle de l’état
SortieUne clé reçue deux foisCommande 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.

Votre choix s’applique à ce navigateur. Modifiez-le à tout moment en bas de page.