Altifigence Academy

1 / 24 · Concept

Transformer une équation en contrat de chemin de données

Définissez les largeurs, les événements d’acceptation et les résultats valides en même temps que les opérations arithmétiques.

Définir les garanties du circuit

Un chemin de données stocke, sélectionne et calcule des valeurs. Son contrôleur décide quelles valeurs sont transférées et à quel moment. Ces responsabilités de conception sont distinctes, mais ne constituent pas des tâches logicielles s’exécutant indépendamment. Au front d’horloge, les signaux de commande déterminent les mises à jour des registres ; les valeurs de ces registres alimentent ensuite la logique combinatoire pendant le cycle suivant. Sans ce contrat temporel, une équation peut produire le bon nombre pour la mauvaise transaction.

Notre petit calculateur accepte des opérandes a et b non signés sur huit bits et une opération sur deux bits. L’opération 0 additionne, 1 soustrait, 2 calcule un ET et 3 calcule un OU exclusif. L’arithmétique renvoie les huit bits de poids faible, avec une retenue d’addition ou un emprunt de soustraction distinct. Les projets suivants transmettent aussi une étiquette. Celle-ci ne modifie pas le calcul, mais identifie l’entrée ayant produit un résultat : elle doit donc accompagner ce résultat.

Élément du contratChoix de ce cours
Signification des opérandesEntiers non signés de 0 à 255
Réduction de largeurHuit bits de poids faible, modulo 256
Information aux limitesRetenue ADD et emprunt SUB
AcceptationFront montant avec valid et ready tous deux actifs
OrdreRésultats dans l’ordre des entrées acceptées
RéinitialisationAbandon du travail en cours et effacement de l’état valid

Pour a=250, b=10 et ADD, la somme mathématique vaut 260. La sortie vaut 4 avec carry=1. Une interprétation signée ou une saturation définiraient un autre contrat. Ne laissez pas une conversion involontaire du langage choisir cette politique. Une arithmétique modulaire peut convenir à des compteurs d’adresses, tandis qu’un calcul de luminosité peut nécessiter une saturation.

Parcours d’une transaction
  1. Accepter: Capturer les opérandes, l’opération et l’étiquette
  2. Calculer: Appliquer le contrat numérique défini
  3. Livrer: Transférer le résultat et son étiquette correspondante

Une sortie d’ALU invalide peut tout de même varier électriquement ; elle ne représente pas une transaction. Un résultat valide accompagné d’une ancienne étiquette est également incorrect. Examinez ensemble les données, l’étiquette et valid. Pour chaque sortie, précisez à la fois la signification des bits et le moment où un consommateur peut leur faire confiance. Les modèles par cycles de ce cours vérifient la fonctionnalité et l’ordre, sans vérifier les délais physiques des portes. Traduisez le contrat en modèle de référence avant de choisir les frontières entre registres pour atteindre une cible de latence ou de débit.

Essayez vous-même

Indiquez le résultat ADD sur huit bits et la retenue pour a=250 et b=10. Expliquez la valeur 4 et pourquoi l’étiquette doit être stockée avec le résultat.

Lire l’explication

260=1×256+4, donc data=4 et carry=1. Le contrat des huit bits de poids faible réduit la somme modulo 256. Stockez l’étiquette dans les mêmes conditions d’acceptation, de blocage et de livraison que les données pour maintenir l’association du résultat à son entrée.

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