Académique Documents
Professionnel Documents
Culture Documents
TP 05
Pour cela, dans une première partie nous présentons des généralités sur les circuits
logiques programmables. Ensuite, dans une seconde partie, nous présentons d’une part la
cible technologique sur laquelle nous réaliserons nos circuits logiques : le FPGA et la carte
DE1 d’Altera et d’autre part le développement par le logiciel Quartus qui permet de passer
d’une description du circuit que l’on souhaite réaliser jusqu’à son implantation sur le
FPGA. Les exercices de préparation de ce TP font l’objet d’une troisième partie.
Nous rappelons les commandes Quartus utiles ainsi que le brochage des interrupteurs,
boutons poussoirs et leds en annexe.
FPGA : Un FPGA est un composant logique programmable. La brique de base des FPGA
de la société Altera est le Logic Element (LE). Un LE est un élément configurable qui permet
de réaliser des opérations de logique combinatoire et/ou séquentielle élémentaires.
II - La carte DE1
Carte DE1
Dans ce TP nous allons implanter nos circuits sur la carte DE1 de la société
ALTERA. Cette carte DE1 dispose d’un FPGA Cyclone II et de nombreux
périphériques. Dans ce TP nous n’utiliserons qu’une infime partie des possibilités offertes
par la carte. Seuls les leds, les boutons poussoirs et les interrupteurs seront utilisés. Le
circuit le plus complexe de ce TP n’utilise que 3 LE parmi les 18752 disponibles sur le
FPGA.
Quartus permet d’implanter des circuits numériques dans les FPGA qu’elle produit. Le
flot de développement proposé dans cet outil comprend les étapes suivantes :
3 - Placement/routage
Le placement routage consiste à définir l’emplacement sur le composant cible les broches
d’entrées/sorties du FPGA. Le brochage du FPGA de la carte DE1 avec ses périphériques
(leds, interrupteurs, . . .) étant figé, il n’est pas envisageable de laisser le routeur décider de
leur routage : il est nécessaire de fixer la correspondance entre les broches d’entrées/sorties du
FPGA et les signaux d’entrées/sorties, cette étape est appelée assignation.
souvent appelés bitstream. Deux types de fichiers sont générés. (1) un fichier .sof,
acronyme de SRAM Object File, qui permet de programmer la SRAM du FPGA. Ce type
de programmation est volatile : Il est à refaire à chaque mise en route du FPGA. (2) un
fichier .pof, acronyme de Programmer Object Files, qui est un fichier qui permet de
stocker le fichier de configuration de la SRAM du FPGA dans une mémoire EEPROM. Le
contenu de cette mémoire est lu à chaque démarrage de la carte pour programmer le
FPGA, ce qui permet de le reprogrammer automatiquement à chaque démarrage.
Une fois les fichiers de programmation générés, il est possible de programmer la carte et
vérifier le comportement du circuit dans son environnement réel. Dans notre cas, nous
programmerons la carte avec le fichier sof.
Multiplexeur à 4 entrées
library IEEE;
use IEEE.std_logic_1164.all;
entity multiplexeur is
port(
SW:in std_logic_vector (9 downto 0);
KEY :in std_logic_vector(3 downto 0);
LEDR :out std_logic_vector(9 downto 0);
LEDG :out std_logic_vector(7 downto 0));
end multiplexeur;
architecture multiplexeur of multiplexeur is
begin
process (SW)
begin
case SW(1 downto 0) is
when "00" =>LEDG(0)<=SW(6);
when "01" =>LEDG(0)<=SW(7);
when "10" =>LEDG(0)<=SW(8);
when "11" =>LEDG(0)<=SW(9);
when others =>LEDG(0)<=SW(6);
end case;
end process;
end multiplexeur;
Décodeur 1 parmi 4
library IEEE;
use IEEE.std_logic_1164.all;
entity DECODEUR is
port(
SW:in std_logic_vector (9 downto 0);
KEY :in std_logic_vector(3 downto 0);
LEDR :out std_logic_vector(9 downto 0);
LEDG :out std_logic_vector(3 downto 0));
end DECODEUR;
architecture DECODEUR of DECODEUR is
begin
process (SW)
begin
case SW(1 downto 0) is
when "00" =>LEDG<="0001";
when "01" =>LEDG<="0010";
when "10" =>LEDG<="0100";
when "11" =>LEDG<="1000";
when others =>LEDG<="0000";
end case;
end process;
end DECODEUR;
La saisie des schémas des circuits doit comporter l’affectation des entrées et
des sorties par le nom qui correspond à chaque Interrupteur SW[i], bouton KEY[i], LEDR[i]
ou LEDG[i] (voir tableau en annexe)
AND à 2 entrées
NOR à 2 entrées
OU EXCLUSIF
BASCULE T
VI - Travail Demandé
Annexe
commandes Quartus
- Création d’un projet : Créer un répertoire spécifique sur votre disque puis File / New
Project Wizard... seul le composant cible est à modifier, il s’agit d’un Cyclone II
EPC2C20F484C7, tout le reste peut garder les valeurs par défaut
- Ouverture d’un projet existant : depuis un explorateur de fichier double clic sur le
fichier d’extension qpf, depuis Quartus File / Open Project
- Création d’une page de schéma : File / New sélectionner : Block Diagram/Schematic File
- Création d’une page d’édition de fichier VHDL : File / New sélectionner : VHDL File
- dans la page de schéma Ajout d’un symbole : double clic sur feuille schéma, puis
chercher le symbole dans les bibliothèques
- Transformation d’un schéma en symbole : File / Create Update / Create Symbol Files for
- Ajout de signaux dans un chronogramme : dans la feuille waveform : clic droit : Insert /
Insert Node or Bus puis case Node Finder, filter input, output, list fait apparaître les
signaux.
Brochage du FPGA