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
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
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...
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.
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 ^^
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!
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?
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.
@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
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"
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!
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 =)
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 jedesFPGA. 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
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...
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 ;-)
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.
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...
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?
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
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.