Chargement…
Chargement…
Partez d'une spécification technique et concevez le VHDL complet, validé par simulation GHDL.
0/76 exercices terminés
Porte AND
VHDLConcevez une porte logique AND a deux entrées. C'est la brique de base de toute logique combinatoire.
Porte OR
VHDLConcevez une porte logique OR a deux entrées. La sortie est active des qu'au moins une entrée est a '1'.
Porte NOT (Inverseur)
VHDLConcevez un inverseur logique. La sortie est le complément de l'entrée.
Porte XOR
VHDLConcevez une porte logique XOR (OU exclusif) a deux entrées. Utilisee dans les additionneurs, la détection de parité et le chiffrement.
Multiplexeur 2 vers 1
VHDLConcevez un multiplexeur 2 vers 1 purement combinatoire. Le selecteur choisit laquelle des 2 entrées est transmise en sortie.
Porte NAND
VHDLConcevez une porte logique NAND a deux entrées. C'est la porte universelle : toute fonction logique peut etre construite avec des portes NAND.
Terminer Multiplexeur 2 vers 1
Porte NOR
VHDLConcevez une porte logique NOR a deux entrées. Comme la NAND, c'est une porte universelle.
Terminer Porte NAND
Porte XNOR
VHDLConcevez une porte logique XNOR (equivalence) a deux entrées. La sortie est active lorsque les deux entrées sont identiques.
Terminer Porte NOR
Demi-additionneur
VHDLConcevez un demi-additionneur (half adder) qui additionne deux bits sans retenue entrante.
Terminer Porte XNOR
Additionneur 1 bit complet
VHDLConcevez un additionneur 1 bit complet (full adder) avec retenue entrante et sortante. Ce bloc est la brique de base de toute unite arithmetique.
Terminer Demi-additionneur
Multiplexeur 4 vers 1
VHDLConcevez un multiplexeur 4 vers 1 purement combinatoire. Le selecteur de 2 bits choisit laquelle des 4 entrées est transmise en sortie.
Terminer Additionneur 1 bit complet
Décodeur binaire 2 vers 4
VHDLConcevez un décodeur binaire 2 vers 4 avec signal d'activation (enable). La sortie est un code one-hot correspondant a la valeur du selecteur lorsque le décodeur est actif.
Terminer Multiplexeur 4 vers 1
Vérificateur de parité 8 bits
VHDLConcevez un vérificateur de parité sur 8 bits. La sortie indique si le nombre de bits a 1 dans l'entrée est impair (parité = 1) ou pair (parité = 0).
Terminer Décodeur binaire 2 vers 4
Comparateur 4 bits
VHDLConcevez un comparateur combinatoire 4 bits qui compare deux nombres non signes et indique si le premier est superieur, egal ou inferieur au second.
Terminer Vérificateur de parité 8 bits
Bascule D avec enable
VHDLImplémentez une bascule D avec enable et reset asynchrone actif haut. La bascule mémorise i_d sur le front montant uniquement si i_en est actif.
Terminer Comparateur 4 bits
Registre 4 bits
VHDLImplémentez un registre 4 bits avec enable et reset asynchrone actif haut.
Terminer Bascule D avec enable
Registre a décalage gauche 4 bits
VHDLImplémentez un registre a décalage a gauche 4 bits avec entrée série et reset asynchrone.
Terminer Registre 4 bits
Registre SIPO 4 bits
VHDLImplémentez un registre a décalage série vers parallele (SIPO) 4 bits avec reset asynchrone. Les bits entrent en série et sont disponibles en parallele.
Terminer Registre a décalage gauche 4 bits
Compteur 4 bits croissant
VHDLImplémentez un compteur synchrone 4 bits croissant avec enable et reset asynchrone.
Terminer Registre SIPO 4 bits
Compteur 4 bits decroissant
VHDLImplémentez un compteur synchrone 4 bits decroissant avec enable et reset asynchrone. Le reset initialise a la valeur maximale (15).
Terminer Compteur 4 bits croissant
Compteur en anneau 4 bits
VHDLImplémentez un compteur en anneau (ring counter) 4 bits avec reset asynchrone. Un seul bit a '1' circule dans le registre.
Terminer Compteur 4 bits decroissant
Esclave SPI (CPOL=0, CPHA=1)
VHDLImplémentez un esclave SPI générique en mode 1 (CPOL=0, CPHA=1) qui reçoit une trame de 32 bits.
Terminer Compteur en anneau 4 bits
Maître SPI 8 bits
VHDLImplémentez un maître SPI (mode 0 : CPOL=0, CPHA=0) capable d'émettre et de recevoir un octet sur un bus SPI.
Terminer Esclave SPI (CPOL=0, CPHA=1)
Maître SPI mode 0
VHDLImplémentez un maître SPI en mode 0 (CPOL=0, CPHA=0) capable de transférer 8 bits en série.
Terminer Maître SPI 8 bits
Compteur BCD
VHDLImplémentez un compteur BCD synchrone qui compte de 0 à 9 puis reboucle à 0, avec reset asynchrone actif bas et entrée d'activation.
Terminer Maître SPI mode 0
Diviseur d'horloge
VHDLImplémentez un diviseur d'horloge générique qui divise la fréquence d'entrée par 2 × G_HALF, avec reset asynchrone.
Terminer Compteur BCD
Registre à décalage 4 bits
VHDLImplémentez un registre à décalage série 4 bits (SISO) avec reset asynchrone. Les bits se décalent vers la droite à chaque front montant.
Terminer Diviseur d'horloge
Détecteur de séquence «101»
VHDLImplémentez une machine à états Mealy qui détecte la séquence binaire «101» sur une entrée série, avec gestion du chevauchement.
Terminer Registre à décalage 4 bits
ALU simple 4 opérations
VHDLImplémentez une ALU combinatoire réalisant 4 opérations sur deux opérandes 8 bits : addition, soustraction, ET logique et OU logique, avec drapeau de retenue.
Terminer Détecteur de séquence «101»
Latch transparent (piège FPGA)
VHDLImplémentez un latch transparent pour comprendre ce piège classique du FPGA. Quand enable est haut, la sortie suit l'entrée ; quand enable est bas, la sortie conserve sa valeur.
Terminer ALU simple 4 opérations
Registre à décalage chargeable
VHDLImplémentez un registre à décalage chargeable 8 bits combinant chargement parallèle et décalage à gauche, avec priorité au chargement.
Terminer Latch transparent (piège FPGA)
Étireur d'impulsion
VHDLImplémentez un étireur d'impulsion qui prolonge un signal d'un cycle en une sortie active pendant G_CYCLES cycles d'horloge.
Terminer Registre à décalage chargeable
Timer Watchdog
VHDLImplémentez un timer watchdog de sécurité : un compteur décrémente en continu et déclenche un timeout si aucun signal i_kick n'est reçu à temps.
Terminer Étireur d'impulsion
Contrôleur de séquence LED
VHDLImplémentez un contrôleur FSM à 3 états (OFF, BLINK, ON) qui pilote une LED avec clignotement. Chaque appui sur le bouton avance la séquence.
Terminer Timer Watchdog
Générateur PWM
VHDLImplémentez un générateur PWM avec un compteur séquentiel et une sortie combinatoire contrôlée par le rapport cyclique.
Terminer Contrôleur de séquence LED
LFSR 8 bits
VHDLImplémentez un registre à décalage à rétroaction linéaire (LFSR) 8 bits avec chargement de graine et sortie combinatoire de feedback.
Terminer Générateur PWM
Filtre moyenneur glissant (4 echantillons)
VHDLImplémentez un filtre moyenneur glissant sur 4 echantillons avec un registre a décalage séquentiel et un calcul combinatoire de la moyenne.
Terminer LFSR 8 bits
Registre parallele générique avec enable
VHDLImplémentez un registre parallele N bits avec enable et détection combinatoire de mise a jour.
Terminer Filtre moyenneur glissant (4 echantillons)
Synchroniseur CDC 2-FF avec détection de fronts
VHDLImplémentez un synchroniseur CDC a deux bascules avec détection combinatoire de fronts montants et descendants.
Terminer Registre parallele générique avec enable
CRC-16/CCITT (polynome 0x1021)
VHDLImplémentez un calculateur CRC-16 synchrone, bit par bit, avec le polynome CCITT et une sortie combinatoire du registre CRC.
Terminer Synchroniseur CDC 2-FF avec détection de fronts
Maitre I2C - Démarrage & adressage
VHDLImplémentez les deux premieres phases d'un maitre I2C : condition START et envoi de l'adresse 7 bits + bit R/W via une FSM a 5 états.
Terminer CRC-16/CCITT (polynome 0x1021)
Décodeur 7 segments
VHDLImplémentez un décodeur 7 segments qui convertit un chiffre BCD (0-9) en 7 signaux pour allumer les bons segments d'un afficheur, avec enable.
Terminer Maitre I2C - Démarrage & adressage
Top Level - Instanciation
VHDLImplémentez un top level qui instancie un compteur BCD et un décodeur 7 segments, en câblant correctement les signaux internes et les ports externes.
Terminer Décodeur 7 segments
Multiplieur binaire 4 bits
VHDLConcevez un multiplieur combinatoire 4 bits qui calcule le produit de deux nombres non signes sur 8 bits de sortie.
Terminer Top Level - Instanciation
Convertisseur BCD vers binaire
VHDLConcevez un convertisseur combinatoire qui transforme un nombre BCD (Binary-Coded Decimal) sur 8 bits en sa valeur binaire sur 7 bits.
Terminer Multiplieur binaire 4 bits
Multiplexeur 8 vers 1
VHDLConcevez un multiplexeur 8 vers 1 purement combinatoire. Le selecteur de 3 bits choisit laquelle des 8 entrées est transmise en sortie.
Terminer Convertisseur BCD vers binaire
Demultiplexeur 1 vers 2
VHDLConcevez un demultiplexeur 1 vers 2. L'entrée est acheminee vers l'une des deux sorties selon le selecteur.
Terminer Multiplexeur 8 vers 1
Demultiplexeur 1 vers 4
VHDLConcevez un demultiplexeur 1 vers 4. L'entrée est acheminee vers l'une des quatre sorties selon le selecteur de 2 bits.
Terminer Demultiplexeur 1 vers 2
Décodeur binaire 3 vers 8
VHDLConcevez un décodeur binaire 3 vers 8 avec signal d'activation. La sortie est un code one-hot correspondant a la valeur du selecteur.
Terminer Demultiplexeur 1 vers 4
Convertisseur binaire vers Gray
VHDLConcevez un convertisseur 4 bits de code binaire vers code Gray. Le code Gray est utilise dans les communications car un seul bit change entre deux valeurs consecutives.
Terminer Décodeur binaire 3 vers 8
Convertisseur Gray vers binaire
VHDLConcevez un convertisseur 4 bits de code Gray vers code binaire. Opération inverse du convertisseur binaire vers Gray.
Terminer Convertisseur binaire vers Gray
Soustracteur 4 bits
VHDLConcevez un soustracteur combinatoire 4 bits qui calcule la difference de deux nombres non signes avec indication d'emprunt.
Terminer Convertisseur Gray vers binaire
Bascule JK
VHDLImplémentez une bascule JK avec reset asynchrone actif haut. La bascule JK est la plus polyvalente : elle peut maintenir, mettre a '1', mettre a '0' ou basculer sa sortie.
Terminer Soustracteur 4 bits
Bascule T
VHDLImplémentez une bascule T (Toggle) avec reset asynchrone actif haut. Quand T='1', la sortie bascule a chaque front montant.
Terminer Bascule JK
Bascule SR synchrone
VHDLImplémentez une bascule SR synchrone avec reset asynchrone actif haut. S met la sortie a '1', R la remet a '0'.
Terminer Bascule T
Encodeur BCD vers Excess-3
VHDLConcevez un encodeur combinatoire qui transforme un chiffre BCD valide en code Excess-3.
Terminer Bascule SR synchrone
Encodeur Hamming (7,4)
VHDLEncodez 4 bits de données avec trois bits de parité paire pour former un mot Hamming (7,4).
Terminer Encodeur BCD vers Excess-3
Corriger un latch involontaire
VHDLCorrigez un process combinatoire incomplet qui mémorise une ancienne valeur quand `i_sel = "11"`.
Terminer Encodeur Hamming (7,4)
Compteur impair
VHDLRéalisez un compteur synchrone qui parcourt uniquement les valeurs impaires sur 4 bits.
Terminer Corriger un latch involontaire
Compteur auto-rechargeable
VHDLImplémentez un compteur décrémental qui se recharge seul quand il atteint zéro.
Terminer Compteur impair
Décodeur thermomètre vers binaire
VHDLConvertissez un code thermomètre 8 bits en nombre binaire.
Terminer Compteur auto-rechargeable
Générateur Fibonacci
VHDLConcevez un générateur séquentiel de la suite de Fibonacci sur 8 bits.
Terminer Décodeur thermomètre vers binaire
Inverseur de séquence
VHDLInversez l’ordre de quatre nibbles contenus dans un mot 16 bits.
Terminer Générateur Fibonacci
Somme courante
VHDLAdditionnez un flux d’échantillons non signés dans un accumulateur 12 bits.
Terminer Inverseur de séquence
Détecteur de doublons
VHDLDétectez si quatre valeurs 4 bits contiennent au moins un doublon.
Terminer Somme courante
Calculateur de différence
VHDLCalculez la différence signée entre deux échantillons 8 bits.
Terminer Détecteur de doublons
Accumulateur de flux
VHDLAccumulez un paquet d’échantillons et signalez la somme au dernier mot.
Terminer Calculateur de différence
Sommes préfixes
VHDLCalculez les sommes cumulées de quatre valeurs 4 bits.
Terminer Accumulateur de flux
Distance de Hamming
VHDLComptez les bits différents entre deux mots 8 bits.
Terminer Sommes préfixes
Compteur de zéros de poids faible
VHDLComptez les zéros consécutifs à partir du bit de poids faible.
Terminer Distance de Hamming
Filtre d’adresse MAC
VHDLAcceptez une trame si sa destination MAC est locale ou broadcast.
Terminer Compteur de zéros de poids faible
Validateur de longueur de paquet
VHDLVérifiez qu’une longueur de paquet est comprise dans une fenêtre autorisée.
Terminer Filtre d’adresse MAC
Détecteur de tag VLAN
VHDLDétectez les TPID VLAN courants et extrayez le champ TCI.
Terminer Validateur de longueur de paquet
Unité d’activation ReLU
VHDLImplémentez une activation ReLU signée 8 bits.
Terminer Détecteur de tag VLAN
Unité de max pooling
VHDLCalculez le maximum d’une fenêtre 2x2 de pixels 8 bits.
Terminer Unité d’activation ReLU
Unité argmax
VHDLRetournez la valeur maximale et son indice parmi quatre entrées.
Terminer Unité de max pooling