PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Programmierbare Logik (CPLD, FPGA) - Wie anfangen ?



wkrug
26.01.2007, 19:10
Hallo Forumsteilnehmer,

ich möchte demnächst mit programmierbarer Logik anfangen, also CPLD's oder FPGA's programmieren.

Wie fängt man damit an, was braucht man an Hardware- und Softwareausstattung.

Wie werden die Teile programmiert, welche Programmieradapter gibt es.

Geht das auch ohne (schon wieder) eine neue Programmiersprache lernen zu müssen.

Ich beschäftige mich mit dem Thema rein Hobbymässig, darum sollten die Vorschläge nicht allzu teuer sein.

sd
26.01.2007, 20:36
Hallo!

Hast Dir auf jeden Fall ein spannendes Thema ausgesucht.

Also zunächst zur Hardware. Ich würde zu einem fertigen Entwicklerboard greifen. Die zwei großen Hersteller sind meines Wissens Altera und Xilinx. Beide bieten auf ihren Internetseiten sowohl eigene als auch von Drittherstellern vertriebene Entwicklerboards an. Die Preise fangen da so im Bereich von 100-150$ an und sind nach oben fast offen. Besonders interessante Angebote haben die Hersteller immer für Studenten bzw. Hochschulen. Vielleicht kommt das ja für Dich in Frage. Programmieren kannst Du die FPGAs dann fast immer über eine USB-Verbindung.

Zur Software: Jeder Hersteller kocht da sein eigenes Süppchen. Alteras Software heißt Quartus II, die von Xilinx ISE. Beide kannst Du Dir bei den Firmen herunterladen und - mit mehr oder minder eingeschränkter Funktionalität - privat kostenlos lizenzieren. Mit den Entwicklungsumgebung kannst Du übrigens Deine Designs recht umfangreich simulieren. Vielleicht schaust Du Dir das einfach mal an, bevor Du ein Board bestellst. Zum lernen und für die ersten Schritte reicht das allemal.

Zumindest von Quartus weiss ich, dass es die Erstellung von Logik graphisch erlaubt (sollte aber auch bei Xilinx funktionieren). Dass heisst, Du kannst Deine Designs mit Logikgattern mehr oder weniger zusammenklicken.
Wenn Du tiefer in die Materie einsteigen willst kommst Du bei der Entwicklung um das Lernen einer Hardware Description Language nicht herum. Meistens benutzt man VHDL oder Verilog. Für Programmierer sind die ersten Schritte dabei meistens etwas tricky, da Du Dich vom Gedanken der sequentiellen Codeausführung verabschieden musst. In HW läuft Vieles einfach zeitgleich ab. Hast Du Dich erstmal daran gewöhnt bietet das jedoch neue Problemlösungsmöglichkeiten.

Richtig spannend wird die ganze Sache dann, wenn Dein Hersteller Dir fertige CPUs in einer HDL zur Verfügung stellt, die Du in Deine Designs einbinden kannst (sog. Softcores). Suchbegriffe hierfür wären NIOS bzw. Pico-/Microblaze. Für diese Softcores existieren oft C-Compiler und z.T. sogar Linuxportierungen.

Als sehr günstige Lösung kommt übrigens auch das Uxibo der Uni Mannheim in Frage. Das kostet ca. 85 Euro und basiert auf einem Spartan IIe. Das findest Du unter http://www.uxibo.de.

Ich hör jetzt mal auf. Wenn Du etwas genauer wissen willst, frag einfach nach.

Grüße,

sd

wkrug
26.01.2007, 21:00
Danke schon mal für deine Antwort.

Ich würde da eher zu Quartus II tendieren, weil da in der Elektor schon mal eine kurze Einführung drin ist.

Gibts da auch günstige Board's für, oder nur die von Altera ?

Vorerst möchte ich nur mal ein paar TTL Gräber schlachten und schnelle Schnittstellen (z.B. Videoausgabe) für meine Atmel Controller generieren.
Die Implementation von ganzen Prozessoren ist wohl für den Anfang etwas übertrieben.

In der letzten Elektor Ausgabe (02.07) ist eine DCF 77 Uhr drin, die als steuerndes Element nur einen CPLD enthält - dadurch bin ich eigentlich erst auf das Thema gekommen.

sd
26.01.2007, 21:41
Hallo.

Also ich denke du kriegst Boards inkl. Programmer mit ganz simplen Bausteinen wie der MAX-Serie schon für ca. 50 Euro. Das sieht dann so aus:
http://www.ebv.com/en/products/development_boards/db3128_100.html und das Kabel kostet tatsächlich über 50 Dollar extra.

Ich würde dann aber lieber noch was drauf legen und mir etwas in der 100 Euro Liga zulegen. Dann hast Du zusätzlich Schnittstellen für Sound, VGA (für Deine Videoausgabe) und teilweise sogar SD-Card oder Netzwerkschnittstellen. So hat man meiner Meinung nach einfach länger Spass daran, auch wenn es für die ersten Schritte überdimensoniert für Deine Anwendung sein mag.

Ich bin da jetzt auf das (100$):
http://altera.com/products/devkits/partners/kit-alt-live-design.html
oder das (150$)
http://www.altera.com/products/devkits/altera/kit-cyc2-2C20N.html gestossen.

Aber vielleicht kennt ja jemand eine deutlich günstigere Quelle für Boards mit Bausteinen der MAX-Klasse.

Leider hab ich den Elektorartikel nicht zur Hand um mal drüber zu gucken. Schreiben die nichts zu dem Entwicklungskit dass sie benutzen?

Grüße,

sd

munio
26.01.2007, 22:46
Hallo,

wenn du dich für FPGA programmierung interessiert, kannst du mal die Seite www.digilentinc.com anschauen.

Für Studenten kriegt man ein starkes Board "XUPV2P" nur für 300$. Das Board hat ein Virtex-II Pro FPGA mit zwei eingebetteten PowerPC-405 Prozesserkerne und verfügt über zahlrieche Komponenten. Man kann sogar Linux-System darauf portieren.

Die Programmierung des FPGA ist total anders als ein normalen Microkontroller. Das FPGA muss immer neu programmiert werden, wenn es ausgeschaltet würde. Man verwendet EDK und ISE von Xilinx zur Programmierung und soll sich mit der Programmiersprachen VHDL oder Verilog und C gut auskennen. Was FPGA so spannend macht ist die Fähigkeit, im Laufezeit des Betriebssystem, die Konfiguration von einige module (Modul: ein Gebiet auf dem FPGA, wo man eine beliebige Funktion darin implementieren kann ) zu rekonfigurieren "Partial Reconfiguration". Man kann mit diesem Technik beliebige Anzahl von Funktionen implementiern, die dieselben logische Zellen innerhalb eines Moduls teilen.

Es lohnt sich mit FPGA Erfahrung zu sammeln...

gruss munio