TP: Mise en oeuvre de la logique séquentielle sur circuit FPGA

Avertissement: ce TP utilise les outils étudiés dans le TP1

Squelette pour la maquette DE1-SoC:

Objectifs de la Séance:

Les objectifs de la séance sont de se familiariser avec les systèmes séquentiels synchrones. La séance consiste en une série de d'exercices simples mettant en oeuvre un codage dans le langage SystemVerilog et un test sur maquette.

EXERCICES 

  • Pour ces exercices vous utiliserez l'archive de projet proposée. 
  • Vous afficherez les résultats des différents compteurs en réemployant les décodeurs 7-segments de la séance "combinatoire"

A/ Compteurs

  • construire un système qui compte (+1) à chaque coup d'horloge (max 255 puis reboucle à 0)
  • ajouter la possibilité de le remettre à zéro de façon
    • asynchrone
    • synchrone
  • ajouter deux entrées permettant de le configurer :
    • en mode comptage (+1)
    • ou décomptage (-1)
    • ou stoppé.
    •  
  • ajouter au compteur un dispositif pour qu'il ne compte que jusqu'à 13
    • arrivé à 13, il se bloque
    • arrivé à 13, il repart à 0

B/ Réaliser un détecteur de front montant

Vous avez déjà réalisé cet exercice en TD. Il s'agit de détecter d'un cycle à l'autre de l'horloge, q'un signal  (qui n'est pas une horloge) est passé de l'état 0 à l'état 1 ?

  • vous pourrez utiliser les boutons poussoir de la maquette signal key[3] par exemple) pour générer le signal à détecter.
  • attention ces boutons poussoirs ont une polarité inversée: le signal passe à 0 si on appuie sur le bouton.

C/ Réaliser un diviseur d'horloge

Il s'agit de réaliser un dispositif qui génère un signal égal à un durant un cycle d'horloge tous les N cycles d'horloge. On traitera d'abord le cas ou N est une constante, puis le cas où N doit pouvoir être réglable.

  • Vous pouvez utiliser les commutateurs sw[3:0] pour définir le facteur de division.

D/ K2000

Réaliser un affichage à la "K2000" sur les LEDS de la maquette.

E/ Générateur PWM

Piloter l'éclairage d'une LED en la pilotant par un signal d'horloge d'une fréquence approximative de 100Hz dont on fait varier le rapport cyclique. La durée moyenne d'activation de la LED déterminera l'intensité perçue.

F/ Super K2000 et PWM

Réaliser une trainée lumineuse derrière les LEDS en utilisant des générateurs PWM...(extinction progressive des LEDS de la trainée)

Fichier attachéTaille
Binary Data bac_a_sable_sync.tbz3.58 Ko