paul goossens forgez votre propre pucescan78.free.fr/elektor/elektor 2004...
TRANSCRIPT
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
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
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
0µ
+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
0Ω
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.
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.
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.
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 !).