Faculté des Sciences de Bizerte
Faculté des Sciences de Bizerte
*** FSB ***
UE 33 : Systèmes numériques avancés
Module : Circuits programmables avancées
Classe: MPEEA2
Mini-projets: Circuits Programmables Avancés
Enseignant: Khalil JOUILI
**************************************************************************
Note : Le rapport final doit être soumis avant le 05 décembre 2025.
Dans le cadre de cette unité d’enseignement, chaque binôme d’étudiants doit choisir un seul
mini-projet parmi les propositions suivantes.
Le projet choisi doit être conçu, décrit en VHDL , et entièrement simulé sous Vivado
2018.3.
Aucune implémentation matérielle sur carte FPGA n’est requise : l’évaluation portera
uniquement sur la qualité de la conception, la structure du code HDL, et la pertinence des
simulations (fonctionnelles et temporelles).
Travail demandée
Chaque mini-projet vise à :
Mettre en pratique les notions vues en cours (langages HDL, conception modulaire,
synchronisation, machines d’états, optimisation).
Développer l’autonomie et la rigueur dans l’utilisation de Vivado.
Comprendre la démarche de conception complète : spécification → description →
simulation → validation.
Les étudiants doivent produire :
Un rapport technique (description, diagrammes, résultats de simulation).
Les fichiers sources HDL et le testbench complet.
Les chronogrammes annotés illustrant le fonctionnement du design.
_________________________________________________________________________________________
Page 1/4
Faculté des Sciences de Bizerte
Organisation et rendu
Travail par binôme (deux étudiants maximum).
Choix du sujet à valider avant le début des travaux.
Rendu final :
o Rapport PDF (4–6 pages) incluant la description, le code HDL, les
chronogrammes et l’analyse.
o Dossier Vivado contenant les fichiers .vhd / .v et les fichiers de simulation.
Liste des mini-projets proposés
1. Conception d’un microprocesseur RISC simplifié (16 bits)
Objectif : Concevoir un processeur réduit comprenant une unité de calcul, une mémoire et un
jeu d’instructions basique (ADD, SUB, LOAD, STORE, JUMP).
Travail : Description VHDL des blocs principaux (ALU, registre, mémoire, unité de
contrôle) et simulation d’un programme simple.
Résultat attendu : Chronogramme illustrant le cycle d’instruction (fetch–decode–execute).
2. Génération de signaux VGA simulés
Objectif : Générer des signaux de synchronisation VGA et afficher un motif simple.
Travail : Décrire un générateur VGA (sync_H, sync_V, RGB) et simuler le timing vidéo.
Résultat attendu : Chronogramme montrant les périodes de balayage et les signaux RGB.
3. Générateur de signaux numériques (sinus, carré, triangle)
Objectif : Créer un générateur de formes d’onde numériques à partir d’une ROM.
Travail : Stocker des valeurs dans une ROM, les lire périodiquement à l’aide d’un compteur,
et simuler plusieurs formes de signaux.
Résultat attendu : Chronogramme des différentes formes d’onde générées.
4. Module de communication UART–SPI
Objectif : Concevoir un module capable de gérer deux protocoles de communication série.
Travail : Implémenter séparément UART et SPI, puis créer une unité de sélection entre les
deux modes.
Résultat attendu : Trames série correctes observées dans la simulation (start/data/stop pour
UART – horloge/MOSI pour SPI).
_________________________________________________________________________________________
Page 2/4
Faculté des Sciences de Bizerte
5. Filtre numérique FIR simulé
Objectif : Réaliser un filtre numérique à coefficients paramétrables.
Travail : Implémentation séquentielle du calcul Y = Σ(ai×Xi), avec 4 ou 8 coefficients.
Résultat attendu : Signal de sortie filtré visible dans la simulation (atténuation ou retard).
6. Générateur PWM multi-canaux
Objectif : Simuler la génération de signaux PWM indépendants pour la commande de
moteurs ou de LED.
Travail : Création de 3 canaux PWM à fréquence fixe, rapport cyclique variable selon les
entrées.
Résultat attendu : Chronogrammes illustrant la variation du duty-cycle sur chaque canal.
7. Architecture pipeline pour calcul intensif
Objectif : Comparer les performances d’un calcul simple avec et sans pipeline.
Travail : Implémenter une fonction (Y = A×B + C×D) en version directe et pipelinée, puis
mesurer le nombre de cycles nécessaires.
Résultat attendu : Chronogrammes montrant le décalage temporel entre les étages de
pipeline et la réduction du temps total de traitement.
8. Machine d’états finis pour système de commande
Objectif : Concevoir un automate séquentiel complet (FSM).
Travail : Réaliser la machine d’états d’un processus (ex. feux tricolores, ascenseur, tri de
pièces).
Résultat attendu : Évolution correcte des états et cohérence des sorties selon les entrées.
9. Interface capteur numérique simulée (I²C ou SPI)
Objectif : Simuler la lecture de données d’un capteur numérique via protocole série.
Travail : Implémenter un module I²C ou SPI maître et un esclave virtuel (capteur simulé)
dans le testbench.
Résultat attendu : Chronogrammes corrects de communication et réception valide de la
donnée simulée.
_________________________________________________________________________________________
Page 3/4
Faculté des Sciences de Bizerte
10. Traitement d’image simplifié (simulation matricielle)
Objectif : Mettre en œuvre un traitement de type filtrage sur une petite matrice d’image.
Travail : Stocker une matrice 8×8 de pixels, appliquer un filtre (moyenne, seuillage,
détection de contours).
Résultat attendu : Comparaison visible des matrices avant et après traitement dans la
simulation.
11. Système de commande robotique simulé
Objectif : Simuler la logique de décision d’un robot à base de capteurs.
Travail : Créer une FSM représentant le comportement du robot (avance, tourne, stop) selon
les signaux de capteurs simulés.
Résultat attendu : Chronogrammes montrant la correspondance entre les états du robot et les
signaux de détection.
12. Convertisseur série–parallèle avec détection d’erreurs
Objectif : Concevoir un module de réception série avec contrôle d’intégrité.
Travail : Réaliser un convertisseur série-parallèle 8 bits intégrant un bit de parité ou un calcul
CRC.
Résultat attendu : Donnée reçue correctement et signal d’erreur activé en cas de trame
corrompue.
_________________________________________________________________________________________
Page 4/4