Chargement…
Chargement…
Lisez la spécification technique et concevez le VHDL complet. La simulation GHDL valide votre code.
Contrôleur FIFO synchrone
VHDLImplémentez un contrôleur FIFO synchrone gérant les pointeurs de lecture/écriture, les flags full/empty et le niveau de remplissage.
Maître AXI4 - canaux de lecture
VHDLImplémentez un maître AXI4 simple gérant les deux canaux de lecture : Read Address (AR) et Read Data (R).
Esclave AXI-Lite - carte de registres
VHDLImplémentez un esclave AXI-Lite avec trois registres 32 bits accessibles en lecture/écriture, gérés par deux machines à états indépendantes.
FSM - Feu piéton
VHDLImplémentez une machine à états à 3 process pour un feu piéton avec timer intégré et gestion des durées par état.
Contrôleur LEDs - Machine à états Moore
VHDLImplémentez une machine à états Moore à 3 process qui fait défiler 4 LEDs en séquence sur commande.
Additionneur N bits - Ripple Carry
VHDLImplémentez un additionneur N bits a propagation de retenue (ripple carry) en utilisant uniquement des operateurs logiques, sans bibliotheque arithmetique.
Terminer Contrôleur LEDs - Machine à états Moore
Compteur bidirectionnel avec chargement parallele
VHDLImplémentez un compteur bidirectionnel générique avec chargement parallele, enable et reset asynchrone.
Terminer Additionneur N bits - Ripple Carry
Anti-rebond configurable
VHDLImplémentez un circuit anti-rebond (debouncer) avec un temps de stabilisation configurable via des génériques.
Terminer Compteur bidirectionnel avec chargement parallele
Encodeur de priorité 8 vers 3
VHDLImplémentez un encodeur de priorité combinatoire 8 vers 3 qui encode la position du bit actif de plus haute priorité.
Terminer Anti-rebond configurable
Compteur Johnson 4 bits
VHDLImplémentez un compteur Johnson 4 bits avec reset synchrone. Le compteur parcourt une séquence de 8 états avant de revenir a son état initial.
Terminer Encodeur de priorité 8 vers 3
Barrel Shifter 8 bits
VHDLImplémentez un barrel shifter 8 bits effectuant un décalage logique a gauche en 3 etages combinatoires (shift-by-4, shift-by-2, shift-by-1).
Terminer Compteur Johnson 4 bits
Registre W1C (Write-1-to-Clear)
VHDLImplémentez un registre W1C : les bits se positionnent via i_set_en et s'effacent en écrivant 1 via i_clr_en.
Terminer Barrel Shifter 8 bits
Générateur de tick 1µs
VHDLGénérez une impulsion périodique de 1µs à partir d'une horloge système de période connue.
Terminer Registre W1C (Write-1-to-Clear)
Compteur N bits avec sortie de débordement
VHDLImplémentez un compteur générique N bits synchrone avec enable, reset asynchrone et indication de débordement.
Terminer Générateur de tick 1µs
Comparateur 8 bits
VHDLImplémentez un comparateur combinatoire 8 bits qui compare deux nombres non signes et indique la relation entre eux.
Terminer Compteur N bits avec sortie de débordement
Additionneur-soustracteur 4 bits
VHDLImplémentez un bloc combinatoire 4 bits selectionnable en addition ou soustraction via un signal de contrôle.
Terminer Comparateur 8 bits
Comparateur cascadable N bits
VHDLImplémentez un comparateur générique cascadable avec entrées de cascade pour connecter plusieurs etages.
Terminer Additionneur-soustracteur 4 bits
Registre 8 bits avec chargement
VHDLImplémentez un registre 8 bits avec chargement parallele et reset asynchrone.
Terminer Comparateur cascadable N bits
Registre a décalage bidirectionnel 4 bits
VHDLImplémentez un registre a décalage 4 bits pouvant décaler a gauche, a droite, charger en parallele ou conserver sa valeur.
Terminer Registre 8 bits avec chargement
ROM 8x4
VHDLImplémentez une mémoire morte (ROM) de 8 mots de 4 bits, purement combinatoire.
Terminer Registre a décalage bidirectionnel 4 bits
ROM 16x4 avec tableau constant
VHDLImplémentez une ROM 16 mots de 4 bits en utilisant un tableau constant VHDL.
Terminer ROM 8x4
RAM synchrone 8x4
VHDLImplémentez une mémoire RAM de 8 mots de 4 bits avec écriture synchrone et lecture asynchrone.
Terminer ROM 16x4 avec tableau constant
RAM synchrone 16x4
VHDLImplémentez une mémoire RAM de 16 mots de 4 bits avec écriture synchrone et lecture asynchrone.
Terminer RAM synchrone 8x4
Pile LIFO 8 niveaux, 8 bits
VHDLImplémentez une pile LIFO (Last In, First Out) de 8 niveaux sur 8 bits avec push, pop, et indicateurs empty/full.
Terminer RAM synchrone 16x4
RAM double port 8x8
VHDLImplémentez une RAM double port de 8 mots de 8 bits : un port d'écriture et un port de lecture indépendants.
Terminer Pile LIFO 8 niveaux, 8 bits
Banc de registres 4x8
VHDLImplémentez un banc de 4 registres de 8 bits avec 1 port d'écriture et 2 ports de lecture.
Terminer RAM double port 8x8
Additionneur CLA 4 bits
VHDLImplémentez un additionneur 4 bits a anticipation de retenue (Carry Lookahead Adder).
Terminer Banc de registres 4x8
Additionneur CLA 8 bits (2 blocs cascades)
VHDLImplémentez un additionneur CLA 8 bits en cascadant deux blocs CLA 4 bits.
Terminer Additionneur CLA 4 bits
Barrel Shifter 4 bits
VHDLImplémentez un barrel shifter 4 bits a 2 étages pouvant décaler logiquement a gauche de 0 a 3 positions.
Terminer Additionneur CLA 8 bits (2 blocs cascades)
Additionneur flottant simplifié 8 bits
VHDLImplémentez un additionneur pour un format flottant simplifié : 1 bit signe, 3 bits exposant (biais 3), 4 bits mantisse (implicite 1.xxxx).
Terminer Barrel Shifter 4 bits
Multiplieur flottant simplifié 8 bits
VHDLImplémentez un multiplieur pour le meme format flottant simplifié : 1 bit signe, 3 bits exposant (biais 3), 4 bits mantisse (1 implicite).
Terminer Additionneur flottant simplifié 8 bits
Générateur de parité 7 bits
VHDLImplémentez un générateur de parité paire : genere un bit de parité pour 7 bits de données, et vérifié un mot de 8 bits (7 data + 1 parité).
Terminer Multiplieur flottant simplifié 8 bits
Compteur de population 8 bits (popcount)
VHDLImplémentez un compteur de population : compte le nombre de bits a '1' dans un vecteur de 8 bits.
Terminer Générateur de parité 7 bits
Multiplexeur a priorité 4 canaux
VHDLImplémentez un multiplexeur à priorité : 4 canaux de données 4 bits avec bits de requête. Le canal de plus haute priorité active est sélectionné.
Terminer Compteur de population 8 bits (popcount)
Synchroniseur Handshake CDC
VHDLImplémentez un synchroniseur a poignée de main (4 phases) pour transférer un bus de données entre deux domaines d'horloge indépendants.
Terminer Multiplexeur a priorité 4 canaux
Filtre FIR passe-bas 5 taps
VHDLImplémentez un filtre FIR passe-bas 5 taps en forme directe avec ligne à retard et coefficients fixes.
Terminer Synchroniseur Handshake CDC
Multiplicateur 5x5 pipeliné 4 étages
VHDLTransformez un multiplicateur combinatoire 5x5 en architecture pipelinée à 4 étages.
Terminer Filtre FIR passe-bas 5 taps
Correcteur Hamming (7,4)
VHDLDécodez un mot Hamming (7,4), calculez le syndrome et corrigez une erreur simple.
Terminer Multiplicateur 5x5 pipeliné 4 étages
Registre PISO 4 bits
VHDLImplémentez un registre Parallel-In Serial-Out avec chargement parallèle et décalage contrôlé.
Terminer Correcteur Hamming (7,4)
Compteur synchrone modulo 6
VHDLConcevez un compteur synchrone qui parcourt les états 0 à 5 avec enable et impulsion de fin de cycle.
Terminer Registre PISO 4 bits
Horloge time_of_day avec record
VHDLCréez un package `time_of_day_pkg`, un type `record` et un compteur horaire réutilisable.
Terminer Compteur synchrone modulo 6
Arbitre de priorité
VHDLImplémentez un arbitre combinatoire qui accorde le bus au demandeur ayant la priorité numérique la plus faible.
Terminer Horloge time_of_day avec record
Comparateur signé-magnitude
VHDLComparez deux nombres encodés en signé-magnitude, sans les traiter comme du complément à deux.
Terminer Arbitre de priorité
Bit reverser non contraint
VHDLCodez un inverseur d'ordre de bits compatible avec des vecteurs de tailles et directions différentes.
Terminer Comparateur signé-magnitude
Convertisseur binaire vers BCD
VHDLConvertissez un mot binaire 8 bits en trois chiffres BCD.
Terminer Bit reverser non contraint
Compteur Gray
VHDLImplémentez un compteur 4 bits qui expose sa valeur en code Gray.
Terminer Convertisseur binaire vers BCD
Compteur de zéros de tête
VHDLComptez les zéros consécutifs depuis le bit de poids fort.
Terminer Compteur Gray
Différenciateur numérique
VHDLCalculez la différence entre deux échantillons consécutifs valides.
Terminer Compteur de zéros de tête
Interpolateur par table
VHDLInterpolez linéairement entre quatre points fixes de table.
Terminer Différenciateur numérique
Gestionnaire de compteurs
VHDLPilotez quatre compteurs 4 bits avec sélection, incrément et remise à zéro.
Terminer Interpolateur par table
Calculateur d’histogramme
VHDLAccumulez quatre bins d’histogramme à partir d’échantillons 2 bits.
Terminer Gestionnaire de compteurs
Contrôleur de copie mémoire
VHDLGénérez une séquence de lectures puis écritures pour copier quatre mots.
Terminer Calculateur d’histogramme
Accumulateur scratchpad
VHDLAccumulez des valeurs signées dans quatre cases scratchpad.
Terminer Contrôleur de copie mémoire
Testeur de nombre premier
VHDLDéterminez si une valeur 4 bits est un nombre premier.
Terminer Accumulateur scratchpad
Filtre maximum glissant
VHDLSortez le maximum des quatre derniers échantillons valides.
Terminer Testeur de nombre premier
Calculateur factoriel
VHDLCalculez `n!` pour une entrée 3 bits de 0 à 5.
Terminer Filtre maximum glissant
Vérificateur de palindrome
VHDLVérifiez si quatre nibbles forment une séquence palindrome.
Terminer Calculateur factoriel
Détecteur Two Sum
VHDLTrouvez si une paire parmi quatre valeurs atteint une cible.
Terminer Vérificateur de palindrome
Encodeur Run-Length
VHDLCompressez un flux 4 bits en émettant symbole et longueur au changement.
Terminer Détecteur Two Sum
Détecteur de pic
VHDLDétectez un maximum local dans un flux d’échantillons 8 bits.
Terminer Encodeur Run-Length
Recherche binaire
VHDLRecherchez une cible dans quatre valeurs triées croissantes.
Terminer Détecteur de pic
Produit scalaire
VHDLCalculez le produit scalaire de deux vecteurs de quatre valeurs 4 bits.
Terminer Recherche binaire
Moteur de tri par insertion
VHDLInsérez un flux de quatre valeurs dans un tableau trié interne.
Terminer Produit scalaire
Recherche du mode
VHDLRetournez la valeur la plus fréquente parmi quatre valeurs 4 bits.
Terminer Moteur de tri par insertion
Détecteur de séquence bitonique
VHDLDétectez une montée suivie d’une descente dans quatre valeurs.
Terminer Recherche du mode
Parseur d’en-tête Ethernet
VHDLDécoupez un en-tête Ethernet II de 14 octets en champs principaux.
Terminer Détecteur de séquence bitonique
Checksum d’en-tête IPv4
VHDLCalculez le complément à un de dix mots 16 bits d’un en-tête IPv4.
Terminer Parseur d’en-tête Ethernet
Détecteur de requête ARP
VHDLDétectez une requête ARP IPv4/Ethernet ciblant l’adresse locale.
Terminer Checksum d’en-tête IPv4
Unité MAC
VHDLImplémentez une accumulation de produits non signés 8x8.
Terminer Détecteur de requête ARP
Diviseur non signé itératif
VHDLRéalisez une division entière 8 bits en huit étapes, avec quotient, reste et détection d'une division par zéro.
Terminer Unité MAC
Mesureur de période en cycles
VHDLMesurez le nombre exact de cycles système entre deux fronts montants d'un signal externe synchronisé.
Terminer Diviseur non signé itératif
Sigmoïde par table de correspondance
VHDLApproximez une fonction sigmoïde avec une entrée signée Q4.4 et une table de 16 niveaux.
Terminer Mesureur de période en cycles
Additionneur séquentiel à quatre opérandes
VHDLAdditionnez quatre mots non signés avec un seul additionneur réutilisé sur quatre cycles.
Terminer Sigmoïde par table de correspondance
Accumulateur multiopérande carry-save
VHDLCompressez quatre opérandes sans propager la retenue à chaque cycle, puis faites une addition finale.
Terminer Additionneur séquentiel à quatre opérandes
Multiplieur signé séquentiel
VHDLCalculez un produit signé 8 x 8 bits avec additions et décalages sur huit cycles.
Terminer Accumulateur multiopérande carry-save
Filtre récursif de pixels avec seuil
VHDLLissez les changements importants tout en laissant passer les petites variations d'un flux de pixels.
Terminer Multiplieur signé séquentiel