meta data for this page
This is an old revision of the document!
FPGAs
Familien Übersicht
Hier im Institut haben wir uns ziemlich auf die Altera Chips eingeschossen, aber es gibt auch andere Hersteller mit manchmal interessante Features.
- Xilinx
- Spartan, Artix: low cost
- Zynq: FPGA mit ARM
- Virtex: high end. Unter andere in die NI-RIO Karten verbaut.
- Ein par Virtex varianten gibt es auch als Rad-Hard.
- Altera
- MAX: non-volatile, meist wenige LEs
- MAX10: non-volatile wie MAX, fähig wie Cyclone, hat sogar analoge Eingängen (ADC).
- Cyclone: Low cost
- Arria: Mid range
- Stratix: High end
- Die letzte Modelle von Cyclone, Aria und Stratix haben auch ARM-Prozessoren dabei.
- Ich meine das es auch noch so etwas wie einen Intel-Altera Combi-Chip gibt (x86 mit FPGA, ziemlich dickes Ding). Intel hat Altera auch aufgekauft.
- Lattice
- ?
- So auf der schnelle nichts Auffälliges erkannt. Basic FPGAs in verschiedene Größen. Vielleicht das irgendjemand anderes deren Angebot besser kennt.
- MicroSemi / Actel
- Fusion: FPGA + Analog (einen ADC mit viele Features und deutlich höhere Spannungen als üblich)
- SmartFusion: ARM-Prozessor + Analog (Input und höhere Spannungen) + FPGA
- Igloo, ProAsic : basic low power FPGA
- RT-xxx : Strahlungsharte FPGAs, von klein bis riesig. Nur die RTG4 hat PLLs und Multiplikatoren.
- Multiplikatoren gibt es nur in wenige Baureihen.
- (Diese Liste erhebt kein Anspruch auf Vollständigkeit. Es sind nur die übliche Verdächtige.)
Vorschläge für Verdrahtung
Jede größere FPGA gibt es nur noch in BGA-Gehäusen (Ball Grid Array). Wie kommt man an die Pins ran? Mit der Lötkolbe geht da nichts mehr. Dies geht nur noch mit Reflow-Löten im Ofen oder noch besser mit Dampflöten. Am besten geht es aber wenn man dies an Bestückungsfirmen auslagert.
Wir müssen dann nur noch den Entwurf machen und die richtige Technik-Optionen auswählen.
- Die TQFP Gehäusen sind noch mit Standart Einstellungen in 8mil-Technik realisierbar.
- Für FBGAs mit 1.0mm Raster gibt es eine Lösung die mit einfache Zusatzoptionen realiserbar ist. Diese Gehäuse machen aber erst Sinn wenn man mindestens einen 4-Lagen Board entwerft.
- Die äußere beide Reihen kann man direkt erreichen. Bei einer Pad-Durchmesser von 0.5mm, braucht man 7mil Linienbreite und 6mil Isolation. Beides ist mit normaler 6mil-Technik möglich.
- Für die innere Pins ab der dritte Reihe sind Vias nötig.
- Drill: 8mil, Restring: 6mil, Durchmesser: 20mil (8+2*6).
- Dies sind meistens Sonderoptionen.
- Die kleine Vias sollen mit Stoplack überdeckt sein (Eagle: DRC Masks Limit=0.4mm). Dies verhindert Kurzschlüsse unter dem Chip.
- Die Öffnungen im Stoplack für die Pads sollten nur 3mil größer sein als die Pads (Eagle: DRC Masks Stop-Min=Stop-Max=3mil).
- Da diese Vias ziemlich klein sind, sollte man vorallen für Ground und Versorgung viele Vias nutzen.
- Für UBGA und MBGA hab ich noch keine Lösung gefunden. Man braucht hier meistens Spezial-Optionen aus er Kategorie “auf Anfrage”.
- Diese Gehäusen sind für uns zu klein. Aber sag niemals nie. Spätestens wenn irgendjemand ein Atominterferometer im Händy haben will, werden wir auch diese Chips einsätzen.
- MBGAs sind nur noch mit Via-in-Pad möglich.
- Weitere Links zu genaue Platinen-Maßen:
Zum selberlöten von BGAs gab es auch mal eigene Versuche auf eine andere Seite im Wiki: Löten von Ball Grid Array
Altera
Altera Gehäusen
Code | Kurzname | Volle Name | Rasterabstand | Anmerkung |
---|---|---|---|---|
T100 | TQFP100 | Thin Quad Flat Pack 100 pins | 0.5mm | |
E64 | EQFP64 | Enhanced Quad Flat Pack 64 pins | 0.4mm | Sieht aus wie TQFP64 ist aber viel kleiner, mit Pad auf Unterseite |
E144 | EQFP144 | Enhanced Quand Flat Pack 144 pins | 0.5mm | Dies ist eine TQFP144 mit extra Pad auf Unterseite |
F256 | FBGA256 | Fineline Ball Grid Array 256 pins | 1.0mm | |
U256 | UBGA256 | Ultra Fineline Ball Grid Array 256 pins | 0.8mm | |
M256 | MBGA256 | Micro Ball Grid Array 256 pins | 0.5mm |
- Die Zahl hinter der Buchstabe ist variabel.
- Der Spaß bei E64 ist ein Beispiel dafür das man trotz vermeintlich bekanntes Aussehen doch noch mal im Datenblatt nach der Zeichnung schauen soll (ein TQFP64 hat normalerweise 0.8mm Raster). Und wer sucht findet noch viel mehr TQFP Gehäusen mit unterschiedliche Raster.
Manchmal werden auch andere Codes für die Gehäuse verwendet, diesmal benannt nach der Länge des Gehäuse in millimeter:
Längencode | Pincode | Pins | Raster |
---|---|---|---|
F17 | F256 | 16 x 16 | 1.0mm |
F23 | F484 | 22 x 22 | 1.0mm |
F27 | F627 | 26 x 26 | 1.0mm |
F31 | F896 | 30 x 30 | 1.0mm |
U15 | U324 | 18 x 18 | 0.8mm |
U19 | U484 | 22 x 22 | 0.8mm |
M13 | M383 | 18 x 18 | 0.5mm |
M15 | M484 | 22 x 22 | 0.5mm |
Altera Pinbelegung
Bei den QFP Gehäusen ist die Pinbelegung kein wirklich wichtiges Auswahlkriterium. Versorgung, Ground und IO liegen immer gemischt aber gut erreichbar.
Bei den BGAs sieht das anders aus. Dort sind die innere Pins schwierig zu routen, zumindest wenn man nur 4 Lagen hat und nur durchgehende Vias durch alle Lagen. Man möchte deshalb möglichst viele Signalpins auf den äußere beide Reihen haben. Manche der Pinbelegungen sind in dieser Hinsicht sub-optimal.
Die nachfolgende Bilder kommen alle aus der Pin-Planner von Quartus.
Kurze Symbolerklärung:
- Dreieck nach oben: Versorgung. Das Zeichen in dem Dreieck sagt welche Versorgung.
- Dreieck nach unten: Ground
- Pentagram: Programmierung
- Vierkant mit steigende oder fallende Flanke: Clock
- Rund oder Hexagon: IO
- Kreuz: Nicht angeschlossen
- Farbe: zeigt die jeweile IO-Bank an
MAX2
MAX5
Bei der MAX5 in E64 Gehäuse fehlen seldsamerweise sämtliche Ground Pins. Ground ist hier auf der Unterseite.
Es gibt eine auffällige Übereinstimming zwischen den MAX2 und MAX5 Chips im gleichen Gehäuse.
MAX10
Die Pinbelegung der andere MAX10-Varianten unterscheidet sich im gleichen Gehäuse nicht. Nur ein par Pins ändern sich wenn man zwischen der Analog und der Compact-Version wechselt.
Cyclone 2
Cyclone 3
Cyclone 4
Cyclone 4GX
Cyclone 5
Altera Quartus Versionen
(Wir betrachten hier nur für die Gratis-Version.)
Einen Upgrade bringt hier leider nicht nur neue Sachen und Verbesserungen, man kann bei Quartus auch alte Features verlieren. Zum Glück gibt es eine friedliche Koexistenz der Versionen. Man kann sie ohne Stress neben ein ander betreiben. Und man kann die alte Versionen noch Downloaden.
Stress gibt es nur wenn man bestehende Projekte mit der falsche Version öffnet. Dabei will Quartus bereits beim Öffnen, Projektdateien überschreiben, wofür er auch warnt.
Version | Simulator | MAX7000 | MAX3000 | MAX2 | MAX5 | MAX10 | Cyclone1 | Cyclone 2 | Cyclone 3 | Cyclone 4 | Cyclone 5 |
---|---|---|---|---|---|---|---|---|---|---|---|
9 | Build-in, Modelsim | v | v | v | v | v | v | ||||
10 | Modelsim | v | v | v | v | v | v | v | v | ||
11 | Modelsim | v | v | v | v | v | v | v | v | v | |
12 | Modelsim | v | v | v | v | v | v | v | v | ||
13.0 | Modelsim | v | v | v | v | v | v | v | v | ||
13.1 | Modelsim | v | v | v | v | v | |||||
14 | Modelsim | v | v | v | v | v | |||||
15 | Modelsim | v | v | v | v | v | |||||
16 | Modelsim | v | v | v | v | v |
- Der einfach zu benutzende eingebaute Simulator gibt es nur bis Version 9 (und vielleicht noch als Academic Sonder-Download).
- Für MAX3000, MAX7000, Cyclone2 und Cyclone3 gilt: nur bis Version 13.0.
- Für alle neuere gilt: nimm die neueste Quartus Version (16).