QuartusII design

Transcription

QuartusII design
LSN/hepia/HESSO
1
QuartusII design
Cyclone
Cyclone
Compteur
Quartus II - VHDL
Objectif
Moyens
Préliminaire
Théorie
Matériel
Durée
1
Etre capable de réaliser et simuler avec Quartus II un compteur en VHDL
Logiciels QuartusII
Logique de base, architecture de FPGA
FPGA
Quartus II
2 périodes
Introduction
Le langage VHDL permet de décrire de façon relativement simple le fonctionnement de machine
d’états. Dans ce laboratoire, un compteur par 60 est réalisé (0..59 en BCD). A partir de là une variante
en compteur par 24 (0..23 en BCD) est également implémenté.
Au final une horloge HH :MM :SS est assemblée. Pour les plus rapides, elle peut facilement être
complétée par les dixièmes, centièmes et millièmes de seconde.
Une horloge de base à 24MHz est fournie. Un module initial prédiviseur devra ramener l’horloge de
24MHz à un signal de validation d’une durée d’un clock à 24MHz et de période d’une seconde (ou 1
milliseconde).
2
Développements à réaliser
Pour réaliser un module VHDL, il faut définir son entité, puis son architecture. Le tout sera décrit dans
UN fichier avec l’extension .vhd. Les librairies à utiliser sont indiquées :
LIBRARY ieee ;
USE ieee.std_logic_1164.all ;
USE ieee.std_logic_unsigned.all
entity Cnt60 is
port (
Clk
nReset
Enable
Q
Detect_59
);
2.1
:
:
:
:
:
;
in std_logic ;
in std_logic;
in std_logic;
out std_logic_vector(7 downto 0);
out std_logic
Compteur par 60
Le compteur initial est un compteur par 60 avec sortie sur 8 bits en BCD (2x4 bits). Le signal Enable
autorise le compteur à s’incrémenter lorsque Clk a un flanc montant. Le reset actif à ‘0’ (nReset) met
le compteur à « 0000 0000 ». La sortie Detect_59 s’active lorsque le compteur détecte l’état « 0101
1001 ».
Question 1 Compteur BCD 0..59
1.1
1.2
1.3
1.4
Définissez les états de votre compteur
Comment générer l’état Detect_59 ?
Comment utiliser Enable ?
Ecrivez l’architecture de votre compteur en VHDL
R.BeuchatW:\Labo\Documents\_Laboratoire_SysNum\Enonces_Labo-Cours\Labo_Quartus_Robot_Cyclone\Labo_FPGA_VHDL_Counter_0_0.doc
Créé le 24/09/08
Modifié le 29/09/10 09:09
Impression le 21/09/11
Version [0.0]
LSN/hepia/HESSO
Laboratoire de Systèmes Numériques
2
QuartusII-VHDL_cnt
Manipulation 1 Implémentation compteur par 60 en VHDL
¾
¾
¾
2.2
A l’aide de QuartusII, saisissez votre design en VHDL File Æ New Æ VHDL File
Compile
Simulate
Prédiviseur
Un compteur appelé Prediviseur est à réaliser. Le factuer de division est à fournir par un paramètre
generic Divider, mis par défaut à 10 000 000. Il génère une pulse de largeur 1 Clk toutes les Divider
Clk.
2.3
Compteurs par 23
Modifier votre module pour réaliser un Compteur de 00..23.
2.4
Horloge H :M :S
Assemblez l’ensemble de vous modules pour réaliser un système d’horloge Heure, Minute, Seconde.
R.BeuchatW:\Labo\Documents\_Laboratoire_SysNum\Enonces_Labo-Cours\Labo_Quartus_Robot_Cyclone\Labo_FPGA_VHDL_Counter_0_0.doc
LSN/hepia/HESSO
Laboratoire de Systèmes Numériques
3
QuartusII-VHDL_cnt
Réponse 1
1.1 Réalisez le compteur par 60 en VHDL, entité et architecture.
R.BeuchatW:\Labo\Documents\_Laboratoire_SysNum\Enonces_Labo-Cours\Labo_Quartus_Robot_Cyclone\Labo_FPGA_VHDL_Counter_0_0.doc