Hi,
ich habe hier eine Aufgabe für ein Programmierpraktikum an der Uni
gestellt bekommen. Da ich mich nicht wirklich mit FPGAs auskenne und nun
längere Zeit das Internet durchforstet habe und mir immernoch nicht
schlüssig bin auf was ich bei meiner Aufgabe genau eingehen soll, frage
ich euch als erfahrene FPGA Nutzer, was ihr meint auf was ich eingehen
könnte. Ich will natürlich keine Lösung, sondern nur Vorschläge, was
wichtig sein könnte.
Hier die Aufgabe:
Erstellen Sie eine ca. einseitige Übersicht aktueller Technologien für
mindestens einmal beschreibbare CPLDs und FPGAs: Welche Hersteller gibt
es, was sind die Leistungsmerkmale,wo kommen sie zum Einsatz, wie
unterscheiden sie sich, mittels welcher Sprachen werden sie
programmiert, in welcher Stückzahl lohnt sich ihr Einsatz,. . . ?
Ich tu mir mit der Bearbeitung der Frage irgendwie schwer, weil ich im
Internet irgendwie nicht Brauchbares finde und mir irgendwie der
Überblick fehlt.
Meine Idee war zuerst es in dieser Form zu bearbeiten:
Altera
Low-Cost-FPGA (Cyclone Series)
Merkmale: Geringer Stromverbrauch, geringer Preis
Anwendungsgebiete: Fahrzeugindustrie, Endverbraucher, Displayhersteller,
Militär, Video- und Bildverarbeitung
High-End FPGA (Stratix Series)
Merkmale: Hohe Dichte an Logikbausteinen, geringer Stromverbrauch, hohe
Performance
Also die Serien der 4 größten Hersteller auf diese Art und Weise
aufzuzählen, weil mir nichts Besseres einfiel, aber irgendwie befriedigt
mich die ganze Sache nicht.
Habt ihr evtl eine Idee auf was ich eingehen kann?
Danke auf jeden Fall mal schon!
> weil ich im Internet irgendwie nicht Brauchbares finde
Geh in die UNI-Bibliothek, greif dir aktuelle Bücher zum Thema FPGAs
heraus und schlag in den erten 25 Seiten jedes Buches nach. Dann hast du
mal eine Ahnung, in welche Richtung du gehen mußt.
> einseitige Übersicht aktueller Technologien
Eine Seite ist knapp.
Da kannst du bestenfalls am Lack kratzen...
BTW:
ein Haupmerkmal ist z.B. eine Instant-On Fähigkeit (Actel,
Flash-basierte FPGAs). SRAM-basierte FPGAs müssen dagegen erst geladen
werden.
Das mit dem Verwendungszweck ist nicht leicht zu sagen weil es von jeder
FPGA Serie fast eine für Automotiv, MIL, Multimedia, erweiterter
temparaturespanne oder sogar RAD HARD(aerospace usw).
Schau dir mal die Spartan 3 Serie an von Xilinx da gibts allein 3
verschiedene Modelle mit ihren eigenheiten und einige verschiedene
Varianten an Logikdichte usw.
http://www.xilinx.com/products/spartan3a/
MFG Patrick
Ja ich danke euch beiden.
Das mit dem Verwendunszweck habe ich auch schon gesehen und da blickt
man gar nicht mehr durch. Ich werde es wohl nun so machen und ein zwei
Beispiele für FPGAs mit HardCores bzw. SoftCores und kurz sagen, wofür
man es diese Cores benötigt. Das mache ich dann auch mit SRAM- und
Flashbasierte FPGAs und dann muss ich mal noch weiterschauen, was ich so
nehmen werde :)
Ich würd auch auf die Softcores auch nicht so ein gehen, sondern einfach
das ganze auf 3 Teile Gliedern:
IPs
Features der FPGA
Entwicklungs umgebung
Bsp
Xilinx Algemein:
Auszug der Angebotenen IPs
* Ethernet Solutions
* Endpoint for PCI Express
* PIPE Endpoint for PCI Express
* PCI 32-bit/64-bit Cores
* Forward Error Correction Solution
* DSP IP Cores/Algorithms
* Processor IP
* MicroBlaze™
* PicoBlaze™
* External Memory Solutions
FPGAs
Spartan 2:
Spartan 3:
*DSP-Hard Blocks
*I/Os bis zu 600Mb/s
*50,000 to 3.4 million system gates
*Model mit Userflash
*bis zu 320MHz (teoretisch ;-))
Also in die richtung würd ich das machen. So bekommt man einen kleinen
überblick über die leistungsfähigkeit.
Wobei zu sagen ist das ich das auch nur für die Populärsten/meist
verwendeten FPGAs machen würde. Wer was spezielles sucht der kann sich
eh was im inet suchen.
> IPs> Features der FPGA> Entwicklungs umgebung
Die Reihenfolge ist m.E. falsch.
Zuerst kommt das FPGA mit seinem grundlegenden Aufbau (Technik).
Dazu die dedizierten Features (Multiplizierer, RAM, Prozessorkerne...).
Dafür braucht man dann eine Entwicklungsumgebung.
Damit können dann IP-Cores erstellt werden.
Naja das mit IP-Cores ist nicht unbedingt das letzte.
Man muss sich ja erst die Fragen beantworten:
Was will ich überhaupst machen?
Wieviele I/Os brauch ich ?
Wieviele Resourcen brauch ich ?
Welche Features muss ich haben? (Serielle hochgeschwindigkeits I/O,
Differentielle, DSP-Hard Cores usw)
Dann kann ich mal sehen was ich für ein Modell an FPGA an nehm (Ok die
Entwicklungsumgebung steht meistens nach der Wahl der FPGA eh schon
fest)
MFG Patrick
P.S.: Außer Lothar du arbeitest mit nem Virtex 6 Schlachtschiff dann
würd ich nach deiner Reihenfolge vorgehen weils fast nimmer "Fetter"
gehts bei Xilinx wenn ich mich ned ganz irre
Also ich habe nun mehr oder weniger CPLDs mit FPGAs verglichen und nun
bin ich an dem Punkt, an dem ich ein paar Leistungsmerkmale von CPLDs
aufzählen will.
Hab da nun schon ein paar Punkte dazu, aber irgendwie bin ich mir da
relativ unschlüssig. Da ich das alles auf ca. eine Seite hauen soll,
muss ich das ja schon sehr grob beschreiben.
Meine Punkte sind dann bisher, die Sicherheit bzgl. Designdiebstahls,
welchen Stromverbrauch sie haben, welche interne Taktfrequenz, welche
Eingangs- und Ausgangsspannungen an den Schnittstellen erlaubt sind und
welche räumliche Dichte sie besitzen.
Ja meine Beschreibung der Leistungsmerkmale hört sich sehr laienhaft an,
da ich auch ein Laie in dem Gebiet bin, aber aus der Masse an Features
die zu den CPLDs auf den verschiedenen Herstellerseiten weiß ich echt
nicht, was ich herausziehen soll...
Ich danke schon mal im Voraus für eure Ideen.
Anzahl der Logikzellen
Struktur der Logikzellen (CPLD - breite, grosse Dekoder in UND-ODer
Matrix, FPGA - kleine, RAM-basierte Look Up Tables)
Sonderfunktionen wie RAM-Blöcke, CPUs, Ethernettranceiver, Gbit- SerDes,
etc.
Preis/Logikzelle
MFG
Falk
'Struktur der Logikzellen (CPLD - breite, grosse Dekoder in UND-ODer
Matrix'
So ganz stimmt das nicht mehr. Moderne CPLDs besitzen eine ähnliche
Struktur wie FPGAs --> SRAM basierte Logigstrukturen, die über einen
integrierten Flash Speicher konfiguriert werden.
Es gibt da ein sehr tolles Buch - "FPGAs for Dummies". Der Titel ist
zwar nicht so nett, aber das dürfte ziemlich genau alle Fragen
beantworten, die du hier gestellt hast.