20 / 20 · Concept
Revue d’intégration RTL et extensions
Reliez le modèle pédagogique aux interfaces RTL et aux preuves de vérification.
Les leçons sont gratuites. Inscrivez-vous pour enregistrer vos progrès.
Répartir les responsabilités du cœur et de l’enveloppe
Le cœur du réseau gère la transmission enregistrée des opérandes, les MAC signés, valid/les étiquettes et advance global. L’enveloppe gère start/clear, les dimensions matricielles, les coordonnées de tuiles, l’alimentation décalée des frontières, la collecte masquée des résultats et les transferts de sortie synchronisés. Définissez chaque responsabilité avec des noms de signaux et un contrat aux fronts.
Une enveloppe simple utilise IDLE, CLEAR, RUN, COLLECT et SEND. CLEAR garantit un front d’initialisation avant les données. RUN avance les étapes logiques de zéro à K+2N−3. Les résultats deviennent complets immédiatement après le dernier front RUN ; COLLECT les copie au front suivant. Cela évite de copier l’ancien accumulateur au même front que sa dernière mise à jour non bloquante.
Calculer un exemple de latence d’intégration
Pour N=K=2, clear a lieu à E−1 et le calcul à E0..E3. Supposez que E4 copie quatre résultats en parallèle vers un tampon. Une sortie à un résultat par front avec ready toujours vrai envoie dix-neuf, vingt-deux, quarante-trois et cinquante à E5..E8 dans l’ordre par lignes. Mesurer de clear au dernier transfert inclut dix fronts montants E−1..E8, contre quatre fronts de calcul. Le blocage de sortie prolonge SEND sans modifier les valeurs terminées.
Les charges utiles de résultat nécessitent job et les coordonnées globales, plus une représentation brute ou quantifiée définie. N’effacez pas un accumulateur avant que son résultat soit copié ou consommé en sécurité. Chevaucher le calcul suivant avec SEND exige de gérer la possession des tampons et de séparer les traitements.
Revoir les contrats lors des extensions
Un multiplicateur pipeliné modifie la temporisation d’accumulation, d’étiquette et de fin. Le découpage de réduction nécessite des sommes partielles conservées et une nouvelle analyse de largeur. Chevaucher les traitements nécessite des états d’accumulation séparés. Une FIFO stocke valeur, valid et étiquettes comme une charge utile unique et nécessite des contrôles de dépassement supérieur/inférieur.
La documentation d’architecture Gemmini offre un exemple de source primaire où stockage local et mouvement des données accompagnent le réseau. Notre machine à états et notre exemple temporel sont des contrats pédagogiques définis indépendamment.
Remettez dimensions, largeurs, ordonnancement de frontière, définition de fin, politique de pause/reset, ordre de sortie et journaux du tableau de suivi. Les vérifications Node établissent le comportement du modèle de référence. Simulation RTL, synthèse, fermeture temporelle et intégration produit nécessitent leurs propres commandes exécutées et preuves avant d’annoncer la réussite.
Essayez vous-même
Dans l’exemple d’intégration, bloquez ready pendant deux fronts après E6. Quels deviennent le dernier front de transfert et le nombre total de fronts mesurés ?
Lire l’explication
Attendez à E7 et E8, puis envoyez les deux résultats restants à E9 et E10. Le dernier transfert est E10 ; mesurer E−1..E10 inclut douze fronts. Le calcul reste quatre fronts E0..E3 et les données bloquées doivent être conservées.