Introduzione
1. Un nodo storico 2
2. I sistemi elettronici cambiano tecnologia
e filosofia 3
Capitolo 1: Generalità
1. Definizioni base 5
2. Vantaggi rispetto ad una soluzione tradizionale
6
3. Analisi dei costi per soluzioni concorrenti
6
4. Svantaggi rispetto ad una soluzione ASIC 8
5. Tipi di logiche 8
5.1 Tipologie
di PLD 12
5.2 Tipologie
di FPGA 12
5.3 Strutture
complesse 12
6. Criteri di scelta 13
7. Flusso di progetto 14
8. L’architettura influenza il software di compilazione
16
9. Benchmark 16
Capitolo 2: PLD
1. I precursori delle PLD 17
2. ISP (In-System Programming) 18
3. Tipi di operazioni possibili 20
4. Programmazione mediante interfaccia ISP 20
5. Boundary Scan 21
5.1 Storia dello
standard 1149.1
22
5.2 Elementi
della logica di test
22
5.3 Tap Controller
24
5.3.1 JTAG Tap Controller State 24
5.3.2 Evoluzione del Tap Controller
25
5.3.3 Latch dell’istruzione 26
5.4 Tipi di
istruzioni 26
5.5 Esecuzione
del test 29
5.6 Una tecnologia
di collaudo accessibile
29
6. Scenario ISP 31
7. JAM 31
7.1 STAPL (Standard
Test and Programming Language) 31
7.2 Considerazioni
sulla programmazione in-system 32
7.3 Necessità
di uno standard
32
7.4 Introduzione
al linguaggio Jam
33
7.5 Jam Player
34
7.6 Struttura
del file Jam 35
7.7 Formato
dei dati 36
7.8 Il linguaggio
Jam per la programmazione embedded 37
7.9 Jam nell’industria
37
8. ISP Virtual Machine 38
9. Simple PLD 39
9.1 Architettura
delle PAL 39
9.2 GAL 41
9.3 Altre denominazioni
delle PAL
43
9.4 Considerazioni
architetturali
43
9.5 Metodologia
di progettazione delle Simple PLD 43
10. Analisi delle principali architetture di
PLD 44
11. Architettura XC9500 (Xilinx) 44
12. Architettura CoolRunner (Philips-Xilinx)
47
13. Architettura ispLSI 1000,2000,3000,5000,6000
(Lattice) 48
14. Architettura Mach (Vantis-Lattice) 51
15. Architettura ad interconnessione biplanare
53
16. La migrazione dell’architettura di PLD Altera
54
17. Architettura FlashLogic (Altera) 58
18. Architettura Ultralogic e Flash370i (Cypress)
59
19. Architettura Delta39k (Cypress) 60
Capitolo 3 : FPGA
1. Scenario 63
2. Metrica 64
3. FPGA non static RAM 64
4. FPGA static RAM 65
5. FPGA in soluzioni alternative 65
5.1 LPGA (Laser
Programmable Gate Array) 65
5.2 FPGA mascherati
66
5.3 LPLD (Laser
Processed Logic Device) 66
6. FPGA misti 67
6.1 ASIC con
FPGA embedded 67
6.2 FPSOC (Field
Programmable System On Chip) 67
7. Architettura di un FPGA row-based 68
8. Architettura di un FPGA fine-grain 69
9. Architettura di un FPGA static RAM 71
10. FastTrack interconnect 73
11. Routing segmentato 76
12. FastTrack e segmented routing a confronto
79
13. Configurazione 81
14. Sequenza di programmazione 82
Capitolo 4: Il Sistema di Sviluppo
1. Iter di progetto 85
2. Design Entry 85
3. Design Verification 86
4. Design Implementation 87
5. Il sistema di sviluppo di una PLD 88
6. Il sistema di sviluppo di un FPGA 89
7. Metodologie avanzate: Floorplanner 95
8. Metodologie avanzate: RPM 97
9. Software di sviluppo integrati 98
9.1 MENTOR 99
9.2 VERIBEST
100
Capitolo 5: Regole e tecniche di
progetto
1. Definizione di progetto portabile 101
2. Regole di progetto portabile 101
3. Problemi comuni della progettazione 103
3.1 Scelte preliminari
103
3.2 Fase di
Progettazione 103
3.3 Fase di
Simulazione 103
3.4 Fase di
Sintesi 104
3.5 Fase di
Compilazione Tecnologica
104
3.6 I vincoli
104
4. Progettare con le PLD 105
5. Progettare con gli FPGA 106
6. Library of Parameterized Modules (LPM) 111
7. Core 112
Capitolo 6: Regole di codifica VHDL
1. Concetti base sulla sintesi 114
2. Inference e Instantiation di un contatore
115
3. Resource Sharing 117
4. Structure e Flatten 118
5. Segnali e Variabili 118
6. If e Case 119
7. Implementazione di un latch 120
8. Evitare i gated clocks 120
9. Inserimento di buffer globali 121
10. Implementazione di un mux con buffer tri-state
125
11. Istanziazione di un unbonded I/O 126
12. Istanziazione di una memoria 127
13. Progetto di macchine a stati 129
14. LFSR counter 136
15. Watchdog compatto in FPGA 137
16. Istanziazione di DLL e SelectShift 139
17. Decomposizione di un’istruzione VHDL 143
18. Considerazioni sulla sintesi di un FPGA 145
18.1 Interazione
tra Sintesi e Place & Route 145
18.2 Tipi di
sintetizzatori 146
18.3 Uso delle
DesignWARE 146
18.4 Strategie
di compilazione 147
18.5 Scelte
di gerarchia e di partizionamento
147
18.6 Tipi di
script 148
Capitolo 7: Regole e considerazioni
hardware
1. Analisi dei disturbi elettrici 149
1.1 EMI 149
1.2 Diafonia
149
1.3 Ground Bounce
149
2. Regole di Layout 151
3. Pin locking factors 152
4. Soluzioni embedded per ridurre il rumore 152
5. Stima di potenza 152
6. Riduzione dei consumi 152
7. Part Number 153
8. Migrazione tecnologica 153
9. Analisi dell’integrità dei segnali
156
Capitolo 8: Il ruolo degli FPGA
nei sistemi riprogrammabili
1. Introduzione 157
2. Sistemi Multimodo 157
3. Applicazioni riprogrammabili 158
4. Calcolo riconfigurabile 158
5. Sistemi misti 160
6. Sistemi di emulazione logica 161
7. Architettura dei sistemi riprogrammabili 161
8. Esempi di macchine di calcolo riconfigurabili
165
9. Esempi di sistemi di prototipazione 169
Capitolo 9: Dispositivi Analogici
Riprogrammabili
1. Field Programmable Analog Array (FPAA) 171
2. Electrically Programmable Analog Circuit (EPAC)
172
3. MPAA Motorola - Pilkington 173
4. Totally Reconfigurable Analog Circuit (TRAC)
174
4.1 Funzionalità
di cella
176
4.2 Filtro analogico
programmabile
178
4.3 Le soluzioni
TRAC 179
5. In-system Programmable Analog Circuit (ispPAC)
179
5.1 Descrizione
di un PAC Block
180
5.2 Le soluzioni
PAC 180
6. Field Programmable Mixed Array (FPMA) 182
Capitolo 10: Esempi di progetto
1. Analisi statica dei segnali 183
2. Interfaccia di I/O per microprocessore 186
2.1 Multiplexer
con buffer tri-state
186
2.2 Interfaccia
per microprocessore in FPGA 186
2.3 Interfaccia
micro in PLD 196
2.4 Conclusioni
196
3. PLL digitale per riduzione del jitter in PLD
197
3.1 Introduzione
197
3.2 Evoluzione
tecnica 197
3.3 PLL con
filtro di anello di tipo sequenziale 198
4. SDRAM adapter in PLD 208
5. Progetto incrementale in FPGA 220
5.1 Sintesi
e Fitter pilota 220
5.2 Creazione
del file di guida 221
5.3 Compilazione
finale 222
5.4 Conclusioni
222
6. Esempio di script di sintesi per FPGA 224
7. Serializzatore di dati letti da una memoria
parallela 228
8. FPGA Compiler II e script TCL 233
Appendice A: Note
1. Date storiche 235
2. Elenco dei principali componenti 238
3. Analisi delle vendite 239
Appendice B: Conversione VHDL –
Equazioni
1.1 Divisore per 16 241
1.2 Divisore per N 242
1.3 Divisore per N con enable 242
1.4 Divisore per N con enable e
reset sincrono 243
1.5 Divisore per N con enable e
load diverso da 0 244
1.6 Divisore per N con reset sincrono,
enable e load diverso da 0 245
1.7 Divisore per N con reset sincrono,
enable e parallel load ad M 246
1.8 Down counter 247
1.9 Up-down counter 247
1.10 Esempio di progetto ad equazioni:
decoder HDB3 248
Appendice C: Tecnologie costruttive
1. Technical Overview 251
2. Laser fuse 253
3. Antifuse 253
4. EPROM 256
5. EEPROM 257
6. Flash 258
7. Static RAM 260
Glossario 261
Riferimenti Bibliografici 267