Programmer en ABEL et en VHDL avec IspLever · Compléter celui-ci comme vu en cours et lancer la...
Transcript of Programmer en ABEL et en VHDL avec IspLever · Compléter celui-ci comme vu en cours et lancer la...
TP VHDL avec IspLever
HORTOLLAND C. TP_VHDL_IspLever_SUJET_2015_2016.docx 1/7
Programmer en ABEL et en VHDL avec IspLever (Very high scale integrated circuits Hardware Description Language)
Objectifs de cette séance :
Tester un fichier JEDEC dans une simulation sur le logiciel PROTEUS ISIS. Compléter un fichier VHDL sur le logiciel ispLEVER Classic afin d’effectuer
un décodage binaire / afficheur 7 segments. Vérifier le bon fonctionnement du fichier JEDEC en effectuant une simulation
sur le logiciel PROTEUS ISIS. Transposer ce travail à une structure pilotée par un autre modèle de CPLD
pilotant d’autres afficheurs. Programmer et vérifier le bon fonctionnement de la carte.
Compétences visées : Compétence Description C3.9 : Valider une faction à partir d’une maquette réelle
SF39 : Tester la conformité d’une fonction sur un système de prototypage rapide
Savoirs visés : Savoir Description S9.2 Prototypage rapide avec des outils adaptés Composants programmables numériques
Pré-requis :
Notions sur les circuits logiques programmable et leur programmation. Notions sur le langage VHDL.
Documents nécessaires :
Aide à l’utilisation d’IspLever Schéma structurel de la carte d’affichage
Equipement nécessaire :
Ordinateur disposant des logiciels ispLever Classic 1.6 et PROTEUS ISIS. Site : « TP VHDL » sur lequel se trouvent tous les documents de travail. Une carte d’affichage 2 digits pilotée par CPLD et programmable à partir d’un
PC disposant de ispLever Classic 1.2 Une maquette pour le groupe.
Conditions de réalisation : Travail par binôme. Durée : 2 heures. Compte-rendu écrit remis en fin de séance.
Critères d'évaluation :
Pertinence des réponses fournies. Autonomie de travail. Présentation du compte-rendu.
NOMS :
TP VHDL avec IspLever
HORTOLLAND C. TP_VHDL_IspLever_SUJET_2015_2016.docx 2/7
Créer un fichier JEDEC à partir d’un fichier ABEL et valider son
fonctionnement sur Proteus ISIS
Manipulations à faire simultanément avec l’enseignant.
1. Depuis le site du TP, télécharger sur votre PC le schéma structurel simulant
distributeur de boisson « Distributeur_boissons.DSN » et le projet archivé
« Projet_ispLEVER_ABEL.zip ». Les stocker dans un sous-répertoire à votre nom et
désarchiver le fichier.
2. Lancer le logiciel IspLever et ouvrir le projet « Decodeur_ABEL.syn ».
3. Par défaut c’est la solution avec équations qui se trouve dans le projet. Lancer la
création du fichier JEDEC (.jed)
4. Ouvrir le schéma avec Proteus ISIS.
5. Dans les propriétés du CPLD U1 désigner le fichier JEDEC (.jed) comme devant être
utilisé dans la simulation.
6. Lancer la simulation et agir sur les boutons pour vérifier le bon fonctionnement des
ampoules simulant les actionneurs, par rapport au principe de fonctionnement vu en
cours. Stopper la simulation.
7. Dans le projet remplacer le fichier « dec_abel_equations.abl » par
« dec_abel_distributeur_boissons.abl ». Compléter celui-ci comme vu en cours et
lancer la création du fichier JEDEC.
8. Sur Proteus ISIS lancer une nouvelle simulation avec le fichier modifié.
Faire constater
TP VHDL avec IspLever
HORTOLLAND C. TP_VHDL_IspLever_SUJET_2015_2016.docx 3/7
Complément sur les LED et afficheurs à anode et cathode commune.
TP VHDL avec IspLever
HORTOLLAND C. TP_VHDL_IspLever_SUJET_2015_2016.docx 4/7
Programmation et simulation d’un décodeur binaire / 7 segments
Vous disposez du fichier « Decodeur_16V8_Cathode_commune.DSN » figurant ci-dessous :
On souhaite que pour chaque valeur entrée sur DSW1 soit affiché l’équivalent
hexadécimal de cette valeur.
Une illustration vidéo du fonctionnement figure sur le site du TP.
1. Lancer le logiciel ispLEVER et ouvrir le projet « Decodeur_bin_7seg »
2. Quelle est la référence du circuit logique programmable sélectionné dans le projet ?
3. Vous disposez sur le Document ANNEXE 2 du contenu du fichier
« dec_Cathode_commune.vhd », complétez ce Document ANNEXE 2 puis le fichier
correspondant sur votre ordinateur.
4. Créez le fichier JEDEC.
5. Sous PROTEUS ISIS ouvrir le schéma ci-dessus, et dans les propriétés de U1,
sélectionner le fichier « decodeur_bin_7seg.jed » que vous venez de créer avec
ispLEVER.
6. Lancez la simulation.
Faire constater le bon fonctionnement.
DSW1 Afficheur
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F
CLK/I01
I12
I23
I34
I45
I56
I67
I78
I89
OE/I911
IO019
IO118
IO217
IO316
IO415
IO514
IO613
IO712
U1
AM16V8
R1 220R
R2 220R
R3 220R
R4 220R
R5 220R
R6 220R
R7 220R
R910k
R1010k
R1110k
VDD
OFF
ON
1 2 3 4
8 7 6 5
DSW1DIPSW_4
R1210k
TP VHDL avec IspLever
HORTOLLAND C. TP_VHDL_IspLever_SUJET_2015_2016.docx 5/7
Programmation et mise en œuvre du décodeur avec un circuit ispLSI1016
On souhaite mettre en œuvre le décodage précédent sur une carte disposant :
- d’un CPLD ispLSI1016
- d’afficheurs à anode commune
- d’un dipswitches à 8 interrupteurs
Le schéma structurel de la carte figure sur le Document ANNEXE 1, le schéma
d’implantation est reproduit ci-dessous.
Les entrées et sorties seront disposées comme ci-dessous sur la carte :
- La valeur est entrée par les dipswitches XA, XB, XC et XD
- L’affichage se fait sur le digit de droite.
1. Identifiez sur la carte la référence du CPLD utilisé :
2. Modifiez en conséquence le référence du circuit dans votre projet.
3. Sauvegardez le fichier « dec_Cathode_commune.vhd » sous le nom
« dec_Anode_commune_1016.vhd », fichier que vous importerez dans votre projet à la
place du précédent.
4. Complétez le Document ANNEXE 2, puis le fichier correspondant sur votre ordinateur.
5. Créez le fichier JEDEC.
6. Ouvrir le logiciel LSC IspVM et le paramétrer pour programmer le circuit.
7. Vérifiez le bon fonctionnement.
Faire constater.
TP VHDL avec IspLever
HORTOLLAND C. TP_VHDL_IspLever_SUJET_2015_2016.docx 7/7
Document ANNEXE 2
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
-- décodeur combinatoire Binaire 4 bits --> Afficheur 7 seg Cathode Commune
entity decodeur is
port( Din : in std_logic_vector(3 downto 0);
Qut: out std_logic_vector(6 downto 0) );
attribute loc : string;
attribute loc of Din : signal is "p2 p3 p4 p5";
attribute loc of Qut : signal is
end;
architecture decoder of decodeur is
begin process (Din)
begin
case Din is
when "0000" => Qut <= "0111111";
when "0001" =>
when "0010" =>
when "0011" =>
when "0100" =>
when "0101" =>
when "0110" =>
when "0111" =>
when "1000" =>
when "1001" =>
when "1010" =>
when "1011" =>
when "1100" =>
when "1101" =>
when "1110" =>
when "1111" =>
when others =>
end case;
end process;
end decoder;
Fichier : dec_Cathode_commune.vhd
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
-- décodeur combinatoire Binaire 4 bits --> Afficheur 7 seg Anode Commune
entity decodeur is
port( Din : in std_logic_vector(3 downto 0);
Qut: out std_logic_vector(6 downto 0) );
attribute loc : string;
attribute loc of Din : signal is
attribute loc of Qut : signal is
end;
architecture decoder of decodeur is
begin process (Din)
begin
case Din is
when "0000" =>
when "0001" =>
when "0010" =>
when "0011" =>
when "0100" =>
when "0101" =>
when "0110" =>
when "0111" =>
when "1000" =>
when "1001" =>
when "1010" =>
when "1011" =>
when "1100" =>
when "1101" =>
when "1110" =>
when "1111" =>
when others =>
end case;
end process;
end decoder;
Fichier : dec_Anode_commune_1016.vhd