Conception RTL : chemins de données et pipelines
Définissez les contrats numériques et temporels, puis concevez une ALU, un contrôleur, un pipeline et des tampons ready-valid. Quatre travaux pratiques exécutables sur des modèles de référence vérifient les limites arithmétiques, les blocages, les FIFO et l’ordre des transactions avant un projet final de calcul en flux.
Ce que vous apprendrez
- Distinguer les contrats de largeur, de signe, de retenue et de débordement
- Ordonnancer les transferts entre registres, la commande par machine à états et la mémoire synchrone
- Calculer la latence, le débit et l’intervalle d’initiation
- Gérer sans perte les blocages ready-valid et les limites des FIFO
- Construire des vérifications par tableau de suivi couvrant les aléas et la réinitialisation
- Vérifier un projet final de calcul en flux à l’aide de modèles autonomes
Avant de commencer
Ces exercices dans le navigateur utilisent des modèles pédagogiques ; ils ne compilent ni n’exécutent de HDL. Pour exécuter le code séparément, suivez le guide Digital Design Studio de votre système et connectez-vous si l’opération le demande.
Installation et premier démarrage ↗ · Téléchargements ↗Programme
- Contrats numériques et arithmétiques
- Transformer une équation en contrat de chemin de donnéesConcept
Définissez les largeurs, les événements d’acceptation et les résultats valides en même temps que les opérations arithmétiques.
- Largeurs, extension de signe et débordementConcept
Distinguez l’interprétation, l’extension et la réduction de largeur à partir d’exemples numériques.
- TP : modèle de référence d’une ALU sur huit bitsTravaux pratiques
Vérifiez ADD, SUB, AND, XOR, la retenue et l’emprunt dans un programme autonome.
- Vérification : retenue et débordement signéVérification
Distinguez les limites numériques selon l’interprétation signée ou non signée.
- Transferts entre registres et commande
- Lire les transferts entre registres aux fronts d’horlogeConcept
Distinguez l’état précédent de l’état suivant et suivez la conservation des valeurs stockées par les signaux d’activation.
- Ordonnancer des ressources partagées avec une machine à étatsConcept
Accumulez quatre valeurs avec un seul additionneur en définissant les transitions d’état et la capture.
- Contrats temporels des requêtes et réponses mémoireConcept
Distinguez les lectures synchrones, les étiquettes retardées et les collisions à une même adresse.
- Vérification : conserver un résultat terminéVérification
Distinguez la livraison dans l’état DONE de l’acceptation de la requête suivante.
- Temporisation et débit des pipelines
- Stocker la transaction complète aux frontières du pipelineConcept
Séparez la somme et la mise à l’échelle tout en alignant valid, l’étiquette et les largeurs.
- Latence, débit et intervalle d’initiationConcept
Calculez le délai d’une transaction séparément de la cadence soutenue des résultats.
- TP : suivre deux étages et les bullesTravaux pratiques
Calculez l’état suivant à partir de l’état précédent et comparez les étiquettes, les valeurs et les fronts de sortie.
- Vérification : la signification de II=1Vérification
Évitez de confondre le nombre d’étages et le débit soutenu.
- Contrôle de flux ready-valid
- Événements d’acceptation et stabilité pendant les blocagesConcept
Attribuez les responsabilités de la source et du récepteur et conservez les charges utiles bloquées.
- Concevoir un registre élastique à un emplacementConcept
Acceptez dans un emplacement vide ou remplacez un élément consommé simultanément.
- TP : vérifier 1024 séquences de blocageTravaux pratiques
Testez conservation, remplacement et vidage avec toutes les séquences ready de dix cycles.
- Vérification : compter une transaction bloquéeVérification
Distinguez la durée de valid du nombre réel de transferts synchronisés.
- Limites des FIFO et des aléas
- FIFO vide, pleine et transferts simultanésConcept
Distinguez l’occupation des pointeurs et définissez les insertions/retraits aux limites.
- Dépendances, aléas de ressources et acheminement directConcept
Comparez blocage et acheminement direct lorsqu’une opération nécessite un résultat précédent.
- Maintenir le bilan des transactions lors de la purge et de la réinitialisationConcept
Distinguez annulation et livraison et alignez l’état valid sur les files attendues.
- Vérification : remplacement dans une FIFO pleineVérification
Calculez occupation et ordre pour une insertion et un retrait simultanés.
- Vérification et calculateur en flux
- Combiner un tableau de suivi avec des invariants locauxConcept
Vérifiez valeurs, ordre, occupation et stabilité sous blocage à partir des transactions acceptées.
- TP final : FIFO et calculateur en flux à deux étagesTravaux pratiques
Reliez une FIFO d’entrée de profondeur deux, deux étages élastiques et un tableau de suivi.
- Mesurer les performances et revoir la conceptionConcept
Définissez les fenêtres d’observation, diagnostiquez les blocages et délimitez les preuves du modèle.
- Vérification finale : blocages sans perte et vidangeVérification
Combinez arithmétique, bilan du travail en cours et conditions de fin.