tutoriel pratique pour simuler un chip du type pld 22v10 avec proteus

7
Tutoriel pratique pour simuler un Chip du type PLD 22V10 avec PROTEUS L’objectif de ce tutoriel est de programmer un circuit PAL du type AM22V10 pour simuler un décodeur pour afficheur 7 segments. Les tableaux de Karnaugh seront utilisés. D’autres méthodes de programmation sont possibles. Un autre exemple sera donné plus loin. Pour pouvoir suivre le tutoriel, il sera nécessaire d’avoir les logiciels suivants: ( note : la plateforme utilisée est Windows XP.) WinCUPL téléchargeable gratuitement chez AMTEL à l’adresse http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2759 ISIS PROTEUS de la société Labcenter. Logiciel payant. Il va nous servir pour la simulation. Karnaugh Minimizer (optionnel) version de démo (Free to try) à l’adresse http://karnaugh.shuriksoft.com/ la version demo peut être utilisée pour ce tutoriel. Ce logiciel va nous aider à trouver les formules via les tableaux de Karnaugh. Ce logiciel n’est pas obligatoire si vous souhaitez trouver les formules par vous-même. Pour réaliser ce projet nous avons 4 entrées binaires (comptage de 0 à F) et 7 sorties pour les segments de l’afficheur. Nous allons remplir les tables de vérité. A,B,C,D sont les entrées et Sa, Sb, Sc, Sd, Se, Sf, Sg sont les sorties sur les segments de l’afficheur selon la figure suivante :

Upload: nourallah-aouina

Post on 04-Jan-2016

193 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Tutoriel Pratique Pour Simuler Un Chip Du Type PLD 22V10 Avec PROTEUS

Tutoriel pratique pour simuler un Chip du type PLD 22V10 avec PROTEUS

L’objectif de ce tutoriel est de programmer un circuit PAL du type AM22V10 pour simuler un décodeur pour afficheur 7 segments. Les tableaux de Karnaugh seront utilisés. D’autres méthodes de programmation sont possibles. Un autre exemple sera donné plus loin.

Pour pouvoir suivre le tutoriel, il sera nécessaire d’avoir les logiciels suivants: ( note : la plateforme utilisée est Windows XP.)

• WinCUPL téléchargeable gratuitement chez AMTEL à l’adresse http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2759

• ISIS PROTEUS de la société Labcenter. Logiciel payant. Il va nous servir pour la simulation.

• Karnaugh Minimizer (optionnel) version de démo (Free to try) à l’adresse http://karnaugh.shuriksoft.com/ la version demo peut être utilisée pour ce tutoriel. Ce logiciel va nous aider à trouver les formules via les tableaux de Karnaugh. Ce logiciel n’est pas obligatoire si vous souhaitez trouver les formules par vous-même.

Pour réaliser ce projet nous avons 4 entrées binaires (comptage de 0 à F) et 7 sorties pour les segments de l’afficheur. Nous allons remplir les tables de vérité. A,B,C,D sont les entrées et Sa, Sb, Sc, Sd, Se, Sf, Sg sont les sorties sur les segments de l’afficheur selon la figure suivante :

Page 2: Tutoriel Pratique Pour Simuler Un Chip Du Type PLD 22V10 Avec PROTEUS

Tables de vérité: D C B A Sa D C B A Sb D C B A Sc D C B A Sd 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 1 0 1 0 0 1 0 1 0 0 1 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 0 0 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 D C B A Se D C B A Sf D C B A Sg 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 0 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 1 1 0 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Avec les tableaux de Karnaugh nous obtenons les formules suivantes: Sa = C*B + |D*B + D*|A + |C*|A + |D*C*A + D*|C*|B Sb = |C*|A + |C*|B + |D*B*A + D*|B*A + |D*|B*|A Sc = |B*A + |D*A + D*|C + |D*C + |C*|B Sd = |D*B*|A + |D*|C*B + D*|C*A + C*|B*A + D*C*|A + |C*|B*|A Se = B*|A + D*B + D*C + |C*|A Sf = D*B + D*|C + C*|A + |B*|A + |D*C*|B Sg = D*B + |C*B + D*|C + C*|B*A + |D*C*|A Nous n’allons pas détailler ici la façon d’obtenir ces formules manuellement. Vous pouvez vous référer aux différents articles que vous trouverez sur le web.

Page 3: Tutoriel Pratique Pour Simuler Un Chip Du Type PLD 22V10 Avec PROTEUS

En ce qui concerne la résolution des tableaux de Karnaugh, vous pouvez utiliser le logiciel « Karnaugh Minimizer » cité plus haut. La version de démo est suffisante pour ce tutoriel. Lancez le logiciel. Via « Options » changez le nom des variables comme dans la figure ci-dessous. (dans l’ordre)

Les opérations suivantes sont à réaliser pour chaque segment. Donc 7 fois. Entrez les données pour le segment « Sa » dans la colonne Fn à l’aide du click de la souris. Utilisez pour cela les tables de vérité de la page précédente. (Sa … Sg)

Page 4: Tutoriel Pratique Pour Simuler Un Chip Du Type PLD 22V10 Avec PROTEUS

Lancez l’analyse via le bouton « Analyser » et voici notre formule sur la partie droite de la fenêtre. Via le menu outils Formules schéma… puis convertir, nous pouvons visualiser le schéma équivalent de notre formule. (image de droite)

Vous pouvez obtenir plus d’information sur la résolution du tableau via le bouton « Rapport »

Faites la manipulation pour toutes les autres tables de vérités.

Page 5: Tutoriel Pratique Pour Simuler Un Chip Du Type PLD 22V10 Avec PROTEUS

Nous voilà maintenant en possession de nos 7 formules. Il nous reste encore à les utiliser. Lancez le programme WinCUPL Via Options WinCUPL onglet General, Entrez le chemin pour le projet. Entrez File New Project puis saisissez les informations sur le projet.

Puis entrez le nombre d’entrées. Dans notre cas répondez 4. Pour le nombre de sorties 7. Enfin laissez pinnodess à 0. Vous pouvez maintenant passer à la saisie du programme.

Nous devons définir les pins du chip qui seront utilisées comme entrées (input) associées à une variable. Définissez également les sorties (output). Vous pouvez constater que dans les formules le signe NON « | » devient « ! » que le ET « * » devient « & » enfin le OU « + » devient « # ».

Page 6: Tutoriel Pratique Pour Simuler Un Chip Du Type PLD 22V10 Avec PROTEUS

Nous pouvons lancer maintenant la compilation. Via menu Run Device Dependent Compile. La compilation doit se terminer sans erreur. « Compilation successfull » Nous devons maintenant trouver un fichier .jed qui servira à piloter notre 22v10 sous Proteus. Fermez WinCUPL et lancez Proteus. Saisir le schéma ci-dessous :

Nous utilisons 4 résistances de 10k, 7 résistances de 330W, 1 afficheur 7 segments, un bloc de 4 interrupteurs et un circuit PAL AM22V10. Editez (click droit sur le chip) les propriétés du 22v10 et dans la zone « JEDEC Fuse Map File » donnez le chemin qui pointe sur le fichier .jed créé précédemment. Testez le fonctionnement de l’ensemble en lançant la simulation PROTEUS et en agissant sur les 4 interrupteurs vous devriez voir la traduction sur l’afficheur du code binaire entré avec les interrupteurs.

Page 7: Tutoriel Pratique Pour Simuler Un Chip Du Type PLD 22V10 Avec PROTEUS

Comme indiqué au début du tutoriel, il y a plusieurs possibilités d’aborder la programmation de cet exemple. Nous pouvons utiliser WinCUPL sans passer par les tableaux de Karnaugh. Utilisation d’un tableau qui contient le binaire correspondant aux segments. Voici un autre exemple de programme : Name 7Digits2 ; PartNo 00 ; Date 06.06.2009 ; Revision 01 ; Designer Gerard ; Company Private ; Assembly None ; Location Geneva; Device g22v10 ; /* *************** INPUT PINS **********************/ PIN [2..5] = [I0..I3] ; /* *************** OUTPUT PINS *********************/ PIN [17..23] = [Q0..Q6] ; FIELD input = [I3..I0] ; FIELD output = [Q6..Q0] ; TABLE input => output { /* seg abcdefg */ 0 => 'b'1111110 ; 1 => 'b'0110000 ; 2 => 'b'1101101 ; 3 => 'b'1111001 ; 4 => 'b'0110011 ; 5 => 'b'1011011 ; 6 => 'b'1011111 ; 7 => 'b'1110000 ; 8 => 'b'1111111 ; 9 => 'b'1111011 ; A => 'b'1110111 ; B => 'b'0011111 ; C => 'b'1001110 ; D => 'b'0111101 ; E => 'b'1001111 ; F => 'b'1000111 ; }

That’s all. GBG le 06 juin 2009 [email protected]