programmer en abel et en vhdl avec isplever · compléter celui-ci comme vu en cours et lancer la...

7
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 :

Upload: vucong

Post on 12-Sep-2018

250 views

Category:

Documents


4 download

TRANSCRIPT

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 6/7

Document ANNEXE 1

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