Forum: FPGA, VHDL & Co. Entscheidungshilfe FPGA oder µC


von Stefan K. (stefan82)


Lesenswert?

Hallo zusammen,
hab mich hier so ein wenig zum Thema FPGA durchs Forum gelesen weiß aber 
leider immer noch nicht so richtig weiter.

Für meine Dipl. Arbeit muß ich zwei sich mit etwa 50kHz verändernde 
Gleichspannungen über einen ADU (evtl. ad9248 20MSP) digitalisieren die 
Werte in einer Art Tabelle sortieren, und über eine noch zu 
dimensionierende Schnittstelle (vermutlich Wlan über WiPort) an einen PC 
weitergeben.

Für einen FPGA spricht soweit ich das bisher verstanden habe seine 
Geschwindigkeit, seine Flexibilität und somit seine Erweiterbarkeit der 
in ihm dargestellten HW für spätere Erweiterungen wie zum Bsp. eine 
Vorprozessierung der aufgenommen Daten. Zudem könnte ich evtl ADU  µC  
und Ausgabeschnittstelle in dem FPGA integrieren.

Gegen einen FPGA spricht jedoch nach meinen bisher rudimentären FPGA 
Kenntnissen, dass ich mir für den FPGA quasi für jede Aufgabe zunächst 
einen passenden Core bauen müsste und dies wohl der Aufgabe der 
Schaltung gegenüber ein wenig oversized wäre, da die Arbeit wohl 
eigentlich auch von einem µC + ad + wiport + ein wenig ram erledigt 
werden könnte, oder?

Zudem habe ich noch keinerlei Kenntnisse in VHDL, habe bisher nur in C 
und Assembler programmiert (Basic und Pascal mal außen vorgelassen). Wie 
groß ist so grob der Aufwand sich in VHDL einzuarbeiten?

Ich bin bisher der Ansicht, dass eine komplett Realisierung der Aufgabe 
in einem FPGA inkl Einarbeitung in die Programmierung mit VHDL binnen 6 
Monaten ein wenig zu eng wird, kann mich da jemand vom Gegenteil 
überzeugen?



Vielen Dank für jegliche Antowrt und Ratschlag!
(Ausser denen die beleidigend sind ;) )

Gruß Stefan

von hmm (Gast)


Lesenswert?

Tja, was gibts da zu überlegen.

Du bist Student, also Lernender.
Also mach das was Du noch nicht kannst.

Wenn überschaubar wird, das eine VHDL-Lösung von der Zeit zu
aufwendig wird, kannst Du immer noch einen Softcore nehmen.

von Ron (Gast)


Lesenswert?

Das hängt ganz davon ab, was mit den Daten genau geschehen soll. Wenn es 
nur darum geht, die AD Messwerte wegzuschreiben bzw. an den PC zu 
senden, dann sollte das mit einem Mikrocontroller kein Problem sein.
Sollen allerdings noch aufwändige Vorverarbeitungen (z.B. FIR-Filter 
oder ähnliches) in Echtzeit durchgeführt werden, ist die Lösung mit 
einem FPGA angebracht.

Den größten Spielraum lässt dir natürlich der FPGA. Wenn du ein 
ausreichend großes Modell nimmst (Stratix oder Stratix II von Altera 
beispielsweise), bevorzugt auf einem Evaluation Board, dann kannst du da 
problemlos einen Prozessor drauf synthetisieren, der in C oder C++ 
programmiert werden kann. Bei Bedarf kann dieser dann mit VHDL Einheiten 
erweitert werden.

von Stefan K. (stefan82)


Lesenswert?

Hallo nochmal,
und schon mal vielen Dank für die obigen Antworten!

Also wenn ich das im Moment richtig verstehe bräuchte ich einen µC Core 
der die Datenverarbeitung übernimmt letztendlich nicht unbedingt selber 
zu programmieren, hier könnte ich ja evtl. einen fertigen Softcore her 
nehmen und ihn wie gewöhnlich mit C / ASM programmieren?

Einen AD Wandler mit 20 MSPS in einem FPGA abzubilden halte ich im 
Moment nicht für sinnvoll, da ich vermute, dass ich da die 
Geschwindigkeit nicht raus holen kann oder? Also würde ich den AD9248 
trotz FPGA nehmen und "einfach" davor setzen.

Letzendlich würde ich in der momentanen Planung einfach nur einen µC in 
einem FPGA synthetisieren und mir somit alle Erweiterungsoptionen offen 
halten.

Digitale Filter und evtl. Bildverbesserungen sind zwar nicht teil meiner 
Arbeit, aber durchaus in Planung. Aus diesem Geschtspunkt wäre es 
natürlich sinnvoll sich diese Optionen offen zu halten.

Bin für weitere Ratschläge und Infos zu günstigen EVAL Boards dankbar!

Gruß Stefan

Edit:
Würde dieses Evalboard fürs Erste reichen?

http://www.xilinx.com/products/devkits/HW-SPAR3A-SK-UNI-G-image.htm

kann man Designs die man für diesen FPGA programmiert hat später auf 
größere FPGAs übertragen? Bekannte Probleme?

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


Lesenswert?

> muß ich zwei sich mit etwa 50kHz verändernde Gleichspannungen ...
Meine Gleichspannungen haben  f=0 Hz  :-)

Wenn du 50kHz Gleichspannung hast, wozu brauchst du dann
> ... einen AD Wandler mit 20 MSPS ...


> hier könnte ich ja evtl. einen fertigen Softcore her
> nehmen und ihn wie gewöhnlich mit C / ASM programmieren?
Wieviel Zeit hast du? Wieviel Geld hast du?


> Würde dieses Evalboard fürs Erste reichen?
Kauf dir gleich noch ein paar dieser absurden Stecker dazu...   :-/
Die gibts nicht an jeder Ecke.

von Karl M. (movex)


Lesenswert?

Ich würde als Kompromiss evt. einen DSP in Betracht ziehen, einfach zu 
programmieren v.a. in Bezug auf Filter, schneller AD Wandler onboard und 
massig Schnittstellen. Da würde z.B. sogar ein 16-bit DSP wie der 
56F801x reichen.


Ohne VHDL Kenntnisse ist man da schneller am Ziel.

von Stefan K. (stefan82)


Lesenswert?

> muß ich zwei sich mit etwa 50kHz verändernde Gleichspannungen ...
>> Meine Gleichspannungen haben  f=0 Hz  :-)

Das dieser Einwand kommen würde war mir bewusst. Mit der Bezeichnung als 
DC wollte ich nur verdeutlichen, dass es sich hierbei nicht um ein 
periodisches Signal handelt. Die Spannungen stellen Phasen- und 
Amplituden Informationen einer vorherigen I/Q-Demodulation dar.

>Wenn du 50kHz Gleichspannung hast, wozu brauchst du dann
>> ... einen AD Wandler mit 20 MSPS ...

Prinzipiell hast du recht, ein 20MSPS AD Umsetzer ist oversized, aber 
den müsste ich nicht beschaffen, der liegt hier schon rum.

Zeit habe ich in etwa 6 Monate, Finanziell ist das Projekt relativ 
belastungsfähig, aber übertreiben sollte ich natürlich nicht :)

> Kauf dir gleich noch ein paar dieser absurden Stecker dazu...   :-/

Bessere Vorschläge? ... Such mich grad durch die Altera Website nach nem 
günstigen Board für den Stratix, habt ihr dazu Vorschläge?

Danke!

CU Stefan

von Uwe Bonnes (Gast)


Lesenswert?

Wo liegt den das Know-How der Kollegen/Betreuer?  In der Gruppe kann man 
sich gegenseitig helfen, dass sollte die Entscheidung auch beeinflussen

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


Lesenswert?

> Bessere Vorschläge?
Nein, das Board ist sein Geld durchaus wert, aber du solltest gleich ein 
paar der Stecker (z.B. bei Trenz) mitbestellen, sonst wartest du nochmal 
eine Woche, bis du loslegen kannst.

von ms (Gast)


Lesenswert?

Und das soll ne Diplomarbeit werden?

Welcher Studiengang? Welche Uni/FH?

von Christian R. (supachris)


Lesenswert?

Stefan K. wrote:

> Einen AD Wandler mit 20 MSPS in einem FPGA abzubilden halte ich im
> Moment nicht für sinnvoll, da ich vermute, dass ich da die
> Geschwindigkeit nicht raus holen kann oder? Also würde ich den AD9248
> trotz FPGA nehmen und "einfach" davor setzen.

Anders gehts auch gar nicht. Ein FPGA arbeitet rein digital, da kann man 
keinen AD-Wandler synthetisieren. Der muss auf jeden Fall extern davor.

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


Lesenswert?

> Wo liegt den das Know-How der Kollegen/Betreuer?
Das ist ganz wichtig.
Du wirst nicht glauben, wie verloren du dastehst, wenn dir keiner einen 
Tipp geben kann... :-/

@ Christian
> Ein FPGA arbeitet rein digital,
> da kann man keinen AD-Wandler synthetisieren.
ACTEL Fusion?
Aber der ist zu langsam...  :-/

von Christian R. (supachris)


Lesenswert?

Lothar Miller wrote:

> @ Christian
>> Ein FPGA arbeitet rein digital,
>> da kann man keinen AD-Wandler synthetisieren.
> ACTEL Fusion?
> Aber der ist zu langsam...  :-/

Naja, der ist ja schon da als Hardware drauf, er wollte ja einen 
synthetisieren....oder was immer "abbilden" auch heißt.

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


Lesenswert?

> Naja, der ist ja schon da als Hardware drauf, er wollte ja einen
> synthetisieren....oder was immer "abbilden" auch heißt.
Naja, das liefe ja auf ein ASIC raus  :-/
Ich beschreibe z.B. für ein Xilinx-FPGA ein getaktetes RAM und das Ding 
wird als BRAM instantiiert, habe ich dann kein RAM synthetisiert?

Fazit: Hurra, das Haar ist gespalten.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Beitrag "uC ersetzen?!" Verweiß ich einfach mal 
drauf ;)

von Der L. (vhdl-neuling)


Lesenswert?

Ich wollte auch gerade verweisen :D

Also zum Thema VHDL als Neuling: Ist etwas seltsam sich als C-konformer 
Programmierer an diese Denkweise zu gewöhnen, aber durch die schöne 
Simulationsmöglichkeit (waveform) kann man schnell sehen, was klappt und 
was nicht. Der Aufwand für einfache Anwendungen ist nicht allzu hoch. 
Das Buch VHDL-Synthese (Reichardt/Schwartz) ist da wirklich zu 
empfehlen.

Da ich auch einen uC brauche, versuche ich den jetzt mit dem NIOS II auf 
dem FPGA zu synthetisieren. Inwieweit das gutgeht, kann ich erst nächste 
Woche sagen :D

von Stefan K. (stefan82)


Lesenswert?

Also erstmal danke für Eure Antworten! Zur Frage ob DAS eine Diplomarbei 
sein soll habe ich momentan selbst noch so meine Bedenken da die reine 
Datenaufnahme und Weitergabe über eine Schnittstelle mit dem bischen 
Puffern zwischendurch wohl "etwas" wenig. Habe am Montag aber ein 
Gespräch mit dem Projektbetreuer, da werd ich da mal aushandeln wieviel 
von der weiteren Signalverarbeitung, die sonst auf einem embedded-PC 
passieren soll ich in meine Arbeit vllt. schon mit einbeziehen könnte.

Zu meinem Studiengang:
Dipl. Elektrotechnik - Fachrichtung Nachrichtentechnik (FH)

Gruß Stefan

P.S.: Schönes Wochenende!

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.