paul goossens forgez votre propre pucescan78.free.fr/elektor/elektor 2004...

6
La conception d’un montage a des aspects moins enthousiasmants que d’autres : souder, recherche des brochages des circuits intégrés et mise en place d’une pléthore de câbles. Forgez votre propre puce Prototypes à CPLDs - Partie 1 elektor - 5/2004 8 Paul Goossens

Upload: others

Post on 09-Apr-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Paul Goossens Forgez votre propre pucescan78.free.fr/Elektor/Elektor 2004 FR/f045008.pdfenthousiasmants que d’autres : souder, recherche des brochages des circuits intégrés et

La conception d’un montage a des aspects moinsenthousiasmants que d’autres : souder, recherche desbrochages des circuits intégrés et mise en place d’unepléthore de câbles.

Forgez votrepropre pucePrototypes à CPLDs - Partie 1

elektor - 5/20048

Paul Goossens

Page 2: Paul Goossens Forgez votre propre pucescan78.free.fr/Elektor/Elektor 2004 FR/f045008.pdfenthousiasmants que d’autres : souder, recherche des brochages des circuits intégrés et

Tout ceci n’est plus nécessaire aujour-d’hui vu la possibilité que nous avonsde programmer par nous-même touteune électronique numérique dans unseul et unique CPLD. La carte d’expéri-mentation pour CPLD décrite ici cons-titue un excellent point de départ pourse lancer dans l’aventure d’une créa-tion par le biais du clavier !Pour nombre de personnes, l’idée des’essayer à la logique numérique estassociée à l’image d’une platine d’ex-périmentation à pastilles encombréede circuits intégrés interconnectés parune jungle de fils. Tous ceux d’entrenos lecteurs qui ont jamais réalisé unmontage de cette façon sont cons-cients du nombre d’heures investiesdans une telle opération, sans mêmeparler des modifications à effectuer aucas où le montage ne fonctionneraitpas du premier coup.Il est possible de remplacer cettelégion de puces de logique numériquepar un circuit CPLD. Ce type de com-posant intègre une quantité impres-sionnante de modules logique qu’il estpossible, par programmation, d’inter-connecter de toutes les façons imagi-nables. Un tel circuit est en fait la ver-sion moderne d’une carte d’expérimen-tation parsemée de circuits intégrés.Au lieu d’avoir à souder nombre de filsquasi-invisibles, le concepteur-sorcierpourra concevoir le circuit assis confor-tablement devant son PC et, enquelques clics de souris, le program-mer dans le circuit intégré.Énorme gain de temps évident; iln’est de plus nécessaire de gribouillersur papier les modifications effec-tuées après-coup. Le circuit est eneffet dessiné (ou décrit, nous revien-drons à cet aspect de choses) sur lePC, le programme se chargeant devoir comment intégrer ce projet dansla puce du CPLD.

5/2004 - elektor 9

6

6

INPUT/GCLRn

6 Output Enables 6 Output Enables

16

36 36

16

I/OControlBlock

LAB C LAB D

I/OControlBlock

6

030385 - 1 - 12

16

36 36

16

I/OControlBlock

LAB A LAB B

I/OControlBlock

6

6 to16

INPUT/GCLK1

INPUT/OE2/GCLK2

INPUT/OE1

6 to 16 I/O Pins

6 to 16 I/O Pins

6 to 16 I/O Pins

6 to 16 I/O Pins

6 to16

6 to16

6 to16

6 to16

6 to16

6 to16

6 to16

6 to166 to16

6 to166 to16

Macrocells1 to 16

Macrocells17 to 32

Macrocells33 to 48

Macrocells49 to 64

PIA

Figure 1. Structure globale des CPLDs MAX7000.

Product-TerTT m

SelectMatrix

36 Signalsfrom PIA

16 ExpanderProduct TerTT ms

Logic Array

Parallel LogicExpanders(from othermacrocells)

Shared LogicExpanders

ClearSelect

GlobalClear

GlobalClocks

Clock/ Enable Select

2

PRN

CLRN

D/T Q

ENA

RegisterBypass

To I/O ControlBlock

to PIA

ProgrammableRegister

FromI/O pin

Fast Input Select

VCC

030385 - 1 - 13

Figure 2. Structure d’une macro-cellule de MAX7000.

– CPLD du type EPM7128

– Interface JTAG

– Toutes les lignes d’E/S disponibles sur embases

– Lignes d’E/S additionnelles déconnectables parcavaliers

– Affichage 7 segments

– 8 LED

– 8 interrupteurs avec circuit anti-rebond

– Alimentation embarquée

– Format Eurocarte

– Environnement de développement sophistiquédisponible gratuitement chez Altera

Caractéristiques intéressantes

Page 3: Paul Goossens Forgez votre propre pucescan78.free.fr/Elektor/Elektor 2004 FR/f045008.pdfenthousiasmants que d’autres : souder, recherche des brochages des circuits intégrés et

elektor - 5/200410

+5

V

R1

10k

R2

2

100Ω

R2

3

10k

R2

0

10k

R2

1

10

0k

X1

10

,00

0M

Hz

C1

3

22

p

C1

4

22

p

C1

2

10µ

C7

22µ

C4

10

0n

C3

10

0n

C5

10

0n

C6

10

0n

12

34

56

78

910

K2

C1

1

10

0n

+5

V

TD

I

TM

S

TC

K

TD

O

OE

2(C

GL

K2)

I/O(T

DI)

I/O(T

MS

)

I/O(T

CK

)

I/O(T

DO

)

EP

M7

12

8

VCCINT

VCCINT

VCCIO

VCCIO

VCCIO

VCCIO

VCCIO

VCCIO

GCLK1

GC

LR

n

IC1

I/O

GND

GND

GND

GND

GND

GND

GND

GND

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

OE

1

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

35

13

26

38

43

53

66

78

19

32

42

47

59

72

82

11

10

79

81

83

30

33

14

23

62

71

84

34

37

36

41

40

45

44

49

48

51

50

54

52

56

55

58

57

60

61

64

63

68

65

70

67

74

69

75

73

77

76

12

15

16

17

18

20

21

22

24

25

27

28

29

31

39

46

80 1

7

3

98654

2

78

05

IC2

D9

1N

40

01

C1

10µ

C2

10

+5

V

JTA

G

D1

D2

D3

D4

D5

D6

D7

D8

R2

1k

R3

1k

R4

1k

R5

1k

R6

1k

R7

1k

R8

1k

R9

1k

R1

0

10k

IO1

1

IO1

0

IO9

IO8

IO6

IO5

GC

LR

N

IO4

IO1

2

IO1

5

IO1

6

IO1

7

IO1

8

IO2

0

IO2

1

IO2

2

IO2

4

IO2

5

IO3

3

IO3

0

IO2

7

IO2

8

IO2

9

IO3

1

IO3

9

IO4

6

IO8

0

IO3

4

IO3

5

IO3

6

IO3

7

IO4

0

IO4

1

IO4

4

IO4

5

IO4

8

IO4

9

IO5

0

IO5

1

IO5

2

IO5

4

IO5

5

IO5

6

IO5

7

IO5

8

IO6

1

IO6

0

IO6

3

IO6

4

IO6

5

IO6

8

IO6

7

IO7

0

IO6

9

IO7

4

IO7

3

IO7

5

IO7

6

IO7

7

OE

1

S1

S2

S3

S4

S5

S6

S7

S8

R1

98

x 1

0k

1

23

45

67

89

R2

48

x 1

0k

1

23

45

67

89

OE

2

K3

10

11

12

13

14

15

16

17

18

19

20

12

34

56

78

9

K4

10

11

12

13

14

15

16

17

18

19

20

12

34

56

78

9

K5

10

11

12

13

14

15

16

17

18

19

20

12

34

56

78

9

K6

10

11

12

13

14

15

16

17

18

19

20

12

34

56

78

9

10

0n

C8

10

0n

C9

10

0n

C1

0

10

0n

C1

51

00

n

C1

6

10

0n

C1

7

10

0n

C1

8

10

0n

C1

9

D1

1

R2

5

1kPO

WE

R

10

0n

C2

0

R2

6

10k

IO2

2

IO2

1IO

20

IO1

8IO

17

IO1

6IO

15

IO1

2IO

11

IO1

0IO

9

IO8

IO6

IO5

IO4

GC

LR

N

OE

1IO

80

IO7

7IO

76

IO7

5IO

74

IO7

3

IO7

0

IO6

9IO

68

IO6

7IO

65

IO6

4IO

63

IO6

3

IO6

4

IO6

5

IO6

7

IO6

8

IO6

9

IO7

0

IO7

3

OE

2

IO6

1

IO6

0IO

58

IO5

7IO

56

IO5

5IO

54

IO5

2IO

51

IO5

0IO

49

IO4

8IO

46

IO4

5IO

44

IO6

1

IO6

0

IO5

8

IO5

7

IO5

6

IO5

5

IO5

4

IO5

2

IO4

1

IO4

0IO

39

IO3

7IO

36

IO3

5IO

34

IO3

3

IO3

1

IO3

0IO

29

IO2

8IO

27

IO2

5IO

24

IO2

4

IO2

5

IO2

7

IO2

8

IO2

9

IO3

0

IO3

1

IO3

3

9V0

74

HC

T5

63

IC3

12

13

14

15

16

17 18

19

EN

11

C1

1D234789 56

1

74

HC

T5

63

IC4

12

13

14

15

16

17 18

19

EN

11

C1

1D234789 56

1

+5

V

+5

V

+5

V

JP

1

K1

16

V

HD

11

31

O

LD

1

10

dp

CA

CA

7a

6b

4c

2d

1e

9f g

38

5

R1

76

80

Ω

R1

16

80

Ω

R1

26

80

Ω

R1

36

80

Ω

R1

46

80

Ω

R1

56

80

ΩR

16

68

R1

86

80

Ω

74

HC

T5

63

IC9

12

13

14

15

16

17 18

19

EN

11

C1

1D234789 56

1

IC5

.A

3C

1

R2

D

4

S

56

IC5

.B

11

C

13

R1

2D

10

S

98

IC6

.A

3C

1

R2

D

4

S

56

IC6

.B

11

C

13

R1

2D

10

S

98

IC7

.A

3C

1

R2

D

4

S

56

IC7

.B

11

C

13

R1

2D

10

S

98

IC8

.A

3C

1

R2

D

4

S

56

IC8

.B

11

C

13

R1

2D

10

S

98

JP

2

+5

V

+5

V

+5

V

16

V1

6V

IC3

20

10

IC4

20

10

IC5

147

IC6

147

IC7

147

IC8

147

+5

V+

5V

+5

V

+5

V

+5

V

+5

V

+5

V+

5V

+5

V

IC9

20

10

+5

V

IC5

, IC6

, IC7

, IC8

= 7

4H

CT

74

S1

... S8

= F

AR

NE

LL

31

2-6

29

16

V

X1

=

X1

= 1

0.0

00

MH

z

03

03

85

- 1 - 1

1

Figure 3. L’électronique de la carte d’expérimentation se compose, outre du CPLD, de quelques indicateurs, D1 à D8 et LD1, etd’interrupteurs avec anti-rebond câblé S1 à S8, IC5 à IC8.

Page 4: Paul Goossens Forgez votre propre pucescan78.free.fr/Elektor/Elektor 2004 FR/f045008.pdfenthousiasmants que d’autres : souder, recherche des brochages des circuits intégrés et

Structure d’un CPLD

Le coeur de cette carte d’expérimenta-tion est une CPLD de la familleMAX7000 d’Altera. On voit, en figure 1,la structure ce type de CPLDs. Nousdécouvrons, en haut à gauche, les4 entrées spéciales des CPLDs. Il s’agitde signaux connectés aux macro-cellu-les de la puce qu’ils remplissent de

façon optimale la fonction qui leur estattribuée (CLK, OE ou CLEAR).Les entrées et les sorties des diversesmacro-cellules sont interconnectées enfonction des besoins par le PIA (Pro-grammable Interconnect Array). De plus,certaines entrées et sorties sont reliéesaux différents blocs de commande d’E/S(I/O Control Block). Ils ont pour fonctiond’interconnecter les signaux internes

aux lignes d’E/S du CPLD.On découvre, au centre de la figure 1,4 LAB (Logic Array Block). Ce sont euxqui intègrent en fait la logique pro-grammable. Chaque LAB comporte16 macro-cellules.La série MAX7000 comporte plusieursversions de CPLD, le numéro de typeindiquant le nombre de macro-cellulesprésentes dans le composant.

5/2004 - elektor 11

Résistances :R1,R10,R20,R23,R26 = 10 kΩR2 à R9,R25 = 1 kΩR11 à R18 = 680 ΩR19,R24 = réseau de 8 résistances de

10 kΩR21 = 100 kΩR22 = 100 Ω

Condensateurs :C1,C12 = 10 µF/16 V radialC2 = 100 µF/16 V radialC3 à C6,C8 à C11,C15 à C20 = 100 nFC7 = 22 µF/16 V radialC13,C14 = 22 pF

Semi-conducteurs :D1 à D8,D10 = LED rouge faible courantD9 = 1N4001LD1 = afficheur 7 segments CA (tel que,

par exemple, HD1131 O)IC1 =EPM7128SLC84-10 ou

EPM7128SLC84-15IC2 = 7805IC3,IC4,IC9 = 74HCT563IC5 à IC8 = 74HCT74

Divers :JP1,JP2 = embase autosécable à

2 contacts au pas de 5 mmK2 = embase autosécable à 2 rangées de

5 contacts

K3 à K6 = embase autosécable à2 rangées 10 contacts

S1 à S8 = interrupteur à glissièreinverseur unipolaire tel que, parexemple, APEM A2

X1 = quartz 4,000 MHzsupport PLCC à 84 contactsplatine EPS 030385-1

Le dessin des pistes est disponible autéléchargement sur www.elektor.fr et surla page LAYOUT-EXTRA de ce magazine(en miroir)

Liste des composants

C1

C2

C3

C4

C5

C6

C7

C8C9

C10

C11

C12

C13

C14

C15

C16

C17

C18

C19

C20

D1

D2

D3

D4

D5

D6

D7

D8

D9

D10

D11

HO

EK

1 HOEK2

HO

EK

3HOEK4

IC1

IC2

IC3

IC4

IC5

IC6

IC7

IC8

IC9

JP1

JP2

K1

K2

K3

K4 K5

K6

R1

R2R3R4R5R6R7R8R9

R10

R11

R12R13

R14

R15R16

R17

R18R

19

R20

R21

R22R23

R24

R25

R26S1

S2

S3S4

S5S6

S7S8

X1

03

03

85

-1

JTAG

0 9V

Figure 4. Sérigraphie de l’implantation des composants de la platine d’expérimentation double face. Les dessins des pistes setrouvent sur les pages LAYOUT-EXTRA.

Page 5: Paul Goossens Forgez votre propre pucescan78.free.fr/Elektor/Elektor 2004 FR/f045008.pdfenthousiasmants que d’autres : souder, recherche des brochages des circuits intégrés et

Macro-cellule

C’est en fait dans la macro-cellule quese trouve la logique programmable. Lafigure 2 en montre la structure interne.Chaque macro-cellule possède unematrice logique (Logic Array) proprecomportant 36 entrées reliées à unefonction logique ET (AND) programma-ble. 4 de ces fonctions ET sont addition-nées dans la matrice de sélection determe de produit (PTSM) pour consti-tuer un seul signal. Il est possible, pouraccroître les possibilités du circuit,d’augmenter le nombre de termes deproduit. Nous vous renvoyons, plus deplus amples informations à ce sujet, à lafiche de caractéristiques de ces CPLDs.Le signal né de la combinaison desfonctions ET et OU attaque ensuite unregistre et la logique connexe. Cettepartie peut être utilisée comme bas-cule (flipflop) D, T, JK ou SR, voire pure-ment et simplement contournée si l’onn’a pas besoin de registre.Le concepteur n’a heureusement pasbesoin de se casser la tête pour savoircomment réaliser son projet de cettemanière. C’est là la tâche du logiciel(gratuit). Avant d’entrer au coeur dulogiciel, intéressons-nous de plus prèsà la carte d’expérimentation.

Carte d’expérimentation

Bien que l’approche choisie pour cettecarte d’expérimentation soit relative-ment simple, celle-ci n’en comportepas moins suffisamment d’Entrées/Sor-ties pour réaliser les premières expé-riences. Il va sans dire que toutes leslignes importantes de la CPLD sontaccessibles de l’extérieur par le biaisde quelques embases de sorte que l’onpourra, ultérieurement, connecter dumatériel externe à la carte.Le schéma de la figure 3 est (relative-ment) simple. La tension d’alimenta-tion de 9 V continus environ est appli-quée au jack K1. Le régulateur IC2fournit la tension d’alimentation de 5 V.La LED D11 et sa résistance-talon R25signalent la présence de cette tensiond’alimentation.IC1 est notre fameuse CPLD. L’inter-face de programmation JTAG estaccessible de l’extérieur par le biais deK2. Le brochage de cette embase estcompatible avec celui du ByteBlasterd’Altera et partant également aveccelui de l’interface JTAG-parallèle d’E-lektor (cf. numéro double de 2002,page 64). Le réseau RC R1/C12 sert decircuit d’initialisation (reset). L’oscilla-

teur constitué par le quartz X1 épaulépar R21, R22, C13 et C14 n’a rien despécial. Nous verrons, par le biais desexemples, comment réaliser un oscilla-teur en combinaison avec un CPLD.Toute platine d’expérimentation se doitde comporter quelques E/S simples. IC3est un tampon chargé d’amplifierquelques signaux du CPLD et de les fairepiloter les LED D1 à D8. IC4 remplit unefonction similaire pour la commanded’un affichage 7 segments. Si l’on n’aque faire de ces E/S, il est possible de lesdécoupler en enlevant le cavalier JP1.Les organes d’entrée prennent la formede 8 interrupteurs. Pour nous simplifierla vie, ces interrupteurs, S1 à S8, ontété dotés d’une électronique anti-rebond, sous la forme de IC5 à IC8. Cesentrées attaquent la CPLD au traversde IC9, mais ici encore il est possiblede découpler cette circuiterie de laCPLD, tout simplement en ne mettantpas JP2 en place.Les embases K3 à K6 amènent à l’exté-rieur tous les signaux importants de laCPLD.

RéalisationLes dimensions larges de la platinedouble face représentée en figure 4

elektor - 5/200412

Figure 5. Les interrupteurs pourront être montés au fur et à mesure que l’on en a besoin. Nous en avons monté 5.

Page 6: Paul Goossens Forgez votre propre pucescan78.free.fr/Elektor/Elektor 2004 FR/f045008.pdfenthousiasmants que d’autres : souder, recherche des brochages des circuits intégrés et

permettent un accès facile partout. Lesconnecteurs prennent tous place sur lepourtour de la carte.La mise en place des composants surla platine n’appelle pas de remarqueparticulière. Si les CPLDs vous intéres-sent, vous avez sans doute déjà réalisél’un ou l’autre circuit imprimé. Atten-tion à l’orientation correcte des circuitsintégrés, des LED et des condensa-teurs électrochimiques. Il est recom-mandé d’utiliser des supports pour lescircuits intégrés, un support PLCC à84 broches est lui indispensable.Attention à bien orienter ce dernier (cf.le coin de la forme sur la sérigraphie del’implantation des composants) car ilest possible de se tromper ! Le CPLDne peut être positionné que d’uneseule manière.Il est possible, nous le disions, dedéconnecter de la CPLD certains sous-ensembles par le biais des cavaliersJP1 et JP2. On peut aussi ne pas lesimplanter. Si l’on ne monte pas l’affi-chage 7 segments on pourra « oublier »IC4, LD1 et R11 à R18. Idem en ce quiconcerne IC3 épaulé par D1 à D8 et R2à R9, si l’on n’a pas besoin d’indicationpar LED. Il suffira, au niveau des inter-rupteurs, d’implanter ceux nécessairesaux premières expériences.

5/2004 - elektor 13

Le régulateur IC2 est monté à plat surla platine et fixé à l’aide d’un écrou etd’un boulon. Inutile de prévoir deradiateur si tant est que le matérieladditionnel connecté ne consommepas trop de courant.La tension d’alimentation est fourniepar un adaptateur secteur donnantentre 9 et 15 V sous 100 mA minimum.C’est le courant requis par la carte,valeur à laquelle il faudra ajouter celuinécessaire aux extensions.

Le logicielLa programmation du CPLD requiert unlogiciel tournant sous PC capable degénérer les fichiers de programmation etde transférer ces derniers dans le com-posant pour le programmer. Le fabricantdu CPLD propose un joli set de logiciels(gratuit) à cet effet (figure 6). Nous par-lons de Quartus, logiciel qu’il est possi-ble de télécharger depuis le site d’Altera(www.altera.com).Arrivé sur la page d’accueil du site,sélectez la rubrique Design Software durepère Products. Choisir dans la fenêtrequi s’ouvre cliquer sur Quartus II WebEdition. Il ne reste plus qu’à suivre lesindications visualisées à l’écran. Atten-tion il s’agit d’un gros fichier, pas moins

de 144,9 Moctets. Si vous en êtes encoreà Internet par téléphone, il vaut peut-être mieux demander à quelqu’un dispo-sant d’une liaison rapide (ADSL/câble)de le télécharger pour vous !Il reste, une fois le logiciel installé, àdemander une licence gratuite. Le sited’Altera explique clairement le proces-sus à suivre.

Le mois prochainNous allons, à l’aide de quelquesexemples, comment concevoir un cir-cuit sous Quartus et bien entenducomment tester ces projets sur la carted’expérimentation. Il vous faudra, pourla programmation, outre la présentecarte d’expérimentation, une interfaceJTAG telle que l’interface JTAG paral-lèle évoquée plus haut.Nous vous recommandons, dans l’at-tente du prochain numéro, d’examinerle didacticiel (tutorial) de Quartus.Vous le trouverez sous l’onglet « Help ».Ce programme vous permettra de vousfamiliariser avec la structure du logicielet d’entrevoir ses possibilités.

(030385-1)

Figure 6. Coup d’oeil sur le logiciel Quartus d’Altera (gratuit !).