Forum: FPGA, VHDL & Co. Welchen FPGA


von Steffen (Gast)


Lesenswert?

Hallo,

ich studiere Maschinenbau und komme daher aus einem etwas unüblichen 
Bereich für die arbeit mit FPGAs, dennoch hat es sich so entwickelt, 
dass ich nun eine auf einem FPGA basierende Steuerung realisieren soll. 
Ich habe Erfahrungen mit Mikrokontrollertechnik und anderen 
Programmiersystemen, aber mit FPGAs hatte ich bisher noch nicht zu tun.
Mit VHDL werde ich wohl ganz gut zurecht kommen, allerdings habe ich 
keine Ahnung welchen FPGA ich am besten einsetzten soll und ich hoffe 
Ihr könnt mir helfen mich im Marktangebot zurecht zu finden.
Natürlich weiß ich, dass der FPGA von der Anwendung abhängig ist aber da 
fängt es schon an. Ich will nicht alle Spezifikationen für die Steuerung 
hier auflisten, zumal sich da immernoch etwas ändern kann.
Vielleicht könntet ihr auch eine kleine Liste mit Fragen zusammenstellen 
die ich mir stellen muss um die Auswahl einzugrenzen.

Danke im Voraus
Steffen

von D. I. (Gast)


Lesenswert?

Spartan 3, Virtex 5?

Hängt nun wirklich arg von der Art der Steuerung ab die du machen 
willst.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Ich will nicht alle Spezifikationen für die Steuerung hier auflisten
Aber so ein paar Eckdaten wären schon sinnvoll fürs Ratespiel  :-o
Sonst hat man ja alle Freiheitsgrade vom kleinsten Lattice MachXO (5€) 
bis zu den absoluten High-End-Geräten (pro Stück 1k€ aufwärts).

Rechengeschwindigkeit?
IO-Bedarf?
Kosten?

BTW: eine Steuerung "nur" auf einem FPGA aufzubauen ist eigentlich 
ineffizient. Denn dazu mußt du einen Prozessor ins FPGA implementieren, 
der auf jeden Fall weniger effizient ist, als ein dedizierter 
Rechenknecht. Im IO-Bereich und zum Vorverarbeiten von schnellen 
Eingangssignalen (100kHz aufwärts) ist ein FPGA dagegen schon sinnvoll.

von Andy M. (andz)


Lesenswert?

Oder vielleicht die Frage ob ein CPLD Reicht...Aktuelle CPLDs wie z.B. 
der MAXII von Altera sind schon rel. komplex. Solang du keinen Softcore 
für deine Steuerung benötigst, kannst dich  zei mal in die Richtung 
bewegen. Hauptvorteil hier ist neben dem Preis auch die Tatsache das ein 
CPLD nichtflüchtig ist, du also keinen externen Config-Flash braucht.

Ich arbeite zur Zeit mit einer Kombindation aus MAXII CPLD in 
kombination mit einem Atmega32, vlt. wäre eine solche rel. 
kostengünstige Kombination besser als ein kompllexer FPGA mit extra 
config-flash.

Gruß

Andz

von Steffen (Gast)


Lesenswert?

Hallo,
erstmal danke für die Anworten.
Ich gehe derzeit davon aus, dass ich maximal 13 Ausgänge und 4 Eingänge 
brauche, wobei 1 Ausgang eventuelle analog werden muss, also A/D-Wandler 
mit geringer Auflösung. Zusätzliche 12 Ein-/Ausgänge gehören zur 
Kommunikation, wo theoretisch auch ein BUS verwendet werden könnte. Die 
Rechengeschwindigkeit ist eher nebensächlich der Preis schon wichtiger, 
ein CPLD ist auch eine gute Möglichkeit.
Idealerweise wollen wir die Steuerung ohne MC realisieren und lediglich 
mit Logig das Programm umsetzen. Vom reinen Programmablauf sehe ich da 
eigentlich keine Probleme, da die komplexeren Strukturen für die Aktorik 
von fertigen Motorsteuerungen übernommen werden und lediglich die 
Eingangsbefehle für die Motorsteuerungen generiert werden müssen. Etwas 
anderes ist die Erzeugung von Random Daten, die nach derzeitiger Planung 
verwendet werden sollen. Kann man einen Zufallsgenerator auf CPLDs 
realisieren oder benötigt man da unbedingt einen MC?
Kann man CPLDs genauso beschreiben(VHDL) wie FPGAs oder ist das wieder 
eine eigene Sprache und Hardwareumgebung?
Wie kann man einen BUS an CPLDs bzw FPGAs anschließen, benötigt man 
einen MC für die Kontrolle?

Gruß
Steffen

von Peter (Gast)


Lesenswert?

wenn geschwindigkeit und nur ein paar ein und ausgänge gebraucht werden 
warum dann überhaupt einen FPGA und nicht ein µC?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Kann man einen Zufallsgenerator auf CPLDs realisieren
Ja, Stichwort LFSR
> Kann man CPLDs genauso beschreiben(VHDL) wie FPGAs oder ist das wieder
> eine eigene Sprache
Nein. Das geht ganz gut in VHDL...
> und Hardwareumgebung?
Das allerdings. In CPLDs hast du nur sehr wenige Speicherelemente 
(Flipflops).

> Die Rechengeschwindigkeit ist eher nebensächlich
Also ein uC.
> der Preis schon wichtiger,
Also ein uC.
Billiger wird das weder mit einem FPGA noch mit einem CPLD, weil:
> ein CPLD ist auch eine gute Möglichkeit.
... da passt sowas nicht rein, da bin ich mir sicher. Wenn du einen 
uC-Core im FPGA implementierst, brauchst du externen Speicher.

> Idealerweise wollen wir die Steuerung ohne MC realisieren
Wer stellt diese (absurde) Anforderung?
Das ist wie wenn du ein Haus bauen sollst, aber idealerweise mit einem 
Plasmaschneider und einem Schweißinverter. Das sind beides High-Tech 
Werkzeuge, aber leider die falschen. Genauso ist ein FPGA für deine 
Anforderungen (langsam, analog, billig) das falsche Werkzeug.

> Wie kann man einen BUS an CPLDs bzw FPGAs anschließen, benötigt man
> einen MC für die Kontrolle?
Nein.
Aber irgendwie scheint mir, dir fehlt grundlegend das 
Vorstellungvermögen, was deine Aufgabe ist, und wie die am 
effizientesten zu lösen ist. Sieh dir doch einfach mal Evaluationboards 
von FPGAs und Microcontrollern an und lies die Application-Notes und die 
Programmbeispiele dazu.

von Johnny B. (johnnyb)


Lesenswert?

Also wenn mich nicht alles täuscht, dann geht man bei der Entwicklung 
von FPGA Projekten völlig anders vor als bei Mikrocontrollerprojekten.
Bei Mikrocontrollerprojekten legt man erst den uC fest und beginnt dann 
mit dem Coden. Bei FPGA Projekten fängt man an zu programmieren und das 
Tool wir einem dann schliesslich sagen, in welches Derivat das Zeug 
schliesslich noch reinpasst.
Du müsstest also nur den Hersteller und die Produktefamilie ein wenig 
eingrenzen um beginnen zu können.

Aber ich arbeite nicht mit FPGA's, daher ist mein Halbwissen vielleicht 
nicht mehr aktuell...

von Steffen (Gast)


Lesenswert?

Freut mich, dass Ihr das Ähnlich seht wie ich, je mehr ich mich mit 
FPGAs oder CPLDs beschäftige desto mehr frage ich mich ob die Idee diese 
Aufgabe so zu lösen wirklich sinnvoll ist. Ich habe bereits bei meiner 
letzten Projektarbeit eine auf Mc basierende Steuerung für eine ähnliche 
Aufgabe entwickelt und da währe eine CPLD Unterstützung sinnvoll 
gewesen, da vier inkrementalgeber abgefragt werden mussten und der MC 
damit schon zu 90% ausgelastet war. Aber das übernimmt hier die 
Motorsteuerung des Herstellers.
Leider würde die Arbeit damit für mich etwas an Reiz verlieren, da ich 
mit MCs schon gearbeitet habe und das kaum neues für mein Studium 
bietet. Ich werde mal mit meinen Betreuern sprechen was wir am besten 
machen.

Danke
Steffen

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> und da währe eine CPLD Unterstützung sinnvoll
> gewesen, da vier inkrementalgeber abgefragt werden mussten
Richtig, hier könnte ein CPLD gut weiterhelfen, insbesondere, weil die 
wenigsten uC ein Quadratur-Interface haben.

Aber auch ein Softcore in einem FPGA ist letzendlich "nur" ein uC. Er 
ist in VHDL beschrieben und wird dann auch wie ein uC programmiert: in C 
oder Assembler. U.U. machst du dann auf dem FPGA genau das selbe wie mit 
einem uC.

von Steffen K. (fenert)


Lesenswert?

Danke nochmals für die Hilfe,

das Projekt wird jetzt umgestellt und mit einem uC realisiert, dazu 
findet Ihr einen neuen Beitrag im entsrechenden Forum.

Beitrag "Steuerungsprojekt mit bidirektionaler Kommunikation"

Steffen

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.