• Aucun résultat trouvé

LES CIRCUITS PROGRAMMABLES AVEC ORCAD

N/A
N/A
Protected

Academic year: 2022

Partager "LES CIRCUITS PROGRAMMABLES AVEC ORCAD"

Copied!
11
0
0

Texte intégral

(1)

Objectif : Etre capable de créer un fichier JDEC à partir de Orcad en utilisant le langage VHDL

1. Les circuits programmables avec OrCAD...1

1.1. Ouvrir ORCAD capture :...1

1.2. Ouvrir un projet :...1

1.3. Schéma :...2

1.4. Simulation des équations du circuit :...3

1.5. Compilation des équations VHDL :...3

1.6. Construction du programme du composant :...3

2. Les programmes VHDL (Very High Speed Integrates Circuit) :...3

2.1. Architecture d’un programme :...3

2.2. Les instructions :...4

3. Exercices d’apprentissage :...4

3.1. Démultiplexeur :...4

3.2. Schéma ...5

4. Les circuits programmables...8

4.1. Les PAL et les GAL :...8

1. LES CIRCUITS PROGRAMMABLES AVEC ORCAD

1.1. Ouvrir ORCAD capture : On va démarrer le logiciel :

• Démarrer => Programmes => OrCAD Release 9.1 => Capture.

1.2. Ouvrir un projet :

On va l’ouvrir dans le répertoire PLD de P:. On tape : 1. File => New => Project..

• Name : PLDtest.

• Cocher Programmable Logic Wizard.

• Browse => P: => PLD => OK.

2. OK.

3. Simple PLD => GAL/PAL/PROM Family => Terminer.

1

(2)

1.3. Schéma :

On va dessiner un schéma hypersimple et intégré le composant programmable.

1. File => New => Design.

2. Icône à droite : Place hierarchical block :

• Reference : B1.

• Implementation Type : faire le choix VHDL qui ôte <none>.

• Implementation name : PLDtest.

• Path and filename => Browse => P: => PLD => Nom : PLDtest (Création dans le répertoire P:\PLD\PLDtest.vhd) => Ouvrir => OK.

3. Avec le bouton de gauche de la souris tracer un rectangle, puis lâcher le bouton.

4. Icône à droite : Place port => PORTLEFT-L/CAPSYM => clic gauche.

5. Placer une sortie et renommer par double clic gauche PORTLEFT-L par S.

6. Icône à droite : Place port => PORTRIGHT-R/CAPSYM => clic gauche.

7. Placer une entrée et renommer par double clic gauche PORTRIGHT-R par E.

8. Cliquer au milieu du bloc B1 => Icône à droite : Place pin => Name E =>

Type Input => OK.

9. Clic bouton gauche pour placer l’entrée du bloc => Echap pour liberer la souris.

10.Cliquer au milieu du bloc B1 => Icône à droite : Place pin => Name S =>

Type Bidirectional => OK.

11.Clic bouton gauche pour placer la sortie du bloc => Echap pour liberer la souris.

12.Connecter Le port E sur la pin E du bloc.

13.Connecter le port S sur la pin S du bloc.

14.Menu Macro => Configure => Add => sélectionner Pldnet.bas => Ouvrir = Close.

15.Clic sur la pin E du bloc => Menu Macro => Set OrCAD PLD Net Properties Ctrl+F2 => Pin Type : IN.

16.Clic sur la pin S du bloc => Menu Macro => Set OrCAD PLD Net Properties Ctrl+F2 => Pin Type : IO.

17.Dans la fenêtre PLDtest.opj sélectionner la ligne Design Ressources => File

=>Save => Yes All => Nom : PLDtest à la place de DESIGN1.DSN =>

Enregistrer.

18.Dans la fénêtre SCHEMATIC : PAGE1 => clic gauche sur le bloc B1=>

Clic droit sur le bloc => Descend Hierarchy .

19.Entre BEGIN et END behavior ; inserer l’équation S <= E ; sur une nouvelle ligne.

20.File => Save.

21.Dans la fenêtre PLDtest.opj sélectionner la ligne Design Ressources.

(3)

1.4. Simulation des équations du circuit :

On va simuler le composant pour vérifier si l’étude des équations est correcte :

1. Depuis la fenêtre OrCAD Capture.

2. Dans la fenêtre PLDtest.opj sélectionner la ligne Design Ressources.

3. Menu Tools => Simulate => In Designe => OK.

4. Project opened. Do you want to load … => Oui.

5. Menu Stimulus => New Interactive … 6. Browse => E => OK.

• Set to 0 => Add.

• Set to 1 => Add => At 100ns.

• Set to 0 => Add => At 200ns.

7. OK.

8. Stimulus 1 Load … => Oui.

9. Menu Simulate => Run => 400 => OK.

10.Les fenêtres List1 et Wave1 indiquent l’évolution des états logiques dans le temps.

1.5. Compilation des équations VHDL :

On va compiler les équations pour les simplifier et créer la netliste : 1. Depuis la fenêtre OrCAD Capture.

2. Dans la fenêtre PLDtest.opj sélectionner la ligne Design Ressources.

3. Menu Tools => Compile => OK.

1.6. Construction du programme du composant :

On va adapter les équations au composant choisi et créer le fichier programme (Jedec) :

1. Depuis la fenêtre PrCAD Capture.

2. Dans la fenêtre PLDtest.opj sélectionner la ligne Design Ressources.

3. Menu Tools => Build => Device : GAL16V8 => OK.

4. Le fichier P:\PLD\Timed\ Pldtest.jed est le programme du composant. (peut être lu par Bloc note).

2.

LES PROGRAMMES VHDL

(VERY HIGH SPEED INTEGRATES CIRCUIT)

:

2.1. Architecture d’un programme :

On va comprendre comment est organisé un fichier programme VHDL :

-- VHDL created by OrCAD Express 3/11

Commentaire

Déclaration des bibliothèques à utiliser pour la définition des types de signaux, des fonctions arithmétiques, logiques …

(4)

Library ieee;

Use ieee.std_logic_1164.all;

Use ieee.numeric_std.all;

ENTITY test is PORT (

E : IN STD_LOGIC;

S : INOUT STD_LOGIC);

END test;

ARCHITECTURE behavior OF test IS BEGIN

S <= E ;

END behavior;

Pour obtenir les noms des entité d’entrées sorties des composants : 1. Depuis la fenêtre OrCAD Capture.

2. Menu Help => OrCAD Express => Help Topics => Index => Ecrire SPLD

=> afficher => SPLD Devices Afficher => Lattice GALs.

2.2. Les instructions :

1. Depuis la fenêtre OrCAD Capture.

2. Menu Help => OrCAD Express => OrCAD VHDL Style Guide => Ecrire ou sélectionner :

• Combinational logic pour avoir un exemple.

• Operators pour connaître tous les opérateurs.

• 3-States pour les buffers 3 états (algorithme).

• Counters pour les compteurs.

• Decoders pour le décodage (algorithme).

• Etc

3. EXERCICES D’APPRENTISSAGE :

3.1. Démultiplexeur :

En utilisant l’application Data-net 32 rechercher les entrées sorties du composant 74LS138 et les équations logiques qui les relient.

En utilisant un circuit GAL16V8 reconstituer ce composant.

Simuler le programme et fournir le fichier JEDEC.

Déclaration des entrées sorties. Cela correspond aux entrées sorties du bloc hiérarchique

Architecture du circuit final. C’est là que l’on entre les équations du programme du circuit final

(5)

Edition des stimulis :

9. Correction : 3.2. Schéma

5/11

(6)

Programme VHDL :

-- VHDL created by OrCAD Express Library ieee;

Use ieee.std_logic_1164.all;

Use ieee.numeric_std.all;

ENTITY \74LS138\ is PORT (

G1 : IN STD_LOGIC;

G2A : IN STD_LOGIC;

G2B : IN STD_LOGIC;

A : IN STD_LOGIC;

B : IN STD_LOGIC;

C : IN STD_LOGIC;

Y0 : INOUT STD_LOGIC;

Y1 : INOUT STD_LOGIC;

Y2 : INOUT STD_LOGIC;

Y3 : INOUT STD_LOGIC;

Y4 : INOUT STD_LOGIC;

Y5 : INOUT STD_LOGIC;

Y6 : INOUT STD_LOGIC;

Y7 : INOUT STD_LOGIC);

END \74LS138\;

ARCHITECTURE behavior OF \74LS138\ IS signal ab, bb, cb, e : STD_LOGIC;

BEGIN ab <= not A;

bb <= not b;

(7)

cb <= not c;

e <= G1 and (not G2A) and (not G2B);

Y0 <= not(ab and bb and cb and e);

Y1 <= not(a and bb and cb and e);

Y2 <= not(ab and b and cb and e);

Y3 <= not(a and b and cb and e);

Y4 <= not(ab and bb and c and e);

Y5 <= not(a and bb and c and e);

Y6 <= not(ab and b and c and e);

Y7 <= not(a and b and c and e);

END behavior;

Fichier JEDEC :

ˆ

OrCAD PLD EXPRESS Type: GAL16V8

*

QP20* QF2194* QV1024*

F0*

L0000 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 * L0032 11 11 11 11 11 11 10 11 11 11 11 11 11 11 11 11 * L0064 11 11 11 11 11 11 11 11 11 11 01 11 11 11 11 11 * L0096 11 11 11 11 11 11 11 11 01 11 11 11 11 11 11 11 * L0128 11 11 11 11 01 11 11 11 11 11 11 11 11 11 11 11 * L0160 11 11 01 11 11 11 11 11 11 11 11 11 11 11 11 11 * L0192 01 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 * L0256 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 * L0288 11 11 11 11 11 11 10 11 11 11 11 11 11 11 11 11 * L0320 11 11 11 11 11 11 11 11 11 11 01 11 11 11 11 11 * L0352 11 11 11 11 11 11 11 11 01 11 11 11 11 11 11 11 * L0384 11 11 11 11 01 11 11 11 11 11 11 11 11 11 11 11 * L0416 11 11 01 11 11 11 11 11 11 11 11 11 11 11 11 11 * L0448 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 * L0512 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 * L0544 11 11 11 11 11 11 10 11 11 11 11 11 11 11 11 11 * L0576 11 11 11 11 11 11 11 11 11 11 01 11 11 11 11 11 * L0608 11 11 11 11 11 11 11 11 01 11 11 11 11 11 11 11 * L0640 11 11 11 11 01 11 11 11 11 11 11 11 11 11 11 11 * L0672 11 11 10 11 11 11 11 11 11 11 11 11 11 11 11 11 * L0704 01 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 * L0768 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 * L0800 11 11 11 11 11 11 10 11 11 11 11 11 11 11 11 11 * L0832 11 11 11 11 11 11 11 11 11 11 01 11 11 11 11 11 * L0864 11 11 11 11 11 11 11 11 01 11 11 11 11 11 11 11 * L0896 11 11 11 11 01 11 11 11 11 11 11 11 11 11 11 11 * L0928 11 11 10 11 11 11 11 11 11 11 11 11 11 11 11 11 * L0960 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 * L1024 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 * L1056 11 11 11 11 11 11 10 11 11 11 11 11 11 11 11 11 * L1088 11 11 11 11 11 11 11 11 11 11 01 11 11 11 11 11 * L1120 11 11 11 11 11 11 11 11 01 11 11 11 11 11 11 11 * L1152 11 11 11 11 10 11 11 11 11 11 11 11 11 11 11 11 * L1184 11 11 01 11 11 11 11 11 11 11 11 11 11 11 11 11 *

7/11

(8)

L1216 01 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 * L1280 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 * L1312 11 11 11 11 11 11 10 11 11 11 11 11 11 11 11 11 * L1344 11 11 11 11 11 11 11 11 11 11 01 11 11 11 11 11 * L1376 11 11 11 11 11 11 11 11 01 11 11 11 11 11 11 11 * L1408 11 11 11 11 10 11 11 11 11 11 11 11 11 11 11 11 * L1440 11 11 01 11 11 11 11 11 11 11 11 11 11 11 11 11 * L1472 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 * L1536 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 * L1568 11 11 11 11 11 11 10 11 11 11 11 11 11 11 11 11 * L1600 11 11 11 11 11 11 11 11 11 11 01 11 11 11 11 11 * L1632 11 11 11 11 11 11 11 11 01 11 11 11 11 11 11 11 * L1664 11 11 11 11 10 11 11 11 11 11 11 11 11 11 11 11 * L1696 11 11 10 11 11 11 11 11 11 11 11 11 11 11 11 11 * L1728 01 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 * L1792 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 * L1824 11 11 11 11 11 11 10 11 11 11 11 11 11 11 11 11 * L1856 11 11 11 11 11 11 11 11 11 11 01 11 11 11 11 11 * L1888 11 11 11 11 11 11 11 11 01 11 11 11 11 11 11 11 * L1920 11 11 11 11 10 11 11 11 11 11 11 11 11 11 11 11 * L1952 11 11 10 11 11 11 11 11 11 11 11 11 11 11 11 11 * L1984 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 * L2048 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 * L2080 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 * L2112 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 * L2144 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 * L2176 11 11 11 11 11 11 11 11 11 *

CEEB1*

˜56CB

4. LES CIRCUITS PROGRAMMABLES

4.1. Les PAL et les GAL : Les PAL :

Les circuits PAL (Programmable Array Logic) sont des circuits de réseaux programmables. On peut y intégrer des fonctions ET, OU, PAS, bascules D … etc .

Le schéma élémentaire du circuit le plus simple :

(9)

Ce circuit élémentaire est reproduit plusieurs fois dans le composant (ici un PAL16L8).

On voit des fils, des connexions et des fonctions logiques. Un fusible court- circuite chaque croisement de ligne et de colonne et le programme consistera à laisser le court-circuit ou à faire fondre le fusible pour ôter la connexion.

Chaque entrée du circuit est relié à une colonne. Par exemple l’entrée 3 est reliée à la colonne 4 pour son état logique direct et à la colonne 5 pour son état

inverse. De même l’entrée sortie 18 est reliée à la colonne 6 pour son état logique direct et à la colonne 7 pour son état inverse. Si on veut S18 = E3 et S18 il suffit de laisser les fusibles au croisement des colonnes et lignes 4-15 et 6 14 et de faire fondre tous les autres. Comme le nombre de ces éléments est important dans les composants, on adopte un schéma condensé plus simple équivalent :

ATTENTION : on peut toujours faire fondre des fusibles, mais on ne peut pas les régénérer.

Ce sont des circuits OTP programmables une fois. (One Time Programmable)

Cette ligne représente une condensation des 8 lignes de ET, de la 8 à la 15. Les croix représentent les fusibles.

Pour notre programme précédent on laisserait seulement les croix colonnes et lignes 4-10 et 6-10. Il faut comprendre que l’on fait un ET logique en faisant des croix sur la même ligne.

Dans la réalité pour chaque fonction ET on aurait plutôt :

Mais la représentation globale du circuit serait incompréhensible.

Par exemple voici le schéma interne du circuit PAL le plus simple du marché : On voit toutes les cellules ne sont pas identiques et que l’on peut utiliser des bascules D.

Les circuits GAL :

Les circuits GAL sont généralement plus complexes et reprogrammables.

(Generic Array Logic). Ils peuvent

9/11

(10)

aussi avoir d’autre dénominations suivant les constructeurs, par exemple PALCE.

Pour la PALCE 16V8 de chez CYPRESS on a : 9

On retrouve la structure d’une PAL avec une macro-cellule appelées OLMC (Output Logic Macro Cell) devant

la sortie. L’intérieur de ces macro-cellules est aussi programmable et différent suivant les produits.

CG0 AC0 CG1 SYN CL0x AC1(n) CL1x XOR(n) 10

Pour le principe général des GAL les noms des bits internes peuvent varier : Il y a des multiplexeurs programmables qui connectent des liaisons, une bascule D, …, et ces macro permettent

de construire des compteurs, des registres à décalage, multiplexeurs etc.

Suivant le code envoyé dans ACW (Architecture Control Word) soit le mot de contrôle de l’architecture interne

de la macro-cellule. Ce mot contient AC0 et SYN pour tout le circuit et AC1(n) pour chaque macro cellule :

AC0 SYN AC1(n) Fonction

0 1 0 Sortie seule, broches 1 & 11 = entrées données 0 1 1 Entrée seule, broches 1 & 11 = entrées données 1 0 0 Sortie bascule D, broche 1 = CK & broche 11 = /OE 1 0 1 Sortie 3 états et entrée broche 1 = CK & broche 11 = /OE 1 1 1 Sortie 3 états et entrée broches 1 & 11 = entrées données

Un autre bit de commande XOR(n) pour chaque macro cellule permet d’inverser l’entrée de la bascule D.

Une série de bits UES (Use Electronic Signature) sont aussi réservé à la signature électronique du circuit. C’est

un endroit de 64 bit qui permet d’entrer un code personnel.

Une série de bits permettent aussi de contrôler les circuits logiques. C’est la colonne PTD (Product Term Disable)

Quand on programme un circuit il faut donc s’occuper : Du réseau colonnes lignes. Bits 0000 à 2047 (Fusibles).

Du mot de contrôle ACW de chaque macro cellule. Bits 2048 à 2055 (XOR(n)).

Bits 2120 à 2127 (AC1(n)).

Bit 2192 (AC0).

Bit 2193 (SYN).

De la signature du circuit. Bits 2056 à 2119 (UES).

(11)

Du mot de contrôle PTD d’autorisation de chaque ligne. Bits 2128 à 2191 (PTD).

Tous ces programmes de bits sont rapidement effectués par OrCAD Express.

11/11

Références

Documents relatifs

Dans la fenêtre « Interactions » sélectionner la chaîne X dans le premier menu déroulant puis la chaîne Y dans le second puis cliquer sur « Créer une nouvelle représentation

Les principaux sites évoqués dans la salle d’archéologie régionale du Musée d’art et d’histoire sont présentés.. Articles rédigés par les archéologues qui ont fouillé

In order to automate the quality control process of pipe’s welding joint, we present in this paper a new design of an embedded computer vision system, which is based on a

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

Vous pouvez maintenant sélectionner un composant dans Capture et en passant dans layout vous pouvez le placer sur le PCB. La fonction Minimize Connections M reconnecte les Nets

La traduction de l’arbre syntaxique en code intermédiaire est réalisée via un visiteur (TranslateVisitor), mais cette phase doit être précédée du calcul des escapes.. Le calcul

Ce qui signifie Erasable Programmable Erasable Programmable Logic Logic Device Device, c'est à dire circuit logique programmable et effasçable et qui sont aux P.A.L.. peuvent

Nous avons néanmoins précisé plus haut qu’il convenait de fournir à Scilab des matrices colonnes pour qu’il puisse effectuer des tracés dans de bonnes conditions.. Il nous faut