Markus Wannemacher Das FPGA-Kochbuch. An International Thomson Publishing Company Bonn Albany Belmont Boston Cincinnati Detroit Johannesburg London Madrid Melbourne Mexico City New York Paris Singapore Tokyo THOMSON PUBLISHING
Geleitwort i з Vorwort des Autors 19 1 Einleitung 22 2 Was ist ein FPGA? 28 2.1 Eine kleine Geschichte der Logikbausteine 28 2.2 ASIC-Entwurfsstile 31 2.3 Die Typenvielfalt programmierbarer Logik 34 2.4 Aufbau eines FPGA 41 2.4.1 Logikblöcke und I/O-Blöcke 41 2.4.2 Architektur und Verdrahtung 45 2.4.3 Zusammenfassung 49 3 Anwendungen 54 3.1 FPGAs versus Standardbausteine 54 3.2 FPGAs versus PLDs 55 3.3 FPGAs versus CPUs/DSPs 55 3.4 FPGAs versus ASICs 58 3.5 FPGAs als Computer-Elemente 60 3.6 Prototyping 61 3.7 Rekonfigurierbare Logik 62 3.8 Kostenvergleich 62 3.9 Time-to-Market 63
4 4.1 4.2 4.2.1 4.2.2 4.2.3 4.3 4.4 4.4.1 4.4.2 4.4.3 4.4.4 4.5 Entwurf von FPGA-Schaltungen Moderne Entwurfsmethoden für FPGAs Abstraktionsebenen und Beschreibungs-Domänen Abstraktionsebenen Beschreibungs-Domänen Entwurfsablauf im Y-Diagramm Beherrschung der Komplexität Entwurfsablauf Entwurfseingabe Simulation und Verifikation Synthese Place&Route Entwurfsqualität 68 68 69 71 72 73 75 77 81 84 87 89 91 5 5.1 5.2 5.3 5.4 5.5 6 6.1 6.2 6.3 6.4 6.5 6.5.1 6.5.2 6.5.3 Die Hardwarebeschreibungssprache VHDL Was ist eine Hardwarebeschreibung? Was ist VHDL? Aufbau eines VHDL-Modells VHDL beschreibt Struktur VHDL beschreibt Verhalten Programmiertechnologien SRAM-Zellen EPROM-Zellen Antifuse-Technologien Vergleich der Technologien Bewertung der Vor- und Nachteile Schutz der Innovation Rekonfigurierbarkeit, ISP Flüchtige Programmierung versus OTP 94 94 96 98 100 101 106 110 115 117 120 122 122 124 126
6.5.4 Kosten und Schaltungsaufwand 1 27 6.5.5 Testbarkeit und Zuverlässigkeit 128 6.5.6 Anzahl der Programmierelemente 1 29 6.5.7 Zusammenfassung 1 30 6.6 Trends und Prognosen 131 7 Bausteinübersicht 136 7.1 Der Markt der FPGA-Bausteine 136 7.2 Antifuse-FPGA 7.2.1 Actel Antifuse FPGAs 7.2.2 QuickLogic: pasici, pasic2, paso 7.2.3 Crosspoint Solutions: CP20K, CP100K 7.3 SRAM-FPGA 7.3.1 Actel: ES Embedded SPGA 7.3.2 Altera: FLEX 8000, FLEX 10K, FLEX 6000 7.3.3 Atmel: AT6000 und AT40K 7.3.4 DynaChip: DL5000 7.3.5 Lucent Technologies: ORCA-2, ORCA-3, ATT3000 ) 7.3.6 Motorola: MPA1000 7.3.7 Vantis:VF1 7.3.8 Xilinx: XC2000, ХСЗООО, XC4000, XC5200, XC 200 7.4 EPROM-FPGA 7.4.1 GateField 7.5 Auswahlhilfen 7.5.1 Technische Kennwerte 7.5.2 PREP-Benchmarks 7.5.3 Preise 7.5.4 Verfügbarkeit 7.6 Konfigurationsspeicher 7.6.1 Altera 7.6.2 Atmel 7.6.3 Lucent Technologies 139 140 152 160 160 161 165 173 177 180 183 187 189 206 207 210 212 216 217 217 218 220 220 221 7
7.6.4 Motorola 7.6.5 Xilinx 7.7 Programmierbare Verbindungsbausteine 7.7.1 Aptix 7.7.2 I-Cube 7.7.3 Lattice 7.7.4 Sonstige Verbindungsbausteine 7.8 Feldprogrammierbare analoge Arrays 7.8.1 ASB vom Fraunhofer-Institut IMS 7.8.2 EPACvonIMP 7.8.3 MPAA von Motorola 7.8.4 TRAC von Zetex 8 Entwurfswerkzeuge 8.1 Allgemeines 8.1.1 Eine kleine EDA-Geschichte 8.1.2 Das Betriebssystem 8.1.3 Auswahlkriterien 8.1.4 Die Übersicht 8.2 Universelle FPGA-Entwurfswerkzeuge 8.2.1 Active-CAD 8.2.2 CUPL 8.2.3 Galileo und Leonardo 8.2.4 LOG/iC2 8.2.5 MicroSimFPGA 8.2.6 MINC 8.2.7 OrCAD Express 8.2.8 PeakVHDL und PeakFPGA 8.2.9 Protei Advanced PLD 8.2.10 Synario 8.2.11 Synplify 8.2.12 VeriBest 221 222 222 223 225 230 234 234 235 237 237 239 242 242 242 244 245 247 248 248 252 253 256 257 257 259 261 264 264 266 267
8.3 Große EDA-Systeme 8.3.1 Cadance 8.3.2 Mentor Graphics 8.3.3 Synopsys 8.3.4 ViewLogic 8.4 Herstellereigene Werkzeuge 8.4.1 ASICmaster von GateField 8.4.2 Designer Series von Actel 8.4.3 DynaTool von DynaChip 8.4.4 Integrated Development System von Atmel 8.4.5 Max+Plus II von Altera 8.4.6 MPA Design System von Motorola 8.4.7 ORCA Foundry von Lucent 8.4.8 QuickWorks, QuickTools und QuickChip von QuickLogic 8.4.9 XACTstep von Xilinx 8.5 Einzelne EDA-Programme 8.5.1 BetterState 8.5.2 Compüb von Hantro 8.5.3 EASEA/HDL und EALE/HDL 8.5.4 FPGA-Pilot 8.5.5 GM VHDL Compiler 8.5.6 HDLTurboWriter 8.5.7 ModelSim 8.5.8* SmartViewer 8.5.9 speedchart 8.5.10 StateCAD und StateSIM 8.5.11 THEDA von Incases 8.5.12VHDLCover 8.5.13 VisuaIHDL 8.5.14WaveFormer und TestBencher 268 268 269 271 273 277 277 278 279 280 280 281 283 283 285 287 287 288 289 290 290 291 292 293 293 294 295 295 296 297 9
8.6 Freeware, Shareware, Public Domain 298 8.6.1 Alliance 298 8.6.2 IDaSS 298 8.6.3 Trianus/Hades 299 8.7 Lernsoftware 299 8.7.1 VHDLIstart 299 8.7.2 VHDL-MasterClass 300 8.7.3 VHDL-Online 300 8.7.4 VHDL PaceMaker 301 9 Entwurfsrichtlinien und Tips 304 9.1 Testgerechter Entwurf 304 9.2 Der JTAG Boundary Scan 305 9.3 Konvertierung von FPGA-Entwürfen in ASIC-Technologie 306 9.3.1 ActelMPGA 309 9.3.2 LPGA von ChipExpress 309 9.3.3 MACO von Lucent 311 9.3.4 Netrans von AMI 312 9.3.5 Orbit Semiconductor 312 9.3.6 QuickASIC von Microchip 312 9.3.7 ULC von Temic 313 9.3.8 Xilinx Hardwire 313 10 Ausblick & Trends 318 10.1 Investitionsplanung 318 10.2 Neue Bausteine 319 10.3 Entwicklung der Technologie 321 10.4 Kleinere Versorgungsspannungen 322 10.5 ASIC vs. FPGA 324 10.6 System-on-a-Chip 325 10
10.7 IP-Cores, Virtual Components und Design Re-Use 327 10.8 Genetische Algorithmen und evolutionäre Hardware 330 A В B.1 В.1.1 B.1.2 В.1.3 В.1.4 С С.1 С.2 С.З С.4 С.5 С.б С.7 С.8 С.9 С.9.1 С.9.2 С.9.3 С.9.4 С.9.5 Glossar Inhalt der CD-ROM Dienst-Programme Datenblätter und Applikationsschriften Entwurfswerkzeuge und Dokumentationen Informationssammlungen VHDL-Anleitungen und -Tutorien Adressen und Informationsquellen Hersteller FPGA Hersteller sonstiger Bausteine Distributoren Hersteller EDA-Tools Anbieter EDA-Tools Seminar-Anbieter FFPGA-Dienstleister Emulatoren und Simulationsbeschleuniger mit FPGAs Weitere Informationsmöglichkeiten Roadshows Fachzeitschriften Internet Konferenzen, Kongresse, etc. Messen 334 351 351 351 353 356 357 359 359 360 362 364 367 370 371 373 373 373 373 375 378 379
D Literaturverzeichnis 381 E Abbildungsverzeichnis 391 F Tabellenverzeichnis 397 Index 401 12