Forum: FPGA, VHDL & Co. FPGA / CPLD - Quartus II


von John (Gast)


Lesenswert?

Hallo!

Interessiert les' ich hier das Forum durch und frage mich ein paar
Dinge...

Mit welchen Programmen programmiert ihr? (Empfehlungen)
Gibt es überhaupt welche, die mit Quartus etwas zusammen'malen' oder
wird nur noch geschrieben? Ist es also unsinnig, sich in Quartus
einzuarbeiten?
Diese FPGAs sind ja ganze Platinen... und wie sieht's mit einzelnen
Chips aus? - die kann man doch auch programmieren. Aber keiner redet
von ihnen...
Es wird gerne das Einsteiger-Set von Xilinx erwähnt. Muss ich bei
diesem FPGA die mitgelieferte spezielle Software benutzen oder
funktioniert solch eine 'Karte' auch mit Quartus? Oder anderen
Programmen, die ihr empfehlen könnt.

Grüße!
John

von FPGA-User (Gast)


Lesenswert?

Hallo John,

wenn du dich in Quartus einarbeitest, kann das sicher
nicht schaden, du kannst damit aber keine XILINX-FPGAs
programmieren!
QuartusII ist speziell für Altera, Xilinx hat z.B. WebPack
als frei verfügbare Version.
Quartus heiß nicht, dass du malen musst. kannst die projekte
komplett in VHDL schreiben (so wie ich z.B.) oder nur das
Top-Design-File als Doku-Hilfe grafisch erstellen.
Inzwischen ist Quartus auch voll script-fähig und komplett
von der kommandozeile aus bedienbar. im extremfall musst du
die graf. oberfläche nie öffnen, wenn du nicht willst.

weiterhin gibt es eine menge tools, die herstellerunabhängige
synthese anbieten, z.B. "HDL-Designer" usw. das kostet aber dann
richtig. es gibt sogar tools, die nur deinen geschriebenen
source-code auf feste regeln, z.B. syntax überprüfen, dafür
kann man locker 5000 eur hinlegen, wenn man das will.
der simulator ModelSimPE liegt in der vollversion glaube
auch in dem bereich oder noch höher.

bei den kostenlosen tools wirst du wahrscheinlich immer
eine hersteller-spezifische software verwenden, dazu gibts
meist eine eingeschränkte version des führenden simulator-tools
ModelSim. habe hier die Modelsim-Altera-Version, die läuft
z.B. langsamer als der ModelsimPE (s.HomePage Mentor graphics)

Schaltplan-Eingabe ("Schematics-Entry") wird im prof. Bereich
nicht mehr gemacht -> zu fehleranfällig und aufwendig, extrem
änderungsunfreundlich, kaum wiederverwendbare funktionen möglich,
in VHDL kann man alles parametrierbar machen,
so dass das FIFO beim nächsten mal eben z.B. 1024x16 ist und
nicht mehr 256x8 oder der UART 512 Bytes Buffer hat, da muss
ich nur 1 Konstante ändern.

also abh. vom FPGA, dass du verwenden willst würde ich dir
die web-edition des jeweiligen herstellers empfehlen.
ein starter-kit ist der beste einstieg, einzelne chips sind
für den amateur schlecht handhabbar geworden (spannungs-
versorgung, gehäuse bga..., layout schwierig...)

Gruß

von John (Gast)


Lesenswert?

vielen vielen Dank für die ausführliche Antwort!

Welche Programmiersprache ist denn für solche FPGAs zu empfehlen?
Verilog oder ähnliches?

Diese Sprache (z.B. Verilog) ist dann firmenunabhängig (sowohl für
Altera- als auch Xilinx-FPGAs/Chips etc.), wie du schreibst. Und die
Web-Edition von Xiling ist explizit nur für deren Chips?!
Das hieße ja, ich müsse mich jetzt entscheiden, welche Firma ich
benutzen werde und dementsprechend nur deren Programmiersprache
erlernen... oder das allgemein-gültige Verilog benutzen?

Ist "VHDL" der Überbegriff für die Skript-Sprache? Das hieße, die
Syntax wäre zwischen den verschiedenen kostenlosen Skripttools der
Firmen gleich und dann wäre es ja 'egal', mit welcher Firma ich
anfange und mein oberer Absatz wäre so gut wie belanglos...

Ich kann also Graphisch/Skript gleichzeitig in einem Projekt laufen
lassen (wie z.B. in Quartus) und dann für entsprechende Aufgaben
schauen, was sinnvoller für die Entwicklung einer speziellen Sache
gerade dann ist?!

Fragen über Fragen...

Grüße!
John

von FPGA-User (Gast)


Lesenswert?

als Hardware-Beschreibungssprachen kommen VHDL oder
Verilog in Frage. VHDL gefällt mir persönlich besser,
das ist aber subjektiv.

Wenn Du Deine Sourcen in VHDL oder Verilog schreibst, dann
kannst Du damit z.B XILINX und ALTERA Tools "füttern" und
bist in der Entwicklungsphase erstmal im Prinzip nicht auf
ein FPGA festgelegt. Im Prinzip heißt, dass es natürlich
jede Menge FPGA-spezifischer Funktionen gibt, die man
als fertige Komponenten einbinden kann, z.B. eine PLL oder
ein Hardware-Multiplizierer. Diese sind natürlich Hersteller-
abhängig. Für die Simulation kannst Du die entspr. Library
z.B. von Altera beim Simulator mit einbinden, dann bekommst
Du ein Verhaltensmodell von diesen speziellen Funktionen.

Bei der Synthese brauchst Du aber dann schon Quartus II
wenn ein ALTERA-FPGA programmiert werden soll. Warum sollte
XILINX Dir auch diesen Service bieten ?

Also wenn aus dem VHDL- oder Verilog-Code ein Programmierfile
werden soll, dann sind spätestens beim Mapping / Place&Route
die Tools des Herstellers nötig, denn jetzt hängt ja alles
davon ab, auf welche Hardware gegangen wird.

VHDL ist keine Skript-Sprache, eher eine Programmiersprache.
Aber es stimmt, grafische und VHDL/Verilog-Eingaben können
gemischt werden, State-Machines als Bubble-Diagramm sind auch
möglich, aber ich denke das ist für einen Einstieg zuviel.

Wenn Du schonmal was programmiert hast, dann ist sicher
das Erlernen von VHDL oder Verilog eine gute Idee. Im Web
gibts genügend Sourcen zum Lernen.

Viel Spass!

von John (Gast)


Lesenswert?

Also mit FiniteStateMachines habe ich schon theoretische Erfahrung
gesammelt.
Dann kann ich mir jetzt VHDL oder VeriLog aussuchen und zusätzlich mir
von Altera oder Xilinx einen kleinen FPGA kaufen und mit der
beigefügten Software das ganze drauf spielen.

Du hast von "Mapping / Place&Route" gesprochen. Könntest du mir das
näher erläutern? Ist das 'einfach nur' das finalisieren des
Programmierten (sozusagen der Compiler, Linker) und das Aufspielen auf
den FPGA?

Grüße!
Mario

von FPGA-User (Gast)


Lesenswert?

Hallo Mario,

das Mapping und Place&Route muss Dich als Einsteiger erstmal
nicht interessieren, solange Du keine Fehlermeldungen
dabei bekommst - das erledigt alles die Software.
Beim Mapping werden die einzelnen Funktionen (Counter, FFs usw.)
mit den im FPGA/CPLD vorhandenen Elementen möglichst effektiv
realisiert.
Beim Place&Route wird entschieden, wo Deine Funktionen im FPGA
platziert werden, also vereinfacht gesagt, wenn man auf den
Chip draufschaut, ob der Counter nun z.B. links oben oder in der
Mitte platziert wird. Weiterhin werden die einzelnen Elemente
mit den vorhandenen "Leitungen" im Chip "verdrahtet".
Das ist ziemlich kompliziert, wenn sehr kurze Zeiten eingehalten
werden müssen (z.B. 5ns vom Ausgang eines RAMs zum Eingang eines
Counters usw.)
Aber wie gesagt, das erledigt alles die Software, Du musst Dir
nur was einfallen lassen, wenns dabei Fehlermeldungen gibt.

Als Einstieg ist vielleicht auch ein Frequenzzähler mit CPLD
geeignet, schau mal auf www.dl1dsn.de , 7-stelliger Freq-Zähler
200 MHz mit XC9572 von XILINX, Platinen gibts auch welche, könnte
ich rausfinden, wenns Dich interessiert, restliche Teile REICHELT.
Das Design ist schon sehr trickreich (Source-Code auf der Webseite
verfügbar) - was für VHDL-Freaks.

von John (Gast)


Lesenswert?

Vielen Dank für den Link!
Werde wohl trotzdem mit dem FPGA-Einsteiger-Set von Xilinx anfangen.
Das bietet ja schon einiges :-)
Meint ihr, ich kann dann grad einen Paralell/USB-Konverter benutzen?
Mein Laptop hat keine Parallel-Port-Schnittstelle...

Und explizit: Mit welchen Programmen schreibt ihr euern Kram?
Quartus sieht doch ordentlich aus, und wenn es auch noch die
Programmier-Sprache kann.. why not quartus?

Grüße!
John

von FPGA-User (Gast)


Lesenswert?

wie gesagt :

XILINX FPGA/CPLD : nimm XILINX WebPack Software
ALTERA FPGA/CPLD : QuartusII Web Edition

Editor : entweder den im Software-Pack vorhandenen
oder EMACS oder CodeWright oder ...

Simulator:
ModelSim (www.mentor.com) - sollte bei den Web-Editionen
in abgespeckter Form dabei sein.
Es soll ja auch noch Leute geben, die nicht simulieren wollen,
davon würde ich aber dringend abraten.

von John (Gast)


Lesenswert?

Nun, schade, dass Altera nicht so ein tolles Einsteigerset wie Xilinx
anbietet, denn Quartus fand ich recht ansprechend.

Dann muss ich mal schaun, was ich mir für einen FPGA zulegen werde.
Gibt es noch andere sehr zu empfehlende FPGAs außer halt dieses
XILINX-Set? Das scheint echt klasse zu sein und ich glaube, es gibt
keine Einsteiger-Alternativen in diesem Bereich, so wie ich das jetzt
im Forum alles gelesen habe?!

von FPGA-User (Gast)


Lesenswert?

wüsste nicht, wo es für 99$ noch soviel FPGA fürs Geld
gibt. Das ist schon ein gutes Angebot, auch dass man
die Teile direkt auf der Webseite von XILINX kaufen kann.
Bei ALTERA gehts erst ab 150$ los (nur CPLD), 295$ für
ne FPGA-Version sind schon reichlich, auch soll dort
alles möglichst über einen Disti gemacht werden.

von John (Gast)


Lesenswert?

Sehe ich das richtig, dass es keinen Standard für die
Programmier-Sprache  gibt? Sonst könnte man in Quartus schreiben und in
Xilinx reinkopieren... oder in VHDL zusammenschreiben und woanders
importierten etc.?

von FPGA-User (Gast)


Lesenswert?

also Standards gibts schon:
sowohl Verilog als auch VHDL sind standardisierte Hardware-
beschreibungssprachen.
Im ersten Schritt der Synthese wird daraus eine sog. Netzliste,
die z.B. das EDIF-Format haben kann.
EDIF ist wieder ein Standard(Netzlistenformat).
Danach folgen Mapping und Place&Route + evt. Konvertierungen
bis am Ende ein Programmierfile "herausfällt"

Das Problem sind nur die Schnittstellen der Software.
Soweit ich weiß, kann QuartusII zwar EDIF-Netzlisten importieren,
aus meinen eigenen VHDL- oder Schaltplan-Files kann ich aber
keine EDIFs generieren.
Wie das bei der XILINX-Software jetzt ist, weiß ich nicht genau.

Fazit:
So wie ein C-Compiler eben C-Code compilieren kann, können die
Software-Tools der FPGA-Hersteller VHDL und/oder Verilog verarbeiten.
Problem : FPGA-spezifische Elemente (RAMs, PLLs, usw.) können
verhindern, dass Dein VHDL-Code sofort 100-Prozentig auf ein
anderes FPGA (sei es nun eine andere Familie oder anderer Hersteller)
portierbar ist - da müssen also Anpassungen gemacht werden.
Das ist vielleicht so ähnlich, wie wenn man versucht, den C-Code
eines AVR-Controllers auf einem anderen AVR zum laufen zu bringen
der andere Peripherie-Funktionen oder Adressen besitzt- das
geht wahrscheinlich auch nicht auf Anhieb.

von Andreas Sathle (Gast)


Lesenswert?

Von Altium gibt es ein FPGA-Baord für 99€.

http://www.altera.com/products/devkits/partners/kit-alt-live-design.html

Kann man entweder mit XILINX oder auch mit Altera Chip bestellen.

Kostenpunkt 99$.

Habe aber nicht in USA sondern in deren Filiale in Karlsruhe
bestellt...geht viel viel schneller.

von John (Gast)


Lesenswert?

FPGA-User, das klingt eigentlich recht einleuchtend. Danke schön!

Wow, Andreas... Das Teil sieht ja klasse aus und ist doch bestimmt ein
Konkurrent zu dem Einsteiger-Set von Xilinx, oder irre ich mich da?

von Andreas Sathle (Gast)


Lesenswert?

Das hängt davon ab was du damit machen willst...ich habe den zum lernen
von VHDL geholt und hatte bis jetzt keine Probleme oder Beschwerden.
Bin voll zufrieden damit.

Und mit 30Tage Testversion der Altium Software kann man den sehr gut
Testen und sich den Einstieg sehr erleichtern, da die speziel auf deren
Boards zugeschnitten ist und sehr viele Besipielcodes dabei sind aus
denen man dann eigene Projecte ableiten/neu ertsellen kann.

von Frank (Gast)


Lesenswert?

Hallo alle zusammen.
Ich wollte Euch nur wissen lassen, dass ich zur Zeit auch mit dem
Evaluation Board von Altium arbeite. Eigentlich bin ich recht zufrieden
damit, wobei die 30 Tage Testversion viel zu kurz ist. Man kann richtig
schön mit dem Board herum experimentieren. Nervig ist nur das
Kompilieren und die Datenübertragung. Das dauert so lange. Übermittel
werden die Daten über einen paralellen Port und dann mit JTAG. Leider
kann man den FPGA nicht direkt ansprechen.
Deshalb habe ich auch eine Frage. Wie kann ich ein Configuration device
extern ansprechen, wenn ich nur den paralellen Port und JTAG zur
Verfügung habe. Hinzu kommt, wie verbinde ich die vier Leitungen des
Configuration devive (DATA,DCLK,nCS,ASDI) mit dem FPGA, wenn ich diesen
nur mit JTAG ansprechen kann?

Über Anregungen oder Hinweise wäre ich Euch dankbar.
Schönen Tag noch!

von Olli (Gast)


Lesenswert?

Hallo,

eigentlich programmiere ich Controller von ATMEL (AVR ATMEGA128 ..)
nun möchte ich FPGAs programmieren, da viele Firmen das verlangen und
ich zur Zeit arbeitslos bin!
habe zur zeit Win98 und möchte Quellcode mit vhdl erstellen bzw. mit
Blockschaltbildern (höhere abstraktionsebene etc.)arbeiten z.B. für
Signalverarbeitung (Frequenzanalysen etc.)
ich will mir das arbeiten mit FPGAs beibringen!
welche Tools brauche ich dafür?
das XILINX WebPack geht mit win98 nicht! nur mit xp! aber wenn ich nur
entwickeln und simulieren will (ohne board)?
wer hat die partentlösung für mich?

von Tilmann (Gast)


Lesenswert?

Hallo,

zunächst eine Antwort an Olli:
IVERILOG kann Verilog-Code Simmulieren und sollte für Win
Betriebssystheme zur verfügung stehen. Ich selber nutze es unter Linux
zum Simulieren und zur Synthese Quartus II für Altera FPGA's.

Experimentierboard: Anfang des Jahres habe ich in Elektor eine
Experimentierplatiene gesehen die ein Altera CPLD unterstützt.
Infos auf der Elektor webseite.

CPLD's sind wie FPGA's aber die programmierung bleibt nach dem
Ausschalten bestehen und steht nach dem einschalten sofort zur
verfügung.

Grüsse Tilmann

von high_speed (Gast)


Lesenswert?

@ Tilmann

http://de.wikipedia.org/wiki/CPLD
http://de.wikipedia.org/wiki/FPGA

Hier mal die grobe Unterscheidung zwischen FPGA und CPLD:
Ein FPGA besteht im Gegensatz zum CPLD aus Logikelementen, bei denen
über eine "luck up table" (Wertetabelle) die logischen Funktionen
realisiert werden.

Bei den CPLD wird dagegen eine 2 stufige Logik aus UND- und ODER-
Verknüpfungen verwendet, die in einer Matrix zusammengefasst ist.

Holger

von Thomas K. (thomas_k)


Lesenswert?

@high_speed:
http://de.wikipedia.org/wiki/Look-Up_Table
Tut mir Leid, das musste jetzt sein :P

@Tilmann:
Das heißt, du kommst komplett ohne Windoze aus? Laufen die Programme
denn mit Wine? Und programmieren geht dann wie?


Danke

von Michael (Gast)


Lesenswert?

Hallo,

möchte hier nocheinmal kurz das Gespräch über die Developmentkits
aufgreifen:
SASCO bietet zur Zeit Developmentkits von ALTERA zum halben Preis an.
Z.B. ein MAX II-Board für 95$. Wenn man bedenkt, was alles auf dem
Board ist, sicherlich ein ganz guter Preis. Ein Selbstbau würde nicht
wesentlich billiger werden. Zumal hier bereits das Programmierkabel
dabei ist, welches bei Xilinx ja extra kostet, sofern ich das richtig
gesehen habe.
Inwieweit das ganze für Privat-Kunden gilt kann ich leider nicht sagen,
aber fragen kostet ja nichts. Hier der link ...

http://www.sasco.de/cda/sc/de/techevents/0,5225,530,00.html

P.S. Für Anfänger würde ich persönlich QuartusII empfehlen, schlichtweg
aus dem Grunde, weil sehr kompakt gehalten ist. Installieren und
loslegen ... :-) Das Xilinx Webpack schreit nach der Installtion noch
nach einem Simulationstool :-( Diese meinige Erfahrung ist allerdings
auch schon wieder ein gutes halbes Jahr her.

MFG Michael

von Jörn (Gast)


Lesenswert?

@Michael:

Das Angebot gilt nicht für Privatpersonen. Ich habe schon wegen dem
Cyclone II Board angefragt und eine Absage bekommen.

Gruß Jörn

von Michael (Gast)


Lesenswert?

Hmmm ... Scheibenkleister, einen Versuch war es Wert.

MfG Michael

Was ich noch vergessen hatte: hier eine sehr interessante Seite zur
FPGA-Auswahl

http://www.fpga-guide.com

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.