FPGA aktuelle Bausteine und ihre Anwendungen von Xilinx

FPGA – aktuelle Bausteine und ihre Anwendungen von Xilinx Studienarbeit im Studiengang M. Sc. Elektro- und Informationstechnik Schwerpunkt Kommunikat...
3 downloads 0 Views 2MB Size
FPGA – aktuelle Bausteine und ihre Anwendungen von Xilinx

Studienarbeit im Studiengang M. Sc. Elektro- und Informationstechnik Schwerpunkt Kommunikations- und Informationstechnik vorgelegt von Daniel Kampert Matr.-Nr.: 734590 am 12.01.2017 an der Hochschule Düsseldorf

Inhaltsverzeichnis Inhaltsverzeichnis .................................................................................................... 2 Abbildungsverzeichnis............................................................................................. 3 Tabellenverzeichnis ................................................................................................. 3 Abkürzungsverzeichnis ........................................................................................... 4 1

Einleitung ...................................................................................................... 5

2

FPGA-Serien der Firma Xilinx ................................................................... 7

2.1

Low-cost FPGAs für jedermann – Die Spartan und Artix Familie im Überblick ........................................................................................................ 9

2.1.1 Die Entwicklung der Spartan Familie ............................................................ 9 2.1.2 Die Artix-7 Familie als Nachfolger der Spartan Familie ............................. 12 2.2

Die Mittelklasse – FPGAs der Kintex-7 Familie ......................................... 15

2.3

High-End FPGAs der Virtex Familie – Xilinx Topprodukte genauer betrachtet ...................................................................................................... 17

2.4

Die Verschmelzung von Hard- und Software – Zynq-Bausteine im Überblick ...................................................................................................... 21

3

Verweise....................................................................................................... 25

Abbildungsverzeichnis Abbildung 1.1: Logo der Firma Xilinx ...................................................................... 5 Abbildung 1.2: XC2064-33 im 48-pin DIP Gehäuse ................................................ 5 Abbildung 2.1: Die FPGAs der Spartan Serie im Überblick ..................................... 9 Abbildung 2.2: Die FPGAs der Spartan-6 Serie im Überblick................................ 10 Abbildung 2.3: Spartan-6 Entwicklungsboard von Xilinx ...................................... 11 Abbildung 2.4: Die FPGAs der Artix-7 Serie in der Übersicht ............................... 13 Abbildung 2.5: Konfiguration des System Monitors der Artix-7 Serie ................... 13 Abbildung 2.6: Ein Zybo (links) und ein Arty (rechts) Development Board von Xilinx ........................................................................................................... 14 Abbildung 2.7: Beispielschaltung zum Berechnen einer FFT in Hardware ............ 15 Abbildung 2.8: Die FPGAs der Kintex-7 Serie in der Übersicht ............................ 16 Abbildung 2.9: Kintex-7 Entwicklungsboard ......................................................... 17 Abbildung 2.10: Die FPGAs der Virtex Familie in der Übersicht .......................... 18 Abbildung 2.11: Aufbau einer Logikzelle in der Virtex Architektur ...................... 18 Abbildung 2.12: Die FPGAs der Virtex-7 Serie in der Übersicht ........................... 19 Abbildung 2.13: Virtex-7 Development Board ....................................................... 20 Abbildung 2.14: Blockschaltbild eines Zynq-7000 AP SoCs.................................. 21 Abbildung 2.15: Die AP SoCs der Zynq-7000 Serie in der Übersicht .................... 22 Abbildung 2.16: Blockschaltbild eines Zynq Ultrascale+ ....................................... 23 Abbildung 2.17: Einige AP SoCs der Zynq Ultrascale Serie in der Übersicht ...... 23

Tabellenverzeichnis Tabelle 2.1: Vergleich des ersten FPGAs von Xilinx mit einem aktuellen Topmodell von Xilinx ................................................................................... 7 Tabelle 2.2: FPGA Fertigungstechnologien in der Übersicht.................................... 8 Tabelle 2.3: Vergleich der beiden kleinsten FPGAs aus der Spartan-6 und Artix-7 Familie ......................................................................................................... 12

Abkürzungsverzeichnis ADC

Analog-to-Digital Converter

AMBA

Advanced Microcontroller Bus Architecture

ASIC

Application-specific integrated circuit

ASSP

Application-specific standard product

AXI

Advanced eXtensible Interface Bus

CLB

Configurable Logic Block

CPLD

Complex Programmable Logic Devise

DIP

Dual in-line package

DLL

Delay-Locked Loop

FCBGA

Flip Chip Ball Grid Array

FPGA

Field Programmable Gate Array

GMAC

Giga Multiply-Accumulate operations

GSM

Global System for Mobile Communications

HD

High-Definition

IC

Integrated Circuit

IP

Intellectual Property

JTAG

Joint Test Action Group

LUT

Lookup-Table

LTE

Long Term Evolution

LVTTL

Low Voltage Transistor Transistor Logic

OLT

Optical line termination

PCI

Peripheral Component Interconnect

PCIe

Peripheral Component Interconnect Express

PON

Passive Optical Network

PLA

Programmable Logic Array

PLL

Phase-locked loop

RAM

Random Access Memeory

SoC

System on a chip

TMAC

Tera Multiply-Accumulate operations

1

Einleitung

Diese Studienarbeit beschäftigt sich mit der amerikanischen Firma Xilinx Inc. und den, unter diesem Firmennamen vertriebenen, Logikbausteinen. Die Firma Xilinx wurde 1984 durch die ehemaligen Zilog1 Mitarbeiter Ross Freeman, Bernard Vonderschmitt und Jim Barnett im Silicon Valley gegründet und gilt bis heute mit einem Jahresumsatz von etwa 2,2 Mrd. USD als weltgrößter Hersteller und Entwickler von programmierbaren LogikICs [wik01].

Abbildung 1.1: Logo der Firma Xilinx Der Physiker und Gründungsmitglied Ross Freeman (1944 – 1989) gilt bis heute als wesentlicher Entwickler und Pionier im Bereich der programmierbaren Logikbausteine. Er begann in den 1980er Jahren mit der Entwicklung von programmierbaren Logikarrays und im Rahmen dieser Entwicklung entstanden die typischen FPGA Grundstrukturen, welche bis heute noch im Einsatz sind. Die Firma Zilog, Freemans aktueller Arbeitgeber, zeigte zu diesem Zeitpunkt allerdings nur wenig Interesse an diesen programmierbaren Logikarrays, da die Firma einen 100 Millionen USD großen Markt nicht als ausreichend großen Grund ansah um Freemans Entwicklung produktreif zu machen. Daraufhin ließ sich Freeman Jahr 1984 die grundlegende Technik der FPGAs patentieren und gründete anschließend, zusammen mit seinem Arbeitskollegen Jim Barnett und dem Ex-Kollegen Bernard Vonderschmitt, die Firma Xilinx. Im Jahre 1985 verkaufte die Firma mit dem FPGA XC2064 ihr erstes Produkt. Damals kostete das FPGA etwa 55$ bis 80$.

Abbildung 1.2: XC2064-33 im 48-pin DIP Gehäuse [xil01]

1

US-amerikanischer Hersteller von Mikroprozessoren mit Sitz in Kalifornien

Von da an war es möglich, die bis dahin verwendeten anwendungsspezifischen Bausteine, die sogenannten ASICs1, abzulösen und durch preisgünstige FPGAs zu ersetzen. Die von Xilinx entworfenen Bausteine stellten eine flexible Alternative zu den bisher verwendeten ASICs dar, da diese Bausteine nach Belieben neu konfiguriert und angepasst werden können. Ein weiterer Vorteil der neuen FPGA-Technologie ist der niedrige Preis. Während ASICs aufwändig von Halbleiterherstellern nach Kundenwünschen gefertigt werden müssen, werden die FPGAs als Massenprodukt hergestellt und anschließend von den Kunden konfiguriert. Seit der Gründung hat die Firma ihr Portfolio stetig ausgebaut und verfügt aktuell über ein breites Spektrum an Produkten aus dem Bereich der programmierbaren Logikbausteine, welche sich in die folgenden Kategorien unterteilen lassen: 

FPGA



CPLD



Design Tools



Intellectual Property (IP)



Service & Training

Mittlerweile sind Logikbausteine, wie die von Xilinx, in vielen Produkten und Industriezweigen, wie z. B. der Telekommunikation, Automotiv, Konsumelektronik und Verteidigung zu finden. Im Gegensatz zu anderen Herstellern im Bereich der Integrierten Schaltkreise, wie Samsung oder Atmel, verfügt Xilinx über keine eigene Halbleiterfertigung und gilt daher als sogenannter Fabless2-IC-Hersteller. Für die Fertigung der Halbleiterbauelemente muss Xilinx daher auf Hersteller (Foundries) wie Samsung, Intel, Global Foundries, TSMC, etc. zurückgreifen.

1 2

Anwendungsspezifische, fest verdrahtete Logikbausteine mit einer festen Funktion Engl. Fabricationless – Unternehmen ohne eigene Herstellung, welche auf die Fertigungsstätten (Foundries) anderer Auftragsfertiger angewiesen sind.

2

FPGA-Serien der Firma Xilinx

Das erste FPGA, welches unter dem Namen Xilinx entwickelt und verkauft wurde, war das in Kapitel 1erwähnte FPGA mit der Bezeichnung XC2064. Im Laufe der letzten 30 Jahre hat die FPGA Entwicklung riesige Fortschritte in Bezug auf die Komplexität und Leistungsfähigkeit der Bausteine gemacht. Während mit den ersten FPGAs lediglich einfache digitale Schaltungen realisieren werden konnten, ist man mit den heutige FPGAs sogar in der Lage, einzelne oder mehrere vollwertige CPUs oder GPUs in einem einzigen Chip zu realisieren. So wurde im Jahre 2011 ein Prozessor mit 1000 einzelnen CPU-Kernen auf einem Xilinx FPGA realisiert [eet01]. Dies wird ganz besonders deutlich, wenn das erste kommerzielle FPGA von Xilinx mit einem aktuellen Topmodell verglichen wird (siehe Tabelle 2.2). Xilinx XC2064-33 48-pin DIP1

Xilinx XCVU440 1456-pin FCBGA2

Logikzellen

64

4.407.480

CLB Flip-Flops

64

5.065.920

Block RAM (Mbits)

0

88,6

0 (0)

2.880 (4.268)

Anzahl I/O Pins

38

1.456

Differenzielle Multi-Gigabit Transceiver

0

48

DSP Slices (GMACs3/sec)

Tabelle 2.1: Vergleich des ersten FPGAs von Xilinx mit einem aktuellen Topmodell von Xilinx [xil01] In den letzten 30 Jahren hat Xilinx die eigene Produktpalette immer weiter verfeinert und ausgebaut. Die FPGAs erhielten immer mehr Logikzellen und Flip-Flops, was es den Kunden erlaubt größere digitale Schaltungen mit einem FPGA zu implementieren.

1

Gehäuseform für ICs, welches mittels Durchsteckmontage auf Leiterkarten gelötet werden

2

Gehäuseform für ICs, welche mittels Oberflächenmontage auf Leiterkarten gelötet werden

3

Multiplizier- und Addieroperationen. Performancemaß für DSPs.

Im Laufe der Jahre sind zudem zusätzliche Komponenten wie DPS-Kerne für effiziente Addier- und Multiplizieraufgaben, sowie Analog/Digital-Wandler in die FPGAs integriert worden. Die Integration von integrierten Block RAM (BRAM) ermöglicht die Speicherung von Daten in dem FPGA, ohne dass das RAM durch Logikzellen nachgebaut werden muss, was den Vorteil bietet, dass das RAM mit einer höheren Geschwindigkeit, als ein RAM, welches durch Logikzellen aufgebaut wurde, arbeiten kann. Der aktuelle Trend in der FPGA Entwicklung geht in Richtung des sogenannte hard core processors, also reale CPU Kerne (ARM, PowerPC), die in die FPGAs integriert werden (siehe Abschnitt 2.4). Mit Hilfe dieser CPU Kerne können dann Lösungen entworfen werden, die eine Kombination aus Hard- und Software benötigen. Alle FPGAs von Xilinx werden in verschiedene Komplexitätsklassen unterteilt, welche sich vor allem preislich sehr stark unterscheiden. Aktuell umfasst die Produktpalette folgenden FPGA-Serien (nach Komplexität geordnet): 1. 2. 3. 4.

Spartan (Abgekündigt) Artix (Stückpreis ab 24 $ bis 373 $) Kintex (Stückpreis ab 118 $ bis 11.000 $) Virtex (Stückpreis ab 67 $ bis 52.000 $)

Xilinx lässt sämtliche FPGAs mit modernsten Fertigungsverfahren (siehe Tabelle 2.2) herstellen und sorgt damit für ein optimales Verhältnis von Leistungsfähigkeit, Energieverbrauch und Chipfläche zu gewährleisten. Familie / Fertigungsverfahren Spartan

45 nm 28 nm 20 nm 16 nm 

Artix



Kintex







Virtex







Tabelle 2.2: FPGA Fertigungstechnologien in der Übersicht Nachfolgend gebe ich einen kleinen Überblick zu den Eigenschaften und Features der einzelnen Familien.

2.1

Low-cost FPGAs für jedermann – Die Spartan und Artix Familie im Überblick

2.1.1 Die Entwicklung der Spartan Familie Die Spartan und die Spartan-XL Serie wurden im Jahr 1998 ins Leben gerufen und dienten hauptsächlich dazu, ASICs mit einer Größe von etwa 40.000 System Gates1 zu ersetzen. Sämtliche FPGAs dieser Serien waren als 5 V und als 3,3 V Variante erhältlich und bestanden aus 238 – 1.862 Logikzellen.

Abbildung 2.1: Die FPGAs der Spartan Serie im Überblick [xil02] Weiterhin verfügten die ersten FPGAs der Spartan Reihe über die folgenden technischen Eigenschaften: Spartan: 

80 MHz maximale Taktrate



Unbegrenzt neu konfigurierbar



PCI Interface



IEEE 1149.1 JTAG2 Interface



3-State Bus Interface



Acht globale Taktpfade

Zusätzliche Eigenschaften Spartan XL: 

5 V Tolerante I/Os bei einer 3,3 V Versorgung



Power down Modus



Höhere Performance und Geschwindigkeit der internen Logik



12 bzw. 24 mA Ausgangstreiber

Die Eigenschaft, dass die FPGAs der Spartan Familie beliebig oft neu konfiguriert werden können, machte sie zu einem idealen Ersatz für die damals noch eingesetzten PLA Chips, welche nur einmal konfiguriert werden können.

1

Maßeinheit für die Komplexität eines ASIC Design

2

Standardisiertes Debuginterface

Xilinx verbesserte die FPGAs der Spartan Serie mehrmals und brachte im Jahr 2009 dann die Spartan-6 Reihe, auf den Markt, welche bis heute noch im Einsatz ist, aber nicht mehr weiterentwickelt wird. Während der gut 20-jährigen Entwicklung erhielt die Spartan Familie sehr viele technische Neuerungen wie z. B.: 

Moderner 45 nm Fertigungsprozess [xil03]



Tiefer Power down Modus für eine minimalste Stromaufnahme



1,2 V Core Spannung



3,3 V und 1,2 V I/O Standard



High-speed Transceivers mit bis zu 3,2 Gbit/s



High-speed Interfaces wie SATA, Display Port und 1G Ethernet



Bis zu 180 DSP Slices, wobei jeder Slice aus einem 18 x 18 Bit Multiplizierer und einem 48-bit Akkumulator besteht



DDR, DDR2, DDR3 und LPDDR Support mit bis zu 800 Mb/s



Integrierte Hochleistung PLLs mit einem Frequenzbereich von 400 MHz bis zu 1,08 GHz



16 globale Taktpfade



SPI (bis zu 4x) Flash und NOR Flash Support



Remote Update mit mehreren Bitstreams



MicroBlaze Softcore

Auch die Menge der FPGAs innerhalb der Familie wurde deutlich erhöht um eine größere Menge verschiedenster Einsatzgebiete abdecken zu können (siehe Abbildung 2.2).

Abbildung 2.2: Die FPGAs der Spartan-6 Serie im Überblick [xil03]

Typische Anwendungsgebiete dieser Spartan-6 FPGAs sind: 

Luft- und Raumfahrt (Militär und Zivil)



ASIC Prototyping- Zur Verifizierung und zum Testen von z. B. SoC Designs



Datencenter – Zum Beschleunigen von z. B. Cloud-Anwendungen



High Performance Computing – Dort wird die parallele Datenverarbeitung der FPGAs genutzt wird um die Rechengeschwindigkeit zu erhöhen (Stichwort: GPU-Beschleuniger)



Wireless Communications – Als Codierer/Decodierer für z. B. GSM

In Abbildung 2.3 ist ein typisches Spartan-6 Entwicklungsboard abgebildet, wie es Xilinx z. B. für Schulungen anbietet.

Abbildung 2.3: Spartan-6 Entwicklungsboard von Xilinx [spa01] Als Entwicklungsumgebung bietet Xilinx die Entwicklungsumgebung ISE Design Suite an. Mit den Spartan-6 FPGAs führte Xilinx zum ersten Mal die Verwendung von (AXI1)IP-Cores, also die Verwendung von vorgefertigten Schaltungen für FPGAs, ein [xil05]. Diese IP-Cores erlauben einen schnelleren Entwicklungszyklus, da einzelne Schaltungsmodule, wie z. B. Kamera Interfaces oder GSM-Codierer, extern zugekauft und verwendet werden können. Der offizielle Support für die Spartan-6 FPGAs wird seitens Xilinx im Jahr 2023 eingestellt und auch die Entwicklungsumgebung ISE wird seit Version 14.7 nur noch mit Bug fixes versorgt und nicht mehr weiterentwickelt bzw. für neue Chips gepflegt. Grundsätzlich können aber alle Chips mit einer Strukturbreite > 28 nm weiterhin mit ISE bedient werden und können unter [ise01] eingesehen werden. Dennoch wird Kunden geraten auf die modernere Artix Familie und die damit verbundene neu entwickelte Vivado Design Suite zu wechseln.

1

Standardisiertes Bus-System von Xilinx, welches auf den AMBA-Bus von der Firma ARM Ltd. basiert

2.1.2 Die Artix-7 Familie als Nachfolger der Spartan Familie Im Jahr 2010 veröffentlichte Xilinx die Artix-7 Familie, dessen Ziel es war, die Spartan Familie abzulösen und gleichzeitig die nächste Stufte Schritt in der Entwicklung der Lowcost FPGAs zu realisieren. Das Ziel dieser FPGA Familie war es, einen größeren Teil des ASIC und des ASSP1 Markts in verschiedensten Bereichen wie z. B. medizinische Geräte mit einem sehr geringen Stromverbrauch oder leistungsfähiges LAN- und WLAN-Equipment abzudecken. Daher wurde besonders viel Wert auf ein Low Power FPGA Design mit niedrigen Kosten und einem kleinen Footprint, also einem kleinen Gehäuse und nur wenigen I/Os, gelegt. Zusätzlich zu den oben genannten Features wurde die Anzahl an Logikzellen auf 20.000 bis 355.000 erhöht. Insgesamt wurden die Chips 30% schneller, 50% sparsamer und 35% billiger als vergleichbare Spartan-6 FPGAs. Die statische Stromaufnahme der FPGAs wurde um 85% und die dynamische Stromaufnahme wurde um 35% gesenkt. Dies wurde durch einen Wechsel des Fertigungsprozesses von 45 nm auf 28 nm für die komplette FPGA Familie ermöglicht, welcher bisher für die teureren FPGAs der Kintex- und der Virtex-Familie vorenthalten war. [xce02] Dazu ein Vergleich der kleinsten FPGAs aus der Spartan-6 und der Artix-7 Serie. XC7S6 (Spartan-6)

XC7A12T (Artix-7)

6.000

12.800

938

2.000

7.500

16.000

Max. Distributed2 RAM (Kb)

70

171

BRAM (Kb)

180

720

DSP Slices

10

40

Verfügbare I/O

100

106

Größe (mm)

8x8

10 x 10

Logikzellen Slices CLB Flip-Flops

Tabelle 2.3: Vergleich der beiden kleinsten FPGAs aus der Spartan-6 und Artix-7 Familie

1

Ein IC, welches speziell für einen bestimmten Anwendungsbereich entwickelt worden ist

2

Aus LUTs zusammengesetzter RAM

Die Artix-7 Serie umfasst die folgenden FPGAs:

Abbildung 2.4: Die FPGAs der Artix-7 Serie in der Übersicht [xil06] Tabelle 2.3 zeigt sehr gut, welche Fortschritte Xilinx zwischen 2009 (Veröffentlichung der Spartan-6 Familie) und 2010 (Veröffentlichung der Artix-7 Familie) in der FPGA Entwicklung gemacht hat. Das kleinste und neuere Artix-7 FPGA ist nur 4 mm² größer als das kleinste Spartan-6 FPGA, beinhaltet aber doppelt so viele Logikzellen und FlipFlops als das Spartan-6 FPGA.

Abbildung 2.5: Konfiguration des System Monitors der Artix-7 Serie Als weitere Features ist nun standardmäßig in jedem FPGA der Artix-7 Serie ein XADC, also einen internen ADC, sowie ein integrierter System Monitor erhalten. Begründet wurde dies damit, dass die Artix-7 FPGAs auf der bereits verwendeten Virtex Architektur, welche erstmalig 1998 eingeführt wurde (siehe Abschnitt 2.3), basiert.

Durch den System Monitor ist es erstmalig möglich bestimmte Funktionalitäten wie RAM-Spannung oder die Temperatur des FPGAs zu messen und zu überwachen (siehe Abbildung 2.5). Der integrierte XADC erleichtert es analoge Bauteile, wie Touch-Sensoren an ein FPGA anzuschließen oder Mixed-Signals, also eine Kombination aus analogen und digitalen Signalen, zu verarbeiten. Auch der PCI wurde verbessert, und gegen den 2007 eingeführten und schnelleren PCIe Gen2 eingetauscht, wodurch Datenraten bis zu 16 GB/s (x32) ermöglicht wurden. Auch an den High-speed Transceivers wurde weiter optimiert. Diese sind nun in der Lage Geschwindigkeiten von 3,75 Gbits/s zu erreichen. Typische Anwendungsbereiche für die Artix-7 Familie sind: 

Ultraschallgeräte



Digitalkameras



Infotainment Systeme



Luftfahrt (Militärisch und Zivil)



Kommunikationselektronik

Auf Grund des geringen Preises und der dennoch hohen Leistungsfähigkeit eignen sich die FPGAs der Artix-7 Serie ideal als Einstieg in die moderne Welt der FPGAs. Zu diesem Zweck bietet Xilinx diverse Development Bords zwischen 70$ und 200$ an, die teilweise auch mit Rabatten an Studenten verkauft werden. Die beiden beliebtesten Boards mit einem Artix-7 FPGA sind in Abbildung 2.6 zu sehen.

Abbildung 2.6: Ein Zybo (links) und ein Arty (rechts) Development Board von Xilinx [art01]

Als Entwicklungsumgebung für die Artix-7 FPGAs bietet Xilinx die moderne Vivado Design Suite an. Diese ermöglicht es den Kunden auf zahlreiche fertige IP-Cores, also vorgefertigte Schaltungen für ein FPGA, zuzugreifen und diese mittels grafischen Editor zu verschalten (siehe Abbildung 2.7).

Abbildung 2.7: Beispielschaltung zum Berechnen einer FFT in Hardware

2.2

Die Mittelklasse – FPGAs der Kintex-7 Familie

Die Kintex-7 FPGA Familie wurde im Jahr 2010 als sogenannte „midrange familiy“, also als Mittelklasse Familie zu den, ebenfalls 2010 eingeführten, Artix FPGAs und den bereits verfügbaren Virtex-6 FPGAs eingeführt. Xilinx hat diese FPGA-Familie als die FPGA-Familie mit dem besten Preis pro Performance Verhältnis auf dem Markt beworben. [xce02] Xilinx bewarb die Kintex-7 Familie mit den folgenden Vorteilen: 

Halb so teuer wie die Virtex-6 FPGAs (Xilinx bisheriges FPGA-Flaggschiff)



Halbe Leistungsaufnahme im Vergleich zu den Virtex-6 FPGAs



Gleiche Performance wie die Virtex-6 FPGAs



Gleicher Funktionsumfang wie die Virtex-6 FPGAs

Ziel dieser Chips sei es gewesen, so Xilinx, eine Plattform zu schaffen um kosteneffektive Signalverarbeitung auf FPGAs zu realisieren. Weiterhin wollte Xilinx mit diesen FPGAs erreichen, dass Kunden die ein bestehendes Design verbessern wollen und die bereits Spartan FPGAs verwenden nicht unbedingt auf ein Virtex FPGA ausweichen müssen. Dazu stellen die Kintex-7 FPGAs 40% mehr Performance zur Verfügung als die, zur selben Zeit vorgestellten, Artix-7 FPGAs und signifikant schneller als Spartan-6 FPGAs. [xce02]

Die Kintex-7 Serie umfasst zurzeit die folgenden FPGAs:

Abbildung 2.8: Die FPGAs der Kintex-7 Serie in der Übersicht [xil06] Eine weitere Besonderheit der Kintex-7 FPGAs ist die Implementierung von Xilinx Technologie zur partiellen Rekonfiguration der vierten Generation. Diese Technologie erlaubt es bestimmte Teile des FPGAs während des Betriebs neu zu konfigurieren, ohne dass das FPGA seine Arbeit einstellen muss. Bisher war diese Technologie ausschließlich den FPGAs der Virtex Familie vorenthalten. Durch die hohe Menge an DPS Slices (120 bis 1.540) und an internen RAM (bis zu 5.663 kbits distributed static RAM und 28.620 kbits BRAM) eignen sich die FPGAs der Kintex-7 Serie optimal für die folgenden Anwendungen: 

LTE1 Mobilfunk



Baseband Prozessoren, also die Verarbeitung und Erzeugung von Funksignalen wie GPS oder Bluetooth



Kabelgebundene Kommunikation mit hohen Datenraten, wie 10G PON2



Als OLT3 um Wohnungen mit High-Speed Internet zu versorgen



HD 3D Flachbildschirme für Konsumelektronik



Als Verbindungspunkte für Video-over-Internet



Hochleistungsbildverarbeitung für militärische Anwendung (z. B. Drohnen)

1

Mobilfunkstandard der vierten Generation, welcher ab 2004 entwickelt und im Jahr 2009 offiziell zum ersten Mal in Betrieb genommen wurde

2

Optische Zugangsnetze zwischen Vermittlungsstellen und den Kunden für z. B. Fiber To The Home, also Glasfaser nach Hause

3

Endpunkt eines passiven optischen Netzwerks (PON)

Wie auch bei der Artix-7 Familie bietet Xilinx für diese FPGAs die Vivado Design Suite als Entwicklungsumgebung an. Die Preise für verfügbare Entwicklungs- oder Schulungsboards bewegen sich, auf Grund des schon recht hohen Grundpreises der FPGAs, im Bereich von mehreren tausend Dollar.

Abbildung 2.9: Kintex-7 Entwicklungsboard [kin01] Für diese FPGAs wird zudem noch eine entsprechende und teure Lizenz für die Vivado Design Suite benötigt, weswegen diese FPGAs üblicherweise nur noch gewerblich und vereinzelnd an Universitäten oder Hochschulen genutzt werden.

2.3

High-End FPGAs der Virtex Familie – Xilinx Topprodukte genauer betrachtet

Die Virtex Familie, genauer gesagt die Virtex Architektur, wurde 1998 von Xilinx vorgestellt und veröffentlicht. Mit bis zu einer Millionen Gates war es von nun an möglich, komplette Systeme in ein einziges FPGA der Virtex Familie zu integrieren. Weitere Eigenschaften dieser neuen FPGA Familie waren [xce01]: 

Neun Chips mit einer Gate Kapazität von 50.000 bis 1.000.000 Gates



Bis zu 200 MHz Taktfrequenz im Chip, 160 MHz I/O Frequenz



DLL1 Clocking



16 I/O Standards, wie z. B. PCI oder LVTTL2



Dedizierte Logik für High-Speed Berechnungen



IEEE 1149.1 Boundary-Scan



Temperatursensor auf dem Die



220 nm Fertigungsprozess



Niedriger Einstiegspreis bei unter 10.000 $

1

Elektronische Schaltung zur Einstellung der Phasenlage. Dies wird verwendet um z. B. Gatterlaufzeiten im FPGA zu kompensieren.

2

3,3 V Logikpegel für digitale Schaltungen

Xilinx gab die folgenden neun FPGAs als Mitglieder der Virtex Familie an:

Abbildung 2.10: Die FPGAs der Virtex Familie in der Übersicht Zudem unterstützt erstmalig eine FPGA Architektur verschiedene Arten von Speicher: 

Block RAM: Dual-Port RAM mit einer Blockgröße von 4096 Bit. Die Datenbreiten beider Ports können unabhängig voneinander eingestellt werden. Die FPGAs der Virtex Familie besitzen zwischen 8 und 32 Blöcke.



Distributed RAM: Die neue Architektur der FPGAs implementiert einzelne Funktionen als LUT mit vier Eingängen (siehe Abbildung 2.11).

Abbildung 2.11: Aufbau einer Logikzelle in der Virtex Architektur Jede einzelne LUT kann als synchrones 16x1-Bit RAM genutzt werden und über die Verwendung weiterer Logikelemente kann die LUT zu einer 16x2-, 32x1-Bit oder einer synchronen 16x1 RAM-Zelle kombiniert werden. Auf diese Weise können große RAM-Strukturen mit Hilfe von Logikzellen nachgebaut werden. 

Externe RAM Bausteine: Mit Hilfe des eingebauten SSTL3 Interfaces kann das FPGA auf externe HighSpeed SDRAM- oder RAM-Bausteine zugreifen.

Über die Jahre wurde die Virtex Familie immer weiterentwickelt und im Jahr 2010 brachte Xilinx die Virtex-7 Familie auf den Markt, dessen Architektur auch Basis für die etwas preiswerteren Kintex-7 FPGAs ist (siehe Abschnitt 2.2). Aktuell umfasst die Serie folgende FPGAs:

Abbildung 2.12: Die FPGAs der Virtex-7 Serie in der Übersicht [xil09] Diese FPGAs sind in der Lage eine Performance von bis zu 4.7 TMAC1 ( [xce02] ) bei einer DPS Frequenz von 600 MHz zu erreichen. Um diese Datenmenge von dem FPGA zu der angrenzenden Peripherie zu übertragen, verfügen die FPGAs der Virtex Familie über bis zu 56 12,5 Gb/s GTX-, 96 18,3 Gb/s GTH oder 16 28,05 Gb/s GTZ-Transceiver. Für die Zwischenspeicherung der Daten sind bis zu 65 Mbits an BRAM und eine 72-bit DDR3 Schnittstelle mit 2.133 Mb/s implementiert. Xilinx verbesserte die Virtex-7 Architektur noch einmal und schuf damit die sogenannte „Ultrascale Architektur“. 2012 brachte Xilinx dann das erste 3D2 IC auf den Markt: Das FPGA Virtex-7 2000T. Dieses FPGA besitzt über 6,8 Milliarden Transistoren, zwei Millionen Logikzellen (entspricht etwa 20 Millionen ASIC Zellen) und wird in einem modernen 20 nm Verfahren gefertigt. Durch die hohe Anzahl an Logikzellen eignet sich dieses FPGA ideal für High-Performance Computing und ASIC-Prototyping [xce04]. Diese Ultrascale Architektur wurde 2015 erneut verbessert und „Ultrascale+“ getauft, welche weltweit die erste 16 nm FPGA Architektur ist [xce05].

1

106 GMAC Operationen

2

Ein IC, dessen Logik auf mehrere Schichten verteilt ist (z. B. Flash-Speicher wird heutzutage dreidimensional gefertigt um die Speicherdichte zu erhöhen)

Durch die genannten Features eignen sich die FPGAs der Virtex-7 Familie hervorragend für: 

Kabelgebundene und kabellose Netzwerkinfrastruktur, z. B. Backbones



High-Performance Computing



Militärische Radaranwendungen



100-Gbit Ethernet, z. B. für Rechenzentren



100-Gbit Optische Netzwerke und optische Netzwerkkarten mit bis zu 400-Gbit



ASIC Prototyping und Emulation (Hauptsächlich Virtex-7 2000T)



PCI Express Gen 2 & 3 Applikationen



High-End Bildbearbeitung

Als Entwicklungsumgebung bietet Xilinx für FPGAs der Virtex-7 Reihe ISE, die Vivado Design Suite oder die Vivado HLS1 an. Da ISE aber nicht mehr gepflegt wird und somit nicht alle neuen FPGAs unterstützt, empfiehlt Xilinx auch hier die Verwendung der Vivado Design Suite. Andere Firmen wie z. B. Mathworks oder National Instruments bieten für diese FPGAs oder für entsprechende Development Boards (siehe Abbildung 2.13) zusätzliche Schnittstellen an, sodass Schaltungen, welche z. B. in Simulink entwickelt und simuliert wurden, direkt in das FPGA integriert werden können.

Abbildung 2.13: Virtex-7 Development Board [vir01]

1

High Level Synthesis: Entwickeln von FPGA Schaltungen mittels C++

2.4

Die Verschmelzung von Hard- und Software – ZynqBausteine im Überblick

Logikbausteine der Zynq AP (All Programmable) SoC Familie stellen das Bindeglied zwischen einem klassischen FPGA und dem klassischen SoC dar. Sie sind eine Kombination aus einem FPGA der Artix oder Kintex Familie mit einem Cortex-A9 ARM1-Prozessor (1 bis 4 Kerne). Der Prozessor ist über einen AMBA Hochleistungsbus mit der FPGA Logik des Bausteins verbunden, wodurch es möglich ist, die Peripherie des Prozessors nach eigenen Wünschen zu erweitern und auszubauen. Die Zynq SoC wurden erstmalig im Jahr 2010 vorgestellt und gegen Ende 2011 dann zum Verkauf angeboten. Die Idee eines solchen Chips ist durch mehrjährige Erfahrung im FPGA Design und durch spezielle Wünsche der Kunden entstanden [xce03]. Ein großer Nachteil an Prozessoren, welche mit einem FPGA realisiert werden ist, dass sie langsamer sind als ein „richtiger“ Prozessor und das die Entwicklung auf solchen Systemen komplizierter ist, da erst der Prozessor in das FPGA integriert werden muss und anschließend kann dann Peripherie und Software für den Prozessor entworfen werden.

Abbildung 2.14: Blockschaltbild eines Zynq-7000 AP SoCs

1

CPU-Architektur insbesondere für Low-Power CPUs, wie sie z. B. in einem Smartphone verbaut sind.

Fortschritte in der Herstellung und der Performance stromsparender Prozessoren (in erster Linie von ARM) haben dazu geführt, dass Xilinx einen weiteren1 Versuch startete FPGAs mit fest verbauten Prozessoren zu verkaufen. Dieses Mal allerdings entschied sich Xilinx für ein Prozessordesign der britischen Firma ARM Limited. Aus der Zusammenarbeit von Xilinx mit der Firma ARM ist in diesem Zuge auch der AXI4-Standard, eine Weiterentwicklung des AXI-Busses, entstanden. Ziel dieses Standards ist es, eine Plattform zu schaffen die Hersteller von IP-Cores nutzen können um ihre Produkte miteinander zu verbinden. Ein Blockschaltbild eines ZynqChips ist in Abbildung 2.14 zu sehen. Zurzeit umfasst werden folgende Zynq-7000 Chips angeboten:

Abbildung 2.15: Die AP SoCs der Zynq-7000 Serie in der Übersicht [xil10] Die Chips sind u.a. mit den folgenden Features ausgestattet:

1



Single- oder Dual-Core Prozessor mit bis zu 1 GHz



512 kB L2 Cache, 256 kB On-Chip Memory und ein 1.866 MHz DDR3-Interface



Artix-7 bzw. Kintex-7 FPGA, welches in 28 nm gefertigt wird



2x USB 2.0, 2x Gigabit Ethernet, 2x SD/SDIO und 2x CAN, UART, SPI und I2C



Bis zu 2.020 DSP Slices mit 2.662 GMACs



AES-256 und SHA-256 Verschlüsselung

Die ersten FPGAs mit einem fest verbauten Prozessor waren Virtex-4 FX und Virtex-5 FPGAs aus dem Jahr 2000. Da es sich bei den Prozessoren aber um eine PowerPC Architektur handelte und die Prozessoren relativ performancearm waren, gab Xilinx die Idee relativ schnell wieder auf.

Xilinx verfolgte die Idee des Zynq weiter und erweiterte das Portfolio an AP SoCs um Chips mit einem Single- und einem Quad-Core Prozessor. Auch an der FPGA-Architektur der Zynq-Chips wurde gearbeitet. Xilinx kombinierte die 2015 veröffentlichte Ultrascale+ Architektur mit einem A53 oder R5 Dual- bzw. Quad-Core Prozessor der Firma ARM und schuf damit die Zynq Ultrascale+ Familie (siehe Abbildung 2.16).

Abbildung 2.16: Blockschaltbild eines Zynq Ultrascale+ [xil04] Die Serie umfasst u. a. die folgenden SoCs:

Abbildung 2.17: Einige AP SoCs der Zynq Ultrascale Serie in der Übersicht [xil11]

Auch an den Features hat Xilinx gearbeitet und diese, gegenüber dem Zynq-7000, noch einmal deutlich verbessert: 

Dual- oder Quad-Core ARMv81 Prozessor mit bis zu 1,5 GHz und 64 Bit (2,7x Leistung eines A9)



ARM Mali-400 MP2 GPU für eine Auflösung von bis zu 1080p



H.265 Video Codec für 4k



PCIe Gen3x16 und Gen4x8 über FPGA Logik realisierbar



USB 3.0, SATA 3.1 und PCIe Gen2 im Prozessor



2.666 MHz DDR4 Interface über FPGA realisierbar



6,3 TMACs an Rechenleistung mit den DSP Slices

Sowohl Zynq-7000, als auch Zynq Ultrascale+ sind speziell für die folgenden Anwendungen entwickelt worden: 

High-Performance Bildverarbeitung



Automotive (u. a. Bildverarbeitung)



4k Ultra-HDTV



Maschinelles Lernen



Medizin



Massenspeicher, wie SSDs



Professionelle Kameras



Multi-Achsen Motorkontrolle

Für Chips der Zynq Familie bietet Xilinx das Xilinx Software Development Kit an, mit dessen Hilfe die Software für die ARM Prozessoren geschrieben werden kann und die Vivado Design Suite oder die Vivado HLS um die FPGA Logik zu beschreiben. Eine Kombination aus beiden Programmen ist die sogenannte SDSoC Entwicklungsumgebung, mit deren Hilfe komplett fertige und bootbare Images von komplexen Systemen für den Zynq Chip generiert werden können [sds01]. Folgende Betriebssysteme werden unterstützt und von Xilinx gepflegt: 

Linux (sowohl PetaLinux, ein hauseigenes Linux von Xilinx, als auch eigene, mittels Yocto2 erstellte Images)



FreeRTOS für high-performance Echtzeitanwendungen



Android.



Bare-Metal, also die Implementierung von eigenem Code ohne Betriebssysteme

1

Architektur von ARM Prozessoren

2

Buildsystem für eigene Linux Distributionen

3

Verweise

[art01] Artix-7 Developmentboard. Xilinx. https://www.xilinx.com/products/boardsand-kits.html, [eet01] 1,000 processors on a Xilinx FPGA. EETimes. http://www.eetimes.com/document.asp?doc_id=1258246, [ise01] Xilinx Design Tools - ISE Design Suite. Xilinx. https://www.xilinx.com/publications/matrix/Software_matrix.pdf, [kin01] Kintex-7 Development Board. Electronicdesign. http://electronicdesign.com, [sds01] SDSoC Entwicklungsumgebung. Xilinx. https://www.xilinx.com/products/design-tools/software-zone/sdsoc.html, [spa01] Spartan-6 Development Board. Xilinx. https://www.core-vision.nl/wpcontent/uploads/2016/10/SP605-board.jpg, [vir01] Virtex-7 Development Board. Electronicdesign. http://electronicdesign.com/dsps/fpga-kits-support-fmc-mezzanine-carddevelopment, [wik01] Xilinx. Wikipedia. https://en.wikipedia.org/wiki/Xilinx, [xce01] XCell Journal 31. Xilinx. https://www.xilinx.com/publications/archives/xcell/Xcell31.pdf, [xce02] XCell Journal 72. Xilinx. https://www.xilinx.com/publications/archives/xcell/Xcell72.pdf, [xce03] XCell Journal 81. Xilinx. https://www.xilinx.com/publications/archives/xcell/Xcell81.pdf, [xce04] XCell Journal 89. Xilinx. https://www.xilinx.com/publications/archives/xcell/Xcell89.pdf, [xce05] XCell Journal 90. Xilinx. https://www.xilinx.com/publications/archives/xcell/Xcell90.pdf, [xil01] The Xilinx XC2064: the ur-FPGA. Xilinx. http://tinyurl.com/zaay9pu,

[xil02] Xilinx Spartan Product Guide. Xilinx. https://www.xilinx.com/support/documentation/data_sheets/ds060.pdf, [xil03] Xilinx Spartan-6 Product Guide. Xilinx. https://www.xilinx.com/support/documentation/selection-guides/spartan6product-selection-guide.pdf, [xil04] Zynq Ultrascale+. Xilinx. https://www.xilinx.com/products/silicondevices/soc/zynq-ultrascale-mpsoc.html, [xil05] AXI Reference Guide. Xilinx. http://tinyurl.com/glnvbr6, [xil06] Kintex-7 Product Guide. Xilinx. https://www.xilinx.com/support/documentation/selection-guides/kintex7product-table.pdf, [xil09] Virtex Product Guide. Xilinx. http://my.ece.msstate.edu/faculty/reese/EE4743/data_sheets/virtex.pdf, [xil10] Zynq-7000 Product Guide. Xilinx. https://www.xilinx.com/support/documentation/selection-guides/zynq-7000product-selection-guide.pdf, [xil11] Zynq Ultrascale Product Guide. Xilinx. https://www.xilinx.com/support/documentation/selection-guides/zynqultrascale-plus-product-selection-guide.pdf,