Chargement…
Chargement…
Écrivez du Verilog synthétisable et validez chaque module avec un testbench auto-vérifiant exécuté par Icarus Verilog.
0/80 exercices terminés
Contrôleur de climatisation
VerilogImplémentez une logique combinatoire qui arbitre les commandes automatiques et manuelles de chauffage, de refroidissement et de ventilation.
Encodeur de priorité 8 vers 3
VerilogEncodez huit requêtes en un index de trois bits, avec une priorité fixe et un indicateur de validité.
Décodeur BCD vers 7 segments
VerilogConvertissez un chiffre BCD en commandes actives à l'état haut pour un afficheur 7 segments, avec extinction prioritaire.
Additionneur-soustracteur non signé 12 bits
VerilogRéalisez une unité arithmétique combinatoire avec détection du dépassement en addition et du sous-dépassement en soustraction.
Thermostat à bande morte
VerilogCommandez un chauffage et un refroidisseur autour d'une consigne avec une bande morte de cinq degrés.
Circuit booléen à trois entrées
VerilogTraduisez une expression logique en réseau combinatoire.
Terminer Thermostat à bande morte
Décodeur de buses d’encre
VerilogDécodez un numéro de buse en une commande one-hot sûre.
Terminer Circuit booléen à trois entrées
Décodeur de feu tricolore sûr
VerilogDécodez un état one-hot et forcez le rouge en cas de code invalide.
Terminer Décodeur de buses d’encre
Validation de feu tricolore
VerilogAjoutez une validation globale aux commandes d’un feu tricolore.
Terminer Décodeur de feu tricolore sûr
Multiplexeur 2 vers 1 sur 3 bits
VerilogSélectionnez l’un de deux mots de trois bits.
Terminer Validation de feu tricolore
Veilleuse à logique active bas
VerilogCommandez une lampe active bas selon la luminosité et une autorisation active bas.
Terminer Multiplexeur 2 vers 1 sur 3 bits
Additionneur 8 bits avec retenue
VerilogAdditionnez deux octets et une retenue d’entrée sans perdre le neuvième bit.
Terminer Veilleuse à logique active bas
Comparateur de magnitude 4 bits
VerilogComparez deux nombres non signés avec trois indicateurs exclusifs.
Terminer Additionneur 8 bits avec retenue
Générateur et contrôleur de parité
VerilogGénérez un bit de parité paire et détectez une trame de parité incorrecte.
Terminer Comparateur de magnitude 4 bits
Bascule D avec reset asynchrone
VerilogMémorisez un bit sur front montant avec remise à zéro prioritaire.
Terminer Générateur et contrôleur de parité
Registre 8 bits avec validation
VerilogChargez ou conservez un octet selon un signal de validation.
Terminer Bascule D avec reset asynchrone
Registre à décalage série-parallèle
VerilogAssemblez huit bits reçus en série dans un registre parallèle.
Terminer Registre 8 bits avec validation
Additionneur à propagation de retenue
VerilogConstruisez un additionneur 4 bits à partir de quatre additionneurs complets.
Terminer Registre à décalage série-parallèle
Additionneur-soustracteur avec overflow
VerilogRéalisez addition et soustraction signées avec indicateurs de retenue et débordement.
Terminer Additionneur à propagation de retenue
Multiplieur non signé 4 bits
VerilogCalculez le produit complet de deux nombres non signés de quatre bits.
Terminer Additionneur-soustracteur avec overflow
Additionneur BCD à deux chiffres
VerilogAdditionnez deux nombres BCD compris entre 00 et 99 avec retenue décimale.
Terminer Multiplieur non signé 4 bits
Décodeur d’adresses de type PAL
VerilogDécodez trois zones mémoire et signalez les transactions interdites.
Terminer Additionneur BCD à deux chiffres
Validateur de quatre chiffres BCD
VerilogValidez chaque quartet BCD et bloquez les mots illégaux. Implémentez toutes les décisions indiquées.
Terminer Décodeur d’adresses de type PAL
Décodeur thermomètre huit bits
VerilogConvertissez une suite de uns contigus depuis le LSB en binaire. Implémentez toutes les décisions indiquées.
Terminer Validateur de quatre chiffres BCD
Additionneur saturant huit bits
VerilogAdditionnez deux octets sans autoriser le rebouclage. Implémentez toutes les décisions indiquées.
Terminer Décodeur thermomètre huit bits
Comparateur de nombres BCD
VerilogComparez deux nombres BCD après validation. Implémentez toutes les décisions indiquées.
Terminer Additionneur saturant huit bits
Voteur majoritaire cinq entrées
VerilogDécidez à la majorité parmi cinq canaux redondants. Implémentez toutes les décisions indiquées.
Terminer Comparateur de nombres BCD
Analyseur de vecteur one-hot
VerilogVérifiez qu’un seul bit est actif et retournez son indice. Implémentez toutes les décisions indiquées.
Terminer Voteur majoritaire cinq entrées
Détecteur du bit de tête
VerilogLocalisez le bit actif de poids fort. Implémentez toutes les décisions indiquées.
Terminer Analyseur de vecteur one-hot
Fenêtre d’adresse programmable
VerilogDécodez une adresse entre deux bornes inclusives. Implémentez toutes les décisions indiquées.
Terminer Détecteur du bit de tête
Compteur décimal modulo 10
VerilogConcevez un compteur synchrone sur quatre bits qui parcourt les valeurs 0 à 9 avant de revenir à zéro.
Temporisateur descendant 10 bits
VerilogChargez une durée, décrémentez-la à chaque cycle et signalez le passage à zéro avant le rebouclage arithmétique.
Temporisateur périodique rechargeable
VerilogMémorisez une période, comptez jusqu'à zéro puis rechargez automatiquement la valeur programmée.
Compteur paramétrable
VerilogCréez un compteur dont la largeur est choisie à l’instanciation.
Compteur-décompteur 4 bits
VerilogComptez dans les deux sens avec validation et retour modulo seize.
Compteur modulo 12
VerilogComptez de zéro à onze et produisez une impulsion au rebouclage.
Terminer Compteur-décompteur 4 bits
Élargisseur d’impulsion
VerilogTransformez une impulsion d’un cycle en niveau actif de durée déterminée.
Terminer Compteur modulo 12
Anti-rebond d’interrupteur
VerilogFiltrez les transitions instables d’une entrée asynchrone.
Terminer Élargisseur d’impulsion
RAM 16 x 8 à lecture asynchrone
VerilogModélisez une petite mémoire à écriture synchrone et lecture combinatoire.
Terminer Anti-rebond d’interrupteur
RAM 16 x 8 à lecture synchrone
VerilogModélisez une RAM dont données lues et écrites sont enregistrées au front montant.
Terminer RAM 16 x 8 à lecture asynchrone
Banc de registres à deux lectures
VerilogConstruisez un banc de huit registres avec une écriture et deux lectures simultanées.
Terminer RAM 16 x 8 à lecture synchrone
FIFO synchrone 8 x 8
VerilogImplémentez une file de huit octets avec indicateurs vide et pleine.
Terminer Banc de registres à deux lectures
ROM de décodage sept segments
VerilogUtilisez une table combinatoire pour afficher un chiffre hexadécimal ou masquer l’afficheur.
Terminer FIFO synchrone 8 x 8
Additionneur BCD à un chiffre
VerilogAdditionnez deux chiffres décimaux codés en BCD et une retenue.
Terminer ROM de décodage sept segments
Décaleur et rotateur barrel
VerilogDécalez ou faites tourner un octet de zéro à sept positions en un cycle combinatoire.
Terminer Additionneur BCD à un chiffre
Détecteur de séquence 1011
VerilogDétectez une séquence série avec chevauchement à l’aide d’une machine de Mealy.
Terminer Décaleur et rotateur barrel
Temporisateur programmable
VerilogChargez une période puis produisez une impulsion après le nombre demandé de cycles.
Terminer Détecteur de séquence 1011
Code de Hamming (7,4)
VerilogEncodez quatre bits et corrigez automatiquement une erreur simple.
Terminer Temporisateur programmable
Chiffreur de flux par LFSR
VerilogCombinez chaque octet avec une suite pseudo-aléatoire reproductible.
Terminer Code de Hamming (7,4)
Checksum à complément à un
VerilogCalculez le checksum de paquets constitués de mots de seize bits.
Terminer Chiffreur de flux par LFSR
Décodeur de paquet souris PS/2
VerilogRegroupez trois octets PS/2 en boutons et déplacements signés.
Terminer Checksum à complément à un
Calculateur de score de blackjack
VerilogCalculez la meilleure valeur d’une main de cinq cartes sans dépasser 21.
Terminer Décodeur de paquet souris PS/2
Contrôleur de séquence PRBS
VerilogCalculez l’état LFSR suivant et comptez les divergences. Implémentez toutes les décisions indiquées.
Terminer Calculateur de score de blackjack
Routeur de voies SRAM
VerilogFusionnez un octet selon deux byte-enables. Implémentez toutes les décisions indiquées.
Terminer Contrôleur de séquence PRBS
Validateur de trame PS/2
VerilogContrôlez start, stop et parité impaire. Implémentez toutes les décisions indiquées.
Terminer Routeur de voies SRAM
Estimateur de fréquence réciproque
VerilogDivisez une référence par une période mesurée. Implémentez toutes les décisions indiquées.
Terminer Validateur de trame PS/2
Décision de watchdog fenêtré
VerilogClassez un kick comme précoce, valide ou tardif. Implémentez toutes les décisions indiquées.
Terminer Estimateur de fréquence réciproque
Arbitre rotatif huit requêtes
VerilogSélectionnez la première requête après le dernier gagnant. Implémentez toutes les décisions indiquées.
Terminer Décision de watchdog fenêtré
Contrôleur FSM d'un multiplicateur complexe
VerilogSéquencez en cinq états les sélections, validations de produits partiels et écritures d'un datapath de multiplication complexe.
Chemin de données du multiplieur complexe
VerilogCalculez en combinatoire le produit de deux nombres complexes signés.
Multiplieur itératif 8 x 8
VerilogMultipliez deux octets en huit cycles par décalages et additions.
Diviseur itératif par restauration
VerilogCalculez quotient et reste non signés en huit itérations.
UAL 8 bits avec indicateurs
VerilogRegroupez huit opérations arithmétiques et logiques avec indicateurs.
Scanner de clavier matriciel 4 x 4
VerilogBalayez quatre lignes et encodez la touche détectée.
Terminer UAL 8 bits avec indicateurs
Émetteur UART 8N1
VerilogSérialisez un octet avec bit de start, huit bits de données et bit de stop.
Terminer Scanner de clavier matriciel 4 x 4
Récepteur UART 8N1
VerilogÉchantillonnez une trame série 8N1 et signalez les erreurs de stop.
Terminer Émetteur UART 8N1
Récepteur PS/2
VerilogRecevez une trame clavier PS/2 et contrôlez ses bits de start, parité et stop.
Terminer Récepteur UART 8N1
Générateur de synchronisation VGA
VerilogProduisez compteurs de pixels, zone visible et impulsions de synchronisation paramétrables.
Terminer Récepteur PS/2
Arbitre de bus à priorité fixe
VerilogAccordez un bus à un demandeur à la fois et conservez l’accord jusqu’à sa libération.
Terminer Générateur de synchronisation VGA
Opérateur de Sobel 3 x 3
VerilogCalculez une approximation de magnitude de gradient sur une fenêtre de neuf pixels.
Terminer Arbitre de bus à priorité fixe
Contrôleur de SRAM asynchrone
VerilogTransformez une requête interne en cycle SRAM temporisé de lecture ou d’écriture.
Terminer Opérateur de Sobel 3 x 3
Contrôleur DMA en rafale
VerilogCopiez une suite de mots entre deux espaces d’adressage avec handshakes séparés.
Terminer Contrôleur de SRAM asynchrone
Contrôleur de cache direct-mapped
VerilogMettez en cache quatre mots et rechargez une ligne lors d’un miss.
Terminer Contrôleur DMA en rafale
Filtre de boucle pour PLL numérique
VerilogIntégrez les événements avance/retard d’un détecteur de phase numérique.
Terminer Contrôleur de cache direct-mapped
Décision de rafraîchissement DRAM
VerilogArbitrez entre accès normal et refresh arrivé à échéance. Implémentez toutes les décisions indiquées.
Terminer Filtre de boucle pour PLL numérique
Commande DRAM fast-page-mode
VerilogDétectez un hit de ligne ouverte et choisissez RAS/CAS. Implémentez toutes les décisions indiquées.
Terminer Décision de rafraîchissement DRAM
Arbitre mémoire avec urgences
VerilogPriorisez les urgences puis appliquez une rotation. Implémentez toutes les décisions indiquées.
Terminer Commande DRAM fast-page-mode
Politique d’écriture cache
VerilogDécidez hit, allocation ou write-back. Implémentez toutes les décisions indiquées.
Terminer Arbitre mémoire avec urgences
Adresse de descripteur DMA
VerilogCalculez une adresse de descripteur indexée. Implémentez toutes les décisions indiquées.
Terminer Politique d’écriture cache
Classificateur flottant binaire16
VerilogClassez zéro, subnormal, normal, infini et NaN. Implémentez toutes les décisions indiquées.
Terminer Adresse de descripteur DMA