Chargement…
Chargement…
Partez d'une spécification technique et concevez le VHDL complet, validé par simulation GHDL.
0/186 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
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
SPI Master Complet (Mode configurable)
VHDLImplémentez un contrôleur SPI maître générique supportant les 4 modes SPI, avec diviseur d'horloge, multi-esclaves et tailles de trames configurables.
Émetteur UART 8N1
VHDLImplémentez un émetteur UART 8N1 complet avec générateur de baud rate et FSM a 4 états pilotant le transfert série.
FIFO Synchrone Configurable
VHDLImplémentez une FIFO synchrone avec largeur et profondeur configurables, pointeurs circulaires et drapeaux full/empty.
RAM Simple Port 256x8
VHDLImplémentez une RAM synchrone simple port de 256 mots de 8 bits avec lecture synchrone et écriture synchrone.
RAM Double Port 128x16
VHDLImplémentez une RAM synchrone double port de 128 mots de 16 bits. Le port A écrit, le port B lit.
Générateur d'interruptions
VHDLImplémentez un générateur d'interruptions : chaque vecteur d'IT est maintenu actif pendant g_MIN_WIDTH_PULSE cycles puis reporté dans le statut.
Terminer RAM Double Port 128x16
Maître AXI4-Lite
VHDLImplémentez un maître AXI4-Lite générique capable d'effectuer des accès en lecture et écriture sur un bus AXI4-Lite.
Terminer Générateur d'interruptions
Esclave AXI4-Lite
VHDLImplémentez un esclave AXI4-Lite générique avec interface registre simplifiée.
Terminer Maître AXI4-Lite
Maître AXI4 - canaux d'écriture
VHDLImplémentez un maître AXI4 simple gérant les trois canaux d'écriture : Write Address (AW), Write Data (W) et Write Response (B).
Terminer Esclave AXI4-Lite
Processeur mu0 (16 bits)
VHDLImplementez un mini-processeur 16 bits de type accumulateur : UAL, registres PC/IR/ACC/R, sequenceur FSM et assemblage top-level. 14 instructions couvertes.
Terminer Maître AXI4 - canaux d'écriture
Cœur SHA-256 (1 bloc)
VHDLImplémentez un cœur SHA-256 matériel sur un bloc de 512 bits : fonctions logiques, registre à décalage message, compression et FSM top-level.
Terminer Processeur mu0 (16 bits)
Contrôleur SAR ADC 4 bits
VHDLImplémentez une FSMD de conversion par approximations successives pour piloter un DAC interne et lire un comparateur.
Terminer Cœur SHA-256 (1 bloc)
Multiplicateur float32 en 2 étages
VHDLImplémentez un multiplicateur IEEE-754 simple précision simplifié avec séparation mantisse/exposant.
Terminer Contrôleur SAR ADC 4 bits
ROM initialisée en Intel HEX
VHDLConstruisez une ROM de simulation à partir de lignes au format Intel HEX fournies par le projet.
Terminer Multiplicateur float32 en 2 étages
Compresseur audio µ-law
VHDLDéveloppez un modèle fonctionnel de compression µ-law pour un signal réel normalisé.
Terminer ROM initialisée en Intel HEX
Bascule double front
VHDLModélisez une sortie DDR simple à partir de deux registres de fronts opposés.
Terminer Compresseur audio µ-law
Chronomètre
VHDLRéalisez un chronomètre décimal secondes/dixièmes piloté par un tick externe.
Terminer Bascule double front
FIFO asynchrone
VHDLImplémentez une petite FIFO 8 bits entre deux domaines d’horloge.
Terminer Chronomètre
Filtre IIR biquad
VHDLImplémentez une cellule IIR biquad entière à coefficients fixes.
Terminer FIFO asynchrone
Filtre de décimation
VHDLMoyennez quatre échantillons puis sortez un échantillon décimé.
Terminer Filtre IIR biquad
Arbitre mémoire
VHDLArbitrez deux maîtres vers un port mémoire simple.
Terminer Filtre de décimation
Moteur de tri à bulles
VHDLTriez quatre valeurs 4 bits avec un réseau de comparateurs inspiré du tri à bulles.
Terminer Arbitre mémoire
Fusion de flux triés
VHDLFusionnez deux paires déjà triées en quatre sorties triées.
Terminer Moteur de tri à bulles
Calculateur de médiane
VHDLCalculez la médiane de cinq valeurs 4 bits.
Terminer Fusion de flux triés
Moteur de convolution 1D
VHDLImplémentez une convolution 1D 3 taps à coefficients fixes `1,2,1`.
Terminer Calculateur de médiane
Transpose de matrice
VHDLTransposez une matrice 2x2 d’octets empaquetée sur 32 bits.
Terminer Moteur de convolution 1D
Plus longue séquence consécutive
VHDLMesurez la plus longue suite `+1` dans quatre valeurs déjà triées.
Terminer Transpose de matrice
Neurone séquentiel en virgule fixe
VHDLCalculez un neurone avec une seule unité de multiplication-accumulation réutilisée sur plusieurs cycles.
Terminer Plus longue séquence consécutive
Couche dense parallèle à deux neurones
VHDLCalculez en parallèle deux neurones entièrement connectés à quatre entrées signées.
Terminer Neurone séquentiel en virgule fixe
Multiplieur signé Booth radix 2
VHDLImplémentez une multiplication signée en recodant les transitions du multiplieur.
Terminer Couche dense parallèle à deux neurones
Additionneur et soustracteur modulo m
VHDLCalculez une somme ou une différence réduite dans l'intervalle de zéro à m moins un.
Terminer Multiplieur signé Booth radix 2
Multiplieur modulaire shift-add
VHDLCalculez x fois y modulo m sur huit cycles sans multiplicateur combinatoire.
Terminer Additionneur et soustracteur modulo m
Multiplieur de Montgomery binaire
VHDLCalculez un produit modulaire dans le domaine de Montgomery avec huit itérations binaires.
Terminer Multiplieur modulaire shift-add
Diviseur non restaurant
VHDLDivisez deux entiers non signés avec huit étapes qui alternent soustraction et addition.
Terminer Multiplieur de Montgomery binaire