Circuits logiques numériques
Des signaux numériques et portes AND, OR, XOR aux circuits combinatoires, verrous, bascules, compteurs et machines à états. Reliez tables de vérité, équations, circuits et chronogrammes, puis vérifiez par des travaux pratiques RTL. Les approfondissements facultatifs étendent le cours aux chemins de données et interfaces.
Ce que vous apprendrez
- Distinguer valeurs logiques et tensions, puis expliquer tables de vérité, symboles et réalisations équivalentes de huit types de portes.
- Concevoir des circuits combinatoires depuis une spécification avec SOP, POS et cartes de Karnaugh, puis les tester exhaustivement.
- Définir conditions d'entrée et limites des encodeurs, décodeurs, MUX, DEMUX, additionneurs et comparateurs.
- Expliquer la différence entre verrous et bascules et concevoir les règles de mise à jour reset, enable et horloge.
- Réaliser compteurs, décalages et machines à états en RTL, puis analyser timing, entrées asynchrones et anti-rebond.
- Vérifier avec une référence indépendante et terminer un détecteur de 101 avec recouvrement.
- Approfondir facultativement ALU, mémoires, FIFO, pipelines et interfaces.
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
- Signaux numériques et représentations des nombres
- Signaux numériques : quand une tension représente 0 ou 1Concept
Distinguer valeurs logiques et tensions, puis calculer seuils d'entrée, marges de bruit et retards de propagation.
- Systèmes de numération et représentation à largeur fixeConcept
Au-delà des conversions de base, calculer les plages représentables, la largeur nécessaire et les erreurs de troncature.
- Portes logiques et tables de vérité
- Portes de base : AND, OR, NOT et BUFFERConcept
Relier symboles de circuit et tables de vérité, puis construire des conditions avec plusieurs portes.
- NAND, NOR et lecture des symboles d'inversionConcept
Identifier la portée des négations et relier symboles et expressions équivalents par les lois de De Morgan.
- XOR et XNOR : égalité, différence et paritéConcept
Distinguer XOR à deux entrées et parité à plusieurs entrées, puis expliquer les limites de la détection d'erreurs.
- Portes universelles : construire des circuits uniquement avec NANDConcept
Démontrer la complétude fonctionnelle de NAND et NOR par construction et vérifier les signaux intermédiaires de XOR.
- Des expressions logiques à la conception de circuits
- Algèbre de Boole, transformations équivalentes et coût de réalisationConcept
Transformer des circuits par De Morgan et factorisation, en distinguant équivalence logique et propriétés temporelles.
- De la table à l'expression : mintermes, maxtermes, SOP et POSConcept
Dériver la même fonction à partir des lignes à 1 et à 0, puis relier ces formes à la carte de Karnaugh.
- Cartes de Karnaugh et conditions des don't-careConcept
Réduire les expressions par l'adjacence du code Gray et expliciter les hypothèses sur les entrées inutilisées.
- Conception pratique : de la spécification à la majorité à trois entréesTravaux pratiques
Passer d'une spécification en langage naturel à une table complète, puis relier minimisation, réalisation et test exhaustif.
- Adresses et circuits de sélection
- Décodeurs, sélection one-hot et entrées validesConcept
Convertir une adresse binaire en sélections individuelles et définir enable, plage valide et invariants de sélection.
- Encodeurs et priorité : choisir une requête parmi plusieursConcept
Distinguer les hypothèses de l'encodeur one-hot et les résultats valid et index d'un encodeur prioritaire.
- DEMUX et décodeur : envoyer les données sur le chemin choisiConcept
Comparer sens et rôles de MUX, DEMUX et décodeur, puis vérifier one-hot et one-hot-or-zero.
- Signaux et ports : contrat de largeur, de direction et de tempsConcept
Lire une interface et distinguer les critères de vérification des sorties combinatoires et mémorisées.
- De la table de vérité au MUX et au développement de ShannonConcept
Déduire la logique de sélection et décomposer une fonction quelconque à l'aide de MUX.
- Circuits arithmétiques et comparaison
- Additionneurs et propagation de la retenueConcept
Dériver l'additionneur complet et analyser ensemble fonction, largeur et retard de propagation de retenue.
- Complément à deux, extension de signe et dépassementConcept
Distinguer interprétation signée et dépassement d'addition par des équations et contre-exemples.
- Comparateurs et spécification des limitesConcept
Distinguer comparaisons signées et non signées du même motif et vérifier les conditions limites.
- Verrous, bascules et stockage de l'état
- Les débuts de la mémoire : rétroaction et verrous SR et DConcept
Comprendre les deux états stables du couplage croisé, l'entrée SR interdite et la transparence du verrou D.
- Bascule D : du niveau au frontConcept
Comparer les instants de mise à jour du verrou et de la bascule, puis relier registre, setup et hold.
- Bascules, enable et priorité des commandesConcept
Définir maintien, chargement et reset par l'état suivant, et éviter un clock gating involontaire.
- Transitions synchrones et rôle de l'horlogeConcept
Interpréter un système synchrone comme des registres lisant le même état précédent.
- Réalisation RTL et vérification du MUX
- Sélection combinatoire et latence de la sortie enregistréeConcept
Analyser les changements d'interface et de latence lorsque le résultat du MUX est enregistré.
- RTL combinatoire et affectations complètesConcept
Exprimer la même fonction avec l'opérateur conditionnel et always_comb, puis repérer les omissions créant un verrou.
- Travaux pratiques : test exhaustif du MUX et sortie enregistréeTravaux pratiques
Appliquer les mêmes entrées aux chemins combinatoire et enregistré, puis vérifier avec la table de vérité et les instants de capture.
- Instants d'échantillonnage et causalité dans les chronogrammesConcept
Lire les chronogrammes en séparant stabilisation combinatoire, capture d'horloge et ordre des événements.
- Vérification du MUX : tests exhaustifs et propriétésConcept
Vérifier séparément couverture combinatoire et stockage, puis minimiser les contre-exemples.
- Bilan de conception : équivalence de sélection et instant d'observationVérification
Distinguer ce qu'une table de vérité suffit à vérifier et ce qui exige une observation de l'horloge.
- Compteurs et mises à jour synchrones
- Nombre d'états, largeur du compteur et codes inutilisésConcept
Déduire la largeur de la plage de comptage et définir la récupération des états invalides.
- État suivant du compteur et priorité du resetConcept
Unifier incrémentation, maintien, reset et rebouclage, puis calculer les résultats front par front.
- Affectations non bloquantes et mise à jour simultanéeConcept
Séparer anciennes et prochaines valeurs pour interpréter correctement pipelines et compteurs RTL.
- Travaux pratiques : reset, rebouclage et invariants du compteurTravaux pratiques
Comparer chaque front à une référence et isoler les effets de l'initialisation, du reset et de la largeur.
- Compteurs modulo, saturation et impulsion terminaleConcept
Définir le traitement du maximum et le cycle exact du signal terminal-count.
- Déboguer un compteur avec un contre-exemple minimalConcept
Construire des tests courts distinguant reset, enable et erreurs de rebouclage.
- Bilan : largeur, priorité et limites du rebouclageVérification
Évaluer limites et commandes simultanées à partir du contrat de transition.
- Registres à décalage et flux de données
- Indices des vecteurs, ordre des bits et signeConcept
Lire les chemins de données en séparant indices, ordre de transmission série et interprétation arithmétique.
- Entrées série et limites des tramesConcept
Définir ordre d'entrée et fronts valides, puis calculer la disposition des bits série-parallèle.
- Équations d'état du registre à décalageConcept
Exprimer le déplacement des bits par une transition vectorielle et relier profondeur et latence.
- Largeurs des tranches, concaténations et répétitionsConcept
Construire les chemins de données en calculant largeur totale et conditions de conservation des valeurs.
- Travaux pratiques : déplacement série et ordre des bitsTravaux pratiques
Vérifier sens, bits perdus et latence après reset avec motifs binaires et référence entière.
- Distinguer latence en cycles et débitConcept
Fixer les points d'observation d'une ligne de N étages et quantifier latence et débit.
- Vérifier le décalage et l'alignement données/validConcept
Détecter les erreurs masquées par les motifs symétriques et le désalignement d'un cycle de valid.
- Bilan : latence, alignement et conservation des entréesVérification
Vérifier ensemble sens, nombre de déplacements valides et point d'observation.
- Timing, entrées réelles et machines à états
- Setup, hold et budget temporelConcept
Séparer chemins maximaux et minimaux et calculer hold indépendamment de la fréquence.
- Aléas logiques et limites des expressions équivalentesConcept
Analyser comment deux circuits équivalents en régime stable produisent des transitoires différents à cause des retards.
- Frontières de domaines d'horloge et métastabilitéConcept
Comprendre la portée du synchroniseur à deux étages et distinguer niveau, impulsion brève et transfert multibit.
- Boutons réels : synchronisation, anti-rebond et événement uniqueConcept
Séparer synchronisation et anti-rebond, puis concevoir un filtre par échantillons consécutifs.
- Machines à états : séparer état, transition et sortieConcept
Construire une FSM depuis sa table et comparer Moore/Mealy, états illégaux et politique de requêtes.
- Plan de vérification, couverture et référence indépendanteConcept
Distinguer tests réussis et contrat satisfait, puis intégrer limites, croisements et contre-exemples minimaux.
- Projet de synthèse : détecteur de 101 avec recouvrementConcept
Réunir réduction d'état, validité d'entrée, sortie enregistrée et vérification indépendante dans une conception.
- Approfondissement facultatif · Chemins de données arithmétiques
- ALU et indicateurs zéro, négatif, retenue et dépassementConcept
Partager l'additionneur ADD/SUB et distinguer retenue et dépassement signé pour dériver les comparaisons.
- Barrel shifter et étages de MUXConcept
Réaliser le décalage variable par MUX de 1,2,4,8 positions, partager les directions et traiter signe et déplacements hors largeur.
- Virgule fixe, arrondi et saturationConcept
Définir la plage par W,F et concevoir l'arrondi pair guard/sticky suivi de saturation.
- Multiplicateur non signé multicycle par décalage-additionConcept
Répartir l'accumulation sur W cycles et vérifier acceptation, achèvement, dernière somme, largeur et invariant.
- Approfondissement facultatif · Mémoires et FIFO
- Mémoire synchrone et contrat de collision lecture/écritureConcept
Définir réponse enregistrée et modes de collision, en séparant validité et initialisation des adresses.
- Banc de registres à deux lectures, une écriture et bypassConcept
Réaliser deux lectures indépendantes et une écriture synchrone, puis vérifier bypass, initialisation et validité.
- FIFO mono-horloge : pointeurs et politiques aux limitesConcept
Réaliser pointeurs et occupation d'un FIFO quatre places, avec acceptation explicite à vide et à plein.
- Vérifier FIFO et mémoires avec un scoreboard indépendantConcept
Écrire un scoreboard sans pointeurs du DUT et planifier limites, reset, validité et lectures non initialisées.
- Approfondissement facultatif · Pipelines et interfaces
- Ready/valid et tampon élastique d'une placeConcept
Définir transferts sans perte ni doublon et entrées/sorties simultanées dans un chemin pouvant s'arrêter.
- Pipeline multiplication-addition et alignement des donnéesConcept
Découper les opérations par registres et aligner données, valid et opérandes auxiliaires par transaction.
- Pipeline pouvant s'arrêter et contre-pressionConcept
Calculer ready par étage pour éviter pertes, doublons et recalculs pendant arrêts et mouvements simultanés.
- Interface de registres et instant des effets de bordConcept
Spécifier adresse, écriture par octets et attente de réponse pour qu'une requête produise un seul effet.
- Projet pratique : émetteur UART et timing des tramesConcept
Combiner division d'horloge, décalage et contrôle de flux pour une trame 8N1, puis vérifier les limites de bits.