Forum: FPGA, VHDL & Co. Kaufberatung


von FH_Student (Gast)


Lesenswert?

Hallo,

suche ein GÜNSTIGES FPGA/Eval board mit mindestens 100 MHz.
Bevorzugte Hersteller Altera oder Xilinx.

Zusätzlich wäre es gut, wenn man es möglichst einfach an den PC 
anschließen kann zur Programmierung!

MfG

von Marius W. (mw1987)


Lesenswert?

Könnte dir für 120 € ein Altera DE1 anbieten... Das hat zwar nur einen 
50 MHz Quarz an Board, aber da der FPGA ja 4 PLLs bietet, lassen sich 
natürlich auch höhere Frequenzen erzeugen.

Link zum Board gibts hier: 
http://www.altera.com/products/devkits/altera/kit-cyc2-2C20N.html

Mit dem Board habe ich angefangen FPGAs zu programmieren und kann das 
nur weiter empfehlen. Hat eine ganze Menge schöner Hardware an Board und 
lässt sich dank der 40-poligen GPIO-Leisten leicht erweitern.

Bei Interesse meld dich einfach per PN...

Gruß
Marius

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


Lesenswert?

FH_Student schrieb:
> suche ein GÜNSTIGES FPGA/Eval board mit mindestens 100 MHz.
Schreck lass nach, ist diese MHz-Manie jetzt schon bei den FPGAs 
angekommen... :-O

Kurz: wenn du in ein schnelles FPGA, das der Hersteller mit 750 MHz 
verkauft, dein schnarchlangsames Design reinpackst, dann kann auch 
dieses schnelle FPGA u.U. nur noch 20 MHz. Und das geht unglaublich 
leicht. Man muss dafür nur Anfänger sein...
Ein anderer kann auf einem Low-Cost-FPGA dagegen lokal auch mal mit 250 
MHz arbeiten. Das wäre dann eher der Profi...

von FH_Student (Gast)


Lesenswert?

Also, da ich Anfänger bin tendiere ich zu der ersten Variante.

Preis des FPGAs darf ruhig zwischen 300-500 Euro liegen. Wichtig ist mir 
das er mindestens 100 MHz von Haus aus hat.

von Marius W. (mw1987)


Lesenswert?

FH_Student schrieb:
> suche ein GÜNSTIGES FPGA/Eval board

FH_Student schrieb:
> Preis des FPGAs darf ruhig zwischen 300-500 Euro liegen.

Interessant...

von Martin S. (sirnails)


Lesenswert?

Mal anders herum gefragt: Warum sollen es 100MHz sein? Ich hab bei mir 
an der Uni letztes Semester eine Bachelorarbeit mit dem DE2-Board 
gesehen. Dabei wird ein Kamerabild einer PAL-CMOS-Camera gelesen, mit 
vergleichsweise komplexen Videofiltern bearbeitet, und auf einem Monitor 
in Echtzeit mit Bewegungsrahmen (d.h. also optischen Kästchen um jedes 
bewegte Bildsegment herum) auf einem PC-Monitor dargestellt. Dabei kann 
man an der Schalterleiste zwischen verschiedenen Darstellungen zwischen 
Normalfarbe ohne Änderung, alle Änderungen rot, rest Schwarz usw. 
umschalten.

Sogar meine Professoren waren darüber erstaunt, dass der vergleichsweise 
alte Cyclone II dafür schnell genug ist, wenn man es anständig 
implementiert.

Ich habe auch mal zum Spaß einen Sinusgenerator mit dem FPGA 
implementiert (einfach ein Flipflop, dessen ausgang rückgekoppelt wird). 
Dann wird aus dem Rechteck am Ausgang ein 800MHz Sinus und das Teil 
sogar warm ^^

von FH_Student (Gast)


Lesenswert?

Sowas ähnliches möchte ich auch machen:

Ich möchte ein Bild von einem Grafik Display lesen und es an den PC 
senden, um es dort mit Bildverarbeitung zu bearbeiten.

Mir wurde gesagt das ich dazu mindestens 100MHz benötige, das ich beim 
Kauf darauf achten soll.

Aber ich lasse mich gerne beraten. Ihr habt mehr Erfahrung, um das zu 
beurteilen.

Schon mal vielen Dank für die Hilfe!

von Lattice User (Gast)


Lesenswert?

FH_Student schrieb:
> Ich möchte ein Bild von einem Grafik Display lesen und es an den PC
> senden, um es dort mit Bildverarbeitung zu bearbeiten.


Und wie kommt das Bild auf das Grafikdisplay?

von Christian R. (supachris)


Lesenswert?

100MHz schafft doch fast jeder aktuelle FPGA, wenn das Design synchron 
ist und über Pipeline-Stufen verfügt (wenig Logik zwischen 2 FlipFlops). 
Wichtiger ist da eher die Anzahl der LUTs und FlipFlops, das müsstest du 
wissen, was du brauchst. Wir haben hier zum Beispiel ein Design mit dem 
Spartan 3e 500, etwa 60% voll, 2/3 davon laufen mit 100MHz und der Rest 
mit 40MHz, und der FPGA kostet um die 20€. Auch der interne BlockRAM und 
die DSP Module laufen mit weit über 100MHz.

von Mike (Gast)


Lesenswert?

@FH-student
In der heutigen Zeit ist es üblich FPGAs mit niedrigen Taktraten zu 
versorgen (Bsp: 50Mhz), und diese später per PLL (Altera) oder 
DCM(Xilinx) zu verändern, Je nach Design kann man so bis in den GHZ 
bereich vordringen.

Wenn du wirklich bereit bist 300-500€ auszugeben dann kauf dir ein 
DE2-115 um ca 300€, das erfüllt (überschreitet) micht sicherheit was ihr 
fordert/braucht, außerdem hat es einfache Connectoren, und Altera hat 
den Vorteil das "SignalTap" schon enthalten is was bei Xilinx mit 
Chipscope nicht der fall ist in der Gratis editon.

http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=139&No=502

lg Mike

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


Lesenswert?

FH_Student schrieb:
> Wichtig ist mir das er mindestens 100 MHz von Haus aus hat.
Falls mein Post zu komplex war: jedes FPGA kann heutzutage 100MHz.
Du selber bestimmst aber (in weiten Grenzen), wie schnell dein Design 
auf dem FPGA laufen wird. Und ein komplettes Design auf einem günstigen 
FPGA mit 100MHz zum laufen zu bekommen, bedarf trotzdem einiger 
Erfahrung. Du wirst da anfangs öfter mal die Augen aufmachen...

FH_Student schrieb:
> Ich möchte ein Bild von einem Grafik Display lesen
Dann solltest du die Logik umdrehen: du sollst ein Display nachbilden 
und die Daten nach dem Empfang an den PC senden. Wie willst du das Bild 
denn an den PC senden? So in Echtzeit, meine ich?

> Mir wurde gesagt das ich dazu mindestens 100MHz benötige
Von wem?
Du mußt so schnell sein wie das Display, denn dessen Schnittstelle 
sollst du ja nachbilden...

> Ich möchte ein Bild von einem Grafik Display lesen
Warum kommt mir das so bekannt vor? Da war doch vor kurzem jemand, der 
das sowas ähnlich auch wollte....
Da isser, der Beitrag "LCD Display lesen per FPGA"

von FH_Student (Gast)


Lesenswert?

Hallo Lothar,

ja genau das Bild soll in Echtzeit an den PC gesendet werden.

Für mein Grafik Display brauche ich mindestens 100MHz.

In der Tat ist das unten genannte Thema ähnlich meinem Anliegen nur das 
ich das ganze mit einem Grafik Display umsetzen möchte.

Welche Hardware würde denn für diese Aufgabe am besten passen? Wie 
gesagt zwischen 0-500 Euro sind drin, wobei günstig natürlich zu 
bevorzugen ist. Und sollte evtl. umgänglich für Anfänger sein (wie Mike 
z.B. schrieb mit den Vorteilen von Altera).

Vielen Dank!

von nur meine Meinung (Gast)


Lesenswert?

Also ich würde mich für einen Hersteller (Xilinx oder Altera) 
entscheiden und erst mal anfangen (ohne Board ! ! !) zu entwickeln. Mit 
einem gescheiten Simulator den Code immer Schritt für Schritt 
verifizieren und erst in der letzten Phase schauen wie groß der FPGA 
sein muss und mir dann ein entsprechendes Board kaufen. Du ärgerst dich 
sonst nur über deine Kaufentscheidung weil genau das andere Board besser 
gepasst hätte und du jetzt kompromisse eingehen musst.

Ansnsten geh doch einfach nächste Woche auf die Embedded und lass dir 
ein paar Boards zeigen =)

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


Lesenswert?

FH_Student schrieb:
> Für mein Grafik Display brauche ich mindestens 100MHz.
Glaubst du das oder weißt du das? Können es nicht sogar noch mehr sein? 
Denn du mußt die Daten ja auch wieder zurück an den PC senden. Und/Oder 
zwischenpuffern...
> Für mein Grafik Display brauche ich mindestens 100MHz.
Wie gesagt: das kann jedes FPGA. Es kommt aber sehr darauf an, was 
du ins das FPGA reinbastelst. In der Tat glaube ich z.B. dass dein 
Design dieses Timing auf Anhieb nicht schafft. Auch mit einem schnellen 
FPGA nicht. Aber ich meine, sowas ähnliches schon mal erwähnt zu 
haben...

Sonst: wenn du eine Affinität zu irgendeinem Hersteller hast, dann nimm 
den. Denn wenn dir jamend rät, den Hersteller B zu nehmen, dir aber der 
Hersteller A besser gefallen hätte, sagst du hinterher immmer: "Hätte 
ich nur den A genommen, dann wäre ich jetzt schon fertig!"

Nochmal zusammenfassend: jeder FPGA-Hersteller bitet dir heute Produkte, 
mit denen du deine Aufgabe lösen kannst. Ich würde Lattice oder Xilinx 
nehmen, weil ich die Dinger kenne. Und: jede Toolchain hat Macken, 
trotzdem bekommst du mit jeder Toolchain ein FPGA beschrieben.

nur meine Meinung schrieb:
> Mit einem gescheiten Simulator den Code immer Schritt für Schritt
> verifizieren und erst in der letzten Phase schauen wie groß der FPGA
> sein muss und mir dann ein entsprechendes Board kaufen.
Da kann ich leider nicht zustimmen. Denn ein Anfänger wird schon die 
simpelsten Sachen (Einsynchronisieren, Takterzeugung) falsch machen, 
diese simplen Fehler in der Simulation aber gar nicht merken (weil sie 
dort nicht auftreten!). Und dann ein riesiges Design fertigmachen, um 
hinterher zu sehen, dass das u.U. gar nicht synthetisierbar ist... :-o

Ich würde eher sagen: Kauf ein Board vom Hersteller, dessen 
Name/Toolchain/FAE/Kreditwürdigkeit/odersonstwas dir am meisten zusagt, 
und fang da erst mal mit einem Lauflicht an, dann eine serielle 
Schnitte, dann die VGA-Ansteuerung, Kommunikation mit dem PC, Ansteuern 
von RAM...
Und wenn möglichst viele der Teilaufgaben gelöst sind und funktionieren, 
dann werden sie zusammengebastelt.
Denn das Hereinlesen der Daten in das FPGA ist die kleinste Aufgabe: 24 
Flipflops und fertig. Aber jetzt: wohin auf die Schnelle mit den 
Daten...   :-o

von franke (Gast)


Lesenswert?

Hallo zusammen

Mir fallen ein paar Dinge auf:

1) Wie ( physikalisch) kommen deine Daten rein in den FPGA und raus aus 
dem FPGA => LVDS, PCIe usw... das schränkt deine Auswahl massiv ein, 
sowohl Baustein als auch Board.
Versuch nicht mit 100 MHz und handgelötetet Flachbandkabel zu arbeit, da 
kannst du dir gleich die Kugel geben, insbesondere bei Bildverarbeitung 
kommt da was raus, aber laufende Pixelfehler werden dein Freund sein.

2) Ohne Simulation geht nix... gar nix, daher macht es schon sinn 
erstmal alles zu entwickeln und zu simulieren das es schon mal 
einigermassen geht (in der Simulation),
es dann aber zügig einmal komplett durch-synthetisierenbis zum BitFile 
um zu schaun wo man denn rauskommt... um dann einen mindestens zweimal 
so großen FPGA wählen zu können.

3) Mach dein Design in Blöcken testbar, insbesondere Videoverarbeitung 
ist hier sehrdankbar.. da alles auch gut anschaubar am Monitor.

Viel Erfolg, ich seh da noch sehr viele Hürden, die Wahl des FPGA ist da 
eher die kleinste...

von FH_Student (Gast)


Lesenswert?

Wichtig ist, das ich das auf dem Grafik Display dargestellte Bild auf 
dem Computer als Datei habe.

Ich weiss zwar das man mit einem FPGA ein Bild auf einem Display 
darstellen kann. Aber ich kann mir noch nicht so ganz vorstellen wie es 
möglich ist aus den abgefangenen Bildinformationen wieder eine Datei zu 
erzeugen.

Oder könnte man ganz einfach die abgefangenen Bildaten in ein Array 
speichern und die dann am PC wieder zusammen fügen?

Hätte jemand vielleicht eine Idee oder könnte mir jmd. die Schritte 
nennen die nötig sind, das ich das Stück für Stück abarbeiten kann?

Vergesst das mit der Bildverarbeitung, das mach ich eh unabhängig vom 
FPGA.

Wie gesagt ich möchte "nur" aus dem dargestellten Bild wieder eine Datei 
erzeugen und die auf dem Computer ablegen.

Bin für jede Hilfe dankbar ;-)

von Gustl B. (-gb-)


Lesenswert?

Je nach Display kann man davon auch Pixel lesen. Aber vielleicht 
solltest du beschreiben wo und wie du die Bildinformationen abgreifen 
möchtest. Vielleicht willst du das auch abfilmen.

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


Lesenswert?

FH_Student schrieb:
> Oder könnte man ganz einfach die abgefangenen Bildaten in ein Array
> speichern und die dann am PC wieder zusammen fügen?
Ja, so wird das gehen...
Jetzt aber die Frage: musst du in Echtzeit laufend grabben, oder reichen 
z.B. 3 Bilder/sec? Denn diese Bildrate wird dir die Übertragung zum FPGA 
leicht (RS232 via USB) oder schwer (Ethernet) machen...

> in ein Array speichern
Naja, das ist ein wenig ABSTRAKT...
Du wirst die Daten in ein RAM speichern müssen.

> Hätte jemand vielleicht eine Idee oder könnte mir jmd. die Schritte
> nennen die nötig sind, das ich das Stück für Stück abarbeiten kann?
Du wirst ZUERST einmal feststellen müssen, WAS das für Display ist, 
WELCHES Timing du da hast, WIEVIEL Pixel du hast (und dementsprechend 
Speicher brauchst), OB du die Daten auf dem FPGA reduzieren darfst 
(Graustufen, 12Bit statt 24 Bit Farbtiefe...), usw. usf.
Du mußt also SELBER mal recherchieren, welche Leistung und welches 
FPGA/Board du letztlich brauchst. Und dich nicht auf eine pauschale 
Aussage wie "mindestens 100 MHz!" verlassen...

von FH_Student (Gast)


Lesenswert?

Also habe neue Informationen bekommen:
-In Echtzeit muss es nicht sein, die Daten kommen mit 200MHz rein
-Die Übertragung soll per Ethernet erfolgen
-Die Bilder können auf Graustufen reduziert werden (sprich wir haben U8 
Werte)

Habe leider noch nicht die Dokumentation zum Display.

Mein Gedankenweg ist so:

Die Bytes vom Grafikdisplay per Ethernet grabben und dann im RAM des 
FPGA's speichern. Vom RAM dann per RS232 an den PC senden.

Aus den Bytes bau ich dann mit einem C/C++ wieder ein Bild.

Ansich braucht man doch nur ein einfaches Register bauen (mit f=200MHz, 
T=5ns) oder sehe ich das falsch?

Könnte mir jmd. bei der Umsetzung helfen?

von Duke Scarring (Gast)


Lesenswert?

FH_Student schrieb:
> Mein Gedankenweg ist so:
Zeichne den mal als Blockschaltbild auf.
Dort kannst Du auch gleich die zu erwartenden Datenraten eintragen.

> Ansich braucht man doch nur ein einfaches Register bauen (mit f=200MHz,
> T=5ns) oder sehe ich das falsch?
Ich glaube Du stellst Dir das zu einfach vor.

> Könnte mir jmd. bei der Umsetzung helfen?
Hausaufgaben macht hier keiner. Wenn Du mit konkreten Fragen/ 
Problemstellungen kommst, könnte es sein, daß die jemand so spannend 
findet und sich anschaut. Wenn Du ganz viel Glück hast, gibt auch jemand 
seinen Senf dazu ab. Aber das Forum hier ist kein Consultingbüro...

Duke

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


Lesenswert?

FH_Student schrieb:
> Die Bytes vom Grafikdisplay per Ethernet grabben und dann im RAM des
> FPGA's speichern.
Ein Grafikdisplay, das einen Ethernetanschluss hat?
> Vom RAM dann per RS232 an den PC senden.
Am besten noch über eine USB-Bridge...  Trollig.

Kann es sein, dass die Aufgabe dich überfordert?
Zeichne mal ein Bild (Übersichtsplan) mit den benötigten Komponenten und 
Verbindungen (z.B. anhand des Datenflusses). Gib den Komponenten und den 
Verbindungen Namen und Nummern. Dann kann drüber diskutieren. Sonst ist 
das hier ein Fass ohne Boden.

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.