Forum: FPGA, VHDL & Co. Einstieg in programmierbare Logik


von Valentin B. (nitnelav) Benutzerseite


Lesenswert?

Hallo,
nachdem ich nun viel über GALs, FPGAs und CPLDs gehört habe,
würde ich doch ganz gerne mal ein bisschen mit denen herumspielen.

Nun sind FPGAs und CPLDs mir erst mal viel zu groß.

Es gibt ja auch kleine GALs mit 16 Pins, das würde mir erstmal reichen.

Wo liegen so die Vor- und Nachteile von GALs, FPGAs und CPLDs?

Wie programmier ich die?

Wie brenne ich die?

Was bräuchte ich, um mal in die GAL-Welt zu schnuppern?

Oder sind die veraltet?

Wichtig wäre mir, das es nicht allzu teuer ist...

Ich freue mich auf eure Antworten!

Mit freundlichen Grüßen,
Valentin Buck

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


Lesenswert?

Valentin Buck schrieb:
> Wo liegen so die Vor- und Nachteile von GALs, FPGAs und CPLDs?
GALs sind tot (und hatten fast keine Flipflops).
CPLDs liegen im Sterben (und haben schrecklich wenig Flipflops).
FPGAs sind aktuell und lösen die CPLDs ab (und es sind ausreichend viele 
Flipflops da... ;-)

> Wie programmier ich die?
Nimm eine Hardwarebeschreibungssprache wie VHDL (Europa) oder Verilog 
(Amerika). Vergiss gleich am Anfang solche Sachen wie 
"Schaltplaneingabe". Das ging bei den paar Flipflops in einem CPLD schon 
noch, aber bei FPGAs ist sowas peinlich...

> Wie brenne ich die?
Mit einem passenden JTAG-Programmierkabel.

> Was bräuchte ich, um mal in die GAL-Welt zu schnuppern?
> Oder sind die veraltet?
Ja. Lattice hat jetzt endlich alle 20V8 GALs abgekündigt.


Warum erwähne ich eigentlich dauernd diese Flipflops?
Weil das (für Anfänger) die einzigen Bauteile sind, die Speichern 
können. Und sowas brucht man für Zustände und Zähler und Register und...
Fazit: ohne Flipflops bist du sehr schnell aufgeschmissen.

BTW: sieh dich doch mal ein wenig in der FPGA-Ecke hier um und such mal 
nach "Anfänger": 
http://www.mikrocontroller.net/search?query=anfaenger&forums[]=9&max_age=-&sort_by_date=1

von MaWin (Gast)


Lesenswert?

> GALs sind tot (und hatten fast keine Flipflops).

Es gibt sie genau wie 7400 noch, denn wenn du Valentin's Beitrag 
wenigstens gelesen hättest bevor du ihn beantwortest hättest du gelesen 
"das würde mir erstmal reichen", so wie für manche Jobs auch ein 7400 
noch reicht. Sie sind nicht veraltet, bloss weil es inzwischen grössere 
gibt (CPLDs sind letztlich nur mehrere GALs in einem -meist deutlich 
grösseren- Gehäuse). Und ob 2 GALs oder 1 CPLD billiger ist, hängt von 
der Einkaufsquelle ab.

> Was bräuchte ich, um mal in die GAL-Welt zu schnuppern?
> Wichtig wäre mir, das es nicht allzu teuer ist...

GALs (und CPLDs und FPGAs) programmierst du z.B. mit der kostenlosen 
Design Expert Software von Lattice,

und schiebst das Programm, äh, das JEDEC-File ins GAL mit einem Brenner 
wie GALBlast

http://www.armory.com/~rstevew/Public/Pgmrs/GAL/_ClikMe1st.htm

Du brauchst für dieses aber einen Rechner mit echtem Parallelport, kein 
USB-Parallelport-Dongle, und unter XP einem Programm wie totalio zum 
Freischalten des Ports.

von Frank B. (foobar)


Lesenswert?

Ich denke CPLDs haben immer noch ihre Einsatzgebiete, da die auch 
mittlerweile recht preiswert sind. Gibt da von Xilinx und Altera gute 
Chips. Die Software von beiden Herstellern ist frei (für die kleineren 
Devices), wobei mir Quartus von Altera besser gefällt und auch für 
Einsteiger leichter ist. Ein preiswertes Entwicklungsboard mit 
integriertem Programmer wäre z.B. das hier:

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

Wenn du mehr damit machen willst, dann lohnt sich ein extra USB-Blaster 
Programmer oder Xilinx Cable, damit du auch eigene Schaltungen damit 
testen und programmieren kannst.

Man kommt aber schnell an die Stelle, wo es FPGAs sein müssen, wenn du 
mal einen Soft-Core implementieren willst o.ä. FPGAs werden meist per 
externen Flash beim Booten konfiguriert, oder auch von einem 
zusätzlichen Microcontroller, sodaß man dafür also nicht unbedingt einen 
Prorgammer braucht. Für schnelle Turn-Around Zeiten beim Entwickeln kann 
es aber dennoch nützlich sein, die per JTAG in-circuit zu programmieren 
und zu debuggen.

Man braucht aber zum Einstieg auch nicht unbedingt reale Hardware, da es 
gute Simulationsprogramme gibt. Mir gefällt Modelsim sehr gut, was es in 
einer abgespeckten Variante kostenlos für die kostenlose Quartus Version 
gibt. Ist aber immer wieder überraschend, was in der Simulation läuft 
und in realer Hardware dann nicht :-)

von Sebastian (Gast)


Lesenswert?

Genauso, wie es oft empfohlen wird, wenn man mit Mikrocontrollern 
anfängt, zunächst Assembler zu lernen, weil es dem Verständnis der 
zugrundeliegenden Hardware dienlich ist, könnte man annehmen, daß der 
Einstieg über GAL oder CPLD-Programmierung ebenso hilfreich ist, um zu 
verstehen, was im FPGA am Ende passiert.
Wer sich natürlich eher für die abstrahierte Betrachtungsweise der 
Hardwarebeschreibungssprachen interessiert, kommt wahrscheinlich mit dem 
direkten FPGA-Einstieg weiter, weil einfach die Komplexität der zu 
realisierenden Schaltungen höher ist.

Wo soll die Reise denn hingehen? Ein paar Zähler und Decoder für 
Ziffernanzeigen und so etwas, vielleicht eine primitive Uhr realisieren 
als Übung, das geht leichter mit ein paar GALS oder einem billigen CPLD, 
da kann man dann auch das Layout leicht selber machen.
Wenn natürlich beispielsweise ein "nacktes" TFT-Panel angesteuert werden 
soll, mit DRAM als Bildspeicher und allem Schnickschnack, dann ist man 
sehr schnell bein FPGA, ebenso bei rechenintensiven Algorithmen der 
Signalverarbeitung.
Aber größere FPGAs werden schnell bastlerunfreundlich; man sollte auf 
jeden Fall 0,5mm Pinabstand löten können - oder das Geld für ein 
fertiges Board haben, Preis ab etwa 50 Euro bis nach oben hin offen.

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


Lesenswert?

MaWin schrieb:
>> GALs sind tot (und hatten fast keine Flipflops).
> Es gibt sie genau wie 7400 noch, denn wenn du Valentin's Beitrag
> wenigstens gelesen hättest bevor du ihn beantwortest hättest
Ich meinte, die Fagen beantwortet zu haben. Das hier waren für mich nur 
Behauptungen, die mit den anschliessenden Fragen untermauert werden 
sollten:
>> Nun sind FPGAs und CPLDs mir erst mal viel zu groß.
>> Es gibt ja auch kleine GALs mit 16 Pins, das würde mir erstmal reichen.


MaWin schrieb:
>> GALs sind tot (und hatten fast keine Flipflops).
> Es gibt sie genau wie 7400 noch, denn wenn du Valentin's Beitrag
> wenigstens gelesen hättest bevor du ihn beantwortest hättest du gelesen
> "das würde mir erstmal reichen", so wie für manche Jobs auch ein 7400
> noch reicht.
Es wäre mir schade um die Zeit, die ein Anfänger in 30 Jahre alte 
Technik investiert, um dann frustriert nach einem halben Jahr entweder 
zu sagen: "Alles Schei..., taugt nicht für mich" oder zu sagen: "Dumm 
gelaufen, muß ich eben alles neu lernen".

> Es gibt sie genau wie 7400 noch,
Ich schmiede mir zum Lernen von Transistorschaltungen doch auch nicht 
meinen eigenen Transistor wie seinerzeit Shockley&Co...
Von den 100% Wissen, die man beim Lernen mit GALs aufbaut, kann man 
bestenfalls noch 10% bei CPLDs/FPGAs sinnvoll weiterverwenden.

> Es gibt sie genau wie 7400 noch,
Ich würde diese Aussage nach der Abkündigung von Lattice (dem 
GAL-Hersteller schlechthin) sehr in Frage stellen.
Und Xilinx wird in Zukunft (ebenso wie Lattice auch) keine CPLDs mehr 
machen...
Lattice bringt sogar ein FPGA (MachXO) an den Markt und schreibt 
verschämt CPLD drauf, um den Umsteigern die Hemmschwelle niedrig zu 
legen...


> und schiebst das Programm, äh, das JEDEC-File ins GAL mit einem
> Brenner wie GALBlast
Und hoffst, dass der den Programmieralgorithmus des verwendeten GALs 
auch tatsächlich kann...

> Du brauchst für dieses aber einen Rechner mit echtem Parallelport, kein
> USB-Parallelport-Dongle, und unter XP einem Programm wie totalio zum
> Freischalten des Ports.
Technik von gestern für Technik von vorgestern eben...

von Sebastian (Gast)


Lesenswert?

Ja... vielleicht. Es hängt immer davon ab, was man machen will. GALs 
sind praktisch Schüttgut, man wird sie noch Jahrzehnte später auf dem 
Markt finden, so viele sind davon produziert worden. Für den schnellen 
und vor allem sehr billigen Ersatz von ein paar TTLs in einer 
kombinatorischen Logikschaltung muß man nicht unbedingt ein CPLD opfern.
Andererseits gibt es inzwischen auch CPLDs, die billiges Schüttgut sind 
und die man ohne Gewissensbisse verbraten kann.
Aber einen FPGA, ggf. mit Konfigurationsspeicher, für eine simple 
kombinatorische Logik zu benutzen, ist und bleibt Overkill. Meine 
Meinung natürlich.

Wie wär's mit einem Kompromiß? EPM3032 oder EPM3064A nehmen, das ist 
eine realistische Größe für Bastler, und ein industrieübliches Bauteil, 
das es wie Sand am Meer gibt. Und von der Firma, die CPLDs erfunden hat 
und diese daher wohl noch lange nicht aufgibt... Altera.
Ein ByteBlaster-Kabel ist schnell nachbebaut.

 Ich hoffe, damit habe ich jetzt keinen Glaubenskrieg losgetreten. ;)

von Valentin B. (nitnelav) Benutzerseite


Lesenswert?

Danke für eure Antworten

Einen Computer mit Parallelport hätte ich noch herumstehen (reicht XP?).

Der GALBlast sieht ja schön aus, einfach zu bauen und die Teile habe ich 
fast alle noch da (wofür braucht man den D/A-Converter?).
Leider scheint die EAGLE-Datei defekt zu sein.
Könnte jemand hier einen direkten Schaltplan posten,
den ich auf Lochraster aufbauen kann?

Ich hatte erstmal nur vor, einfachste Sachen zu machen, zum Beispiel 
einen Zähler, der die Zahl gleich auf einer 7-Segment-LED-Anzeige 
ausgibt.
Nichts allzu kompliziertes.

Leider habe ich bisher die Software DesignExpert von Lattice nicht 
gefunden.
Ich habe auf deren Seite gesucht, aber nur ispExpert gefunden.
Ist es das richtige?

Und wo gibt es ein VHDL-Tutorial? Oder welche Sprache verwenden GALs?

GALs sind eben schön klein und billig.

Später wirds dann vielleicht mal ein FPGA.

mit freundlichen Grüßen,
Valentin Buck

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


Lesenswert?

Sebastian schrieb:
> Aber einen FPGA, ggf. mit Konfigurationsspeicher, für eine simple
> kombinatorische Logik zu benutzen, ist und bleibt Overkill. Meine
> Meinung natürlich.
Der ist nichts entgegenzusetzen. Aber (zumindest meine) Logikschaltungen 
brauchen auch immer irgendwelche Zähler...
Und da gehts schon los: so ein 16V8 GAL mit seinen 8FFs kann ja nicht 
mal einen 1MHz-Takt aus 1Hz herunterteilen...

Sebastian schrieb:
> EPM3032 oder EPM3064A nehmen
Blöd nur, dass man die fast nirgends bekommt.... :-/
Da wären dann so XC9536 / XC9572 schon einfacher zu beschaffen. Bei EBAY 
sogar komplett mit Programmieradapter...

von Valentin B. (nitnelav) Benutzerseite


Lesenswert?

Lothar Miller schrieb:
> kann ja nicht
> mal einen 1MHz-Takt aus 1Hz herunterteilen...

Ist auch kompliziert. Da müsste man eine PLL synthesieren...

Ich würde gerne mit GALs anfangen.
Ich weiß, wie die von innen aussehen,
die sind klein genug, umm übersichtlich zu sein und anscheinend gibt es 
funktionierende Brenner zum selber bauen.

FPGAs können bei mir ja noch kommen.
GALs bekomme ich billig über Reichelt.
FPGAs sind groß, schwer zu löten und so gut wie nie DIP, was ich dann 
auch mal auf ein Breadboard basteln könnte.
Außerdem sind FPGAs teurer.

Mit freundlichen Grüßen,
Valentin Buck

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


Lesenswert?

Valentin Buck schrieb:
> Ich hatte erstmal nur vor, einfachste Sachen zu machen, zum Beispiel
> einen Zähler, der die Zahl gleich auf einer 7-Segment-LED-Anzeige
> ausgibt.
> Nichts allzu kompliziertes.
LOL... :-D

Schon da wirst du ziemliche Kopfstände machen müssen. Ich würde hier den 
Zähler im 7-Segment-Zustandsautomaten zählen lassen, damit 1 
Zählerstelle in 1 GAL16V8 passt...

> Und wo gibt es ein VHDL-Tutorial? Oder welche Sprache verwenden GALs?
Probiers mit "ABEL"...
Oder sonst einer herstellerabhängigen Programmiersprache...
Was sagte ich zum Thema "Weiterverwerten des angehäuften Wissens"?

> GALs sind eben schön klein und billig.
Und das wars dann schon...

>> kann ja nicht
>> mal einen 1MHz-Takt aus 1Hz herunterteilen...
> Ist auch kompliziert. Da müsste man eine PLL synthesieren...
Nein, ganz falsch:
Das kannst du mit lächerlichen 8 FFs aus 1 MHz gerade mal auf eine 
Frequenz von 4kHz teilen...

von Sebastian (Gast)


Lesenswert?

Bitte nichts durcheinanderbringen.

Lothar Miller hat recht, GALs sind nur für ganz simple Sachen und man 
ist damit schnell am Limit. Und: Mit VHDL ist da gar nichts, dafür sind 
die zu primitiv. Mindestens ein CPLD muß es sein.

Wer unbedingt GALs will, sollte sich eher mit der Eingabe Boolescher 
Gleichungen befassen. Einfach, solange rein kombinatorisch. Ein 
steiniger Weg, sobald man die Flipflops benutzen muß, eben für Zähler 
und Teiler, Zustandsautomaten... da ist Theorie gefragt.

Der DAC sorgt für die richtige Programmierspannung, die kann bei GALs 
stark variieren.
DesignExpert gibt es nicht mehr, soweit ich weiß.

von Valentin B. (nitnelav) Benutzerseite


Lesenswert?

Lothar Miller schrieb:
> Schon da wirst du ziemliche Kopfstände machen müssen. Ich würde hier den
> Zähler im 7-Segment-Zustandsautematen zählen lassen, damit 1
> Zählerstelle in 1 GAL16V8 passt...

Und?
Dann muss ich eben lernen, Boolsche Ausdrücke zu vereinfachen.
Ich will was lernen, und nicht nur eine höhere Programmiersprache.
Ich will verstehen, wie das funktioniert.
Ich will nicht einen Funktionsgenerator bis 10 Ghz bauen,
sondern einfach ein bisschen basteln, experimentieren, learning by doing 
eben.

Ich bin kein Elektrotechnik-Student der gerade VHDL lernen muss, sondern 
Schüler.

Zeig mir ein billiges FPGA, das ich einfach programmieren kann und das 
auf ein Breadboard passt.
Ich bin nicht gegen die Technik FPGA, sondern gegen die Gehäuse.

Ich dachte eigentlich, programmierbare Logik bedeutet, dass ich die 
Standard-Operationen wie AND & OR oder NAND & NOR zu etwas verschalte, 
nur dass es in einem Chip passiert und nicht auf einem Breadboard.

mit freundlichen Grüßen,
Valentin Buck

von Frank B. (foobar)


Lesenswert?

Valentin Buck schrieb:
> Lothar Miller schrieb:
>> kann ja nicht
>> mal einen 1MHz-Takt aus 1Hz herunterteilen...
>
> Ist auch kompliziert. Da müsste man eine PLL synthesieren...

Nein, ein paar Flipflop reichen völlig aus.


> Ich würde gerne mit GALs anfangen.
> Ich weiß, wie die von innen aussehen,
> die sind klein genug, umm übersichtlich zu sein und anscheinend gibt es
> funktionierende Brenner zum selber bauen.

Ich sehe das vielleicht zu sehr aus Programmierersicht, aber mich 
interessiert nicht so sehr, was da drin ist, da derselbe VHDL-Code auf 
CPLDs und FPGAs gleiche macht, auch wenn die komplett anders von der 
Technologie her aufgebaut sind.

> FPGAs können bei mir ja noch kommen.
> GALs bekomme ich billig über Reichelt.
> FPGAs sind groß, schwer zu löten und so gut wie nie DIP, was ich dann
> auch mal auf ein Breadboard basteln könnte.

Gibt welche im DIL-Format, z.B. die hier, von denen ich ein paar hier 
liegen habe und die prima funktionieren:

http://www.trenz-electronic.de/de/produkte/fpga-boards/oho-elektronik.html

> Außerdem sind FPGAs teurer.

Das stimmt allerdings, zumindest im Vergleich zu z.B. XC9572, der auch 
prima für kleinere Dinge verwendbar ist. Gibt es z.B. ab 1,73 Euro bei 
Digikey und die TQFP44-Packages kann man auch noch gut selber löten:

http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=122-1448-ND

Da brauchst du dann allerdings das Xilinx Platform Cable, von dem es 
aber auch preiswerte Nachbauten gibt.

Wenn du VHDL nicht magst, unterstützen die Tools aber auch alle einen 
Schematic-Mode, wo du tatsächlich NANDs, Flipflops usw. wie in einem 
Schaltplan zeichnen kannst:

http://uhaweb.hartford.edu/jmhill/ee335/schemtut/index.htm

von Sebastian (Gast)


Lesenswert?

> Ich dachte eigentlich, programmierbare Logik bedeutet, dass ich die
> Standard-Operationen wie AND & OR oder NAND & NOR zu etwas verschalte,
> nur dass es in einem Chip passiert und nicht auf einem Breadboard.
Das ist eigentlich vollkommen richtig erkannt.
Jedoch gibt es in diesen Chips auch Speicherelemente, die einen Zustand 
taktgesteuert festhalten können, Flipflops eben. Diese sind die 
Grundlage, um komplexere Funktionen realisieren zu können.

Wenn eine Schaltung als kombinatorisch bezeichnet wird, besteht sie nur 
aus logischen Verknüpfungen, ohne Speicherelemente, jede Änderung an den 
Eingängen führt unmittelbar zu einer Änderung an den Ausgängen.
Komplexere Logikschaltungen hingegen, wie z.B. Zähler, haben innere 
Zustände, die in den Flipflops festgehalten werden. Dies macht den 
Entwurf gleich komplizierter.

Aber nur zu - ich finde es lobenswert, daß jemand den Willen zeigt, sich 
durchzubeißen.

Im Übrigen: Für einen "armen" - aber lernwilligen - Schüler würde ich 
natürlich kostenlos ein paar (Altera) CPLDs aus meinem Bastelvorrat 
abgeben, habe aber nur TQFP44-Gehäuse. Notfalls könnte ich aber auch 
einen auf ein Adapterboard löten.

von Valentin B. (nitnelav) Benutzerseite


Lesenswert?

Frank Buss schrieb:
> mal einen 1MHz-Takt aus 1Hz herunterteilen...
Das aus müsste eigentlich auf heißen.
Die PLL war als Anspielung auf den bissigen Tonfall in dem Thread 
gedacht.
Wie in einem anderen Forum als die Frage fiel "PIC oder AVR"...


Jetzt zu den FPGAs:
1.73€ bei Digikey ist ganz okay, dann noch ein paar Euro für einen 
SMD-zu-DIL-Adapter.

Wenn ISE kostenlos ist, dann ist das absolut genial und schön.

Bleibt der Programmierer.

Ich habe gesehen, dass es hier im Wiki eine Nachbaute gibt, da ist aber 
ein 100pin FPGA drauf. Abschreckend. Außerdem schafft das eine 
Henne-Ei-Problematik.

Danke für eure Hilfe!!!

mit freundlichen Grüßen,
Valentin Buck

von Sebastian (Gast)


Lesenswert?

Wer keinen altmodischen Parallelport am PC hat, muß etwas mehr anlegen. 
Ein paralleles Programmierkabel kann ohne "Henne-Ei-Problem" gebaut 
werden, bei USB ist das nicht mehr trivial, da muß man wohl mal in der 
Bucht fischen oder so.
PS: Der für 1,73 ist ein CPLD. Bei einem FPGA zu dem Preis hätte ich 
gesagt: "Ja, ihr habt alle recht, das Thema CPLD ist gegessen und vom 
Tisch."

von Peter D. (peda)


Lesenswert?

Also zumindest Atmel hat noch die industry standard 16V8, 20V8 and 
22V10s voll im Programm.
Allerdings braucht man dafür spezielle Programmiergeräte.

Deshalb würde ich auch zu CPLDs raten, die man direkt am Parallelport 
(JTAG) programmieren kann.
Z.B. Xilinx XC9572, den gibts noch im bastlerfreundlichen PLCC-44 
Gehäuse.
Ist genauso aufgebaut, wie die SPLDs, bloß eben 72 Macrozellen (FFs) 
statt nur 10.


Peter

von Frank B. (foobar)


Angehängte Dateien:

Lesenswert?

Ja, ISE ist kostenlos, zumindest für alle kleineren CPLDs und FPGAs. 
Platform Cable gibt es bei eBay, da lohnt sich selberbauen nicht:

http://cgi.ebay.de/Xilinx-Platform-Cable-USB-CPLD-FPGA-USB-download-cable-/270627772572?pt=LH_DefaultDomain_0&hash=item3f02ac189c

Ich habe übrigens aus einem Resteverkauf von einer Firma noch ein paar 
Experimentierboards mit 100 TQFP XC9572XL hier herumliegen, siehe 
Dateianhänge. Bei Interesse eMail an mich, gebe ich für 10 Euro pro 
Stück ab.

von MaWin (Gast)


Angehängte Dateien:

Lesenswert?

> Und hoffst, dass der den Programmieralgorithmus des verwendeten GALs
> auch tatsächlich kann...

Kann er, ich hab ihn ja schliesslich erfunden, und du sagst ja selbst:
bei GALs hat sich seit langem nichts getan (verändert).

> Ist es das richtige?

Ja. Hab' halt diese neuere nicht ausprobiert.

> Leider scheint die EAGLE-Datei defekt zu sein.

Anbei.

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


Lesenswert?

Valentin Buck schrieb:
> Zeig mir ein billiges FPGA, das ich einfach programmieren kann und das
> auf ein Breadboard passt.
Nimm ein Spartan 3AN im 144-Pin-Gehäuse (oder einen MachXO). Dann 
brauchst du nur 3,3V VCersorgung und keinen Konfig-Speicher. Und so ein 
SMD Gehäuse zu löten ist einfach eine Frage der Übung. Für das gerade 
erwähnte Gehäuse bruachst du mit ein wenig Übung nicht länger als 5 
Mintuen...

> Ich bin nicht gegen die Technik FPGA, sondern gegen die Gehäuse.
Du wirst mit dieser Einstellung die Entwicklung in der Elektronik aber 
nicht nennenswert beeinflussen. Und wenn das dein Hauptargument ist, 
dann solltest du auch einen Holzvergaser ins dein Auto einbauen, denn 
das ist Technik, da konnte man noch so richtig selber was machen... ;-)

Frank Buss schrieb:
> Platform Cable gibt es bei eBay, da lohnt sich selberbauen nicht:
Und wenn tatsächlich noch so ein Parallelport da ist, dann tut es auch 
der ParallelCable 3 Nachbau:
http://www.xilinx.com/itp/xilinx4/data/docs/pac/appendixb.html
http://www.holger-klabunde.de/projects/Xilinx.htm

von Norbert L. (norbert_l64) Benutzerseite


Lesenswert?

Xilinx waren schon immer etwas 'hinterdran' ;-)

Wir arbeiten mit den modernen Altera MAX II. Bei gleicher Baugröße zu 
Xilinx haben diese den doppelten Inhalt an Zellen, ein Zehntel der 
Verlustleistung und das doppelte der Grenzfrequenz. Die 
Programiersprache 'Schaltplaneingabe' ist genial für Elektroniker. Das 
was übersichtlich auf einer A4-Seite passt würde in VHDL ein meterlanges 
Listing ergeben.

von Uwe Bonnes (Gast)


Lesenswert?

@Norbert_l64:
Bei Digikey faengt ein XC9536XL bei 0.91 Euro an, Altera Bausteine bei 
1.32 Euro. X hat 36 Makrozellen, A 32 Zellen. Wir kommst Du auf den 
Vorteil von A?

Zur Schaltplaneingabe: Wenn man mir programmierbarer Logik Schaltplaene 
so malt, wie mit TTL, naemlich asynchron, dann faellt man ganz schnell 
auf die Nase. Und mit Verilog hat man viel weniger Geschwaetzigkeit als 
mit VHDL. Das was man uebersichtlich mit wenigen Zeilen HDL Code 
ausdruecken kann, passt haeufig nicht auf viele Seiten Schaltplan...

von Frank B. (foobar)


Lesenswert?

Ansbach Dragoner schrieb:
> Wir arbeiten mit den modernen Altera MAX II. Bei gleicher Baugröße zu
> Xilinx haben diese den doppelten Inhalt an Zellen, ein Zehntel der
> Verlustleistung und das doppelte der Grenzfrequenz.

Altera ist aber auch teurer. Der kleinste MAX 2 kostet das Dreifache vom 
kleinsten XC9572XL, da relativiert sich das wieder.

> Die Programiersprache 'Schaltplaneingabe' ist genial für Elektroniker
> Das was übersichtlich auf einer A4-Seite passt würde in VHDL ein
> meterlanges Listing ergeben.

Mag sein, daß das besser für Elektroniker ist, aber in VHDL kann man 
auch kompakten und gut lesbaren Code schreiben. Und als Programmierer 
finde ich VHDL besser, da man damit schneller Änderungen machen kann. 
Ich habe z.B. mal den Schematic Editor in Quartus verwendet und wenn man 
da ein Pin zu einer selbst erstellten Komponente hinzufügen will, ist 
das immer recht umständlich und mit Editierung von Textdateien, vielem 
Mausklicken usw. verbunden. In VHDL dagegen nur ein paar Zeilen Code 
mehr.

Der Schematic Editor hat allerdings den Vorteil, ein großes System 
übersichtlich darstellen zu können (wobei das System, wo ich dran 
gearbeitet hatte, schon mehrere Seiten auf einem DIN A3 Drucker 
brauchte).

Andererseits gibt es im Schematic Editor keine Möglichkeit, per 
Generate- und Loop-Anweisung z.B. für 32 Eingänge mal eben jeweils einen 
AES3-Receiver zu instantiieren und die Ausgabe in einen handlichen 
Vector zu speichern, das muss man im Schaltplan mühsam von Hand machen. 
Ein guter Mix zwischen Schaltplan und VHDL wäre sinnvoll, wenn der 
Schaltplaneditor von Quartus nicht so schlecht wäre.

von Klaus W. (mfgkw)


Lesenswert?

Ich kann da nur bedingt mitreden, aber vielleicht hilft es:

Für das bißchen HW-Logik, was ich mache, reichen mir GALs
bislang aus.

Aber weil ich hier auch dauernd von CPLD und FPGA die Rede ist,
habe ich mir mal aus Spaß und Neugier das hier gekauft:
http://www.buecherbillig.de/experimente-programmierbarer-logik-schaltungen-vhdl-p-40516.html?ref=162

Wirklich genutzt habe ich nicht mangels Bedarf, aber mit
Interesse gelesen, in der Hoffnung mal ganz viel Zeit zu
haben.

Ich finde es einen guten und leichten Einstieg.
Und ist billig.

von Valentin B. (nitnelav) Benutzerseite


Lesenswert?

Ich habe mich nochmal über CPLDs FPGAs und GALs schlau gemacht.
Bitte korrigieren, wenn etwas nicht stimmt:
1
GALs sind eigentlich das selbe wie CPLDs, nur CPLDs sind größer.
2
CPLDs enthalten ein EEPROM, das die Matrix bildet.
3
Dieses EEPROM wird über einen HV-Programmierer beschrieben.
4
5
FPGAs sind eigentlich das selbe wir CPLDs, nur bildet hier kein EEPROM die Matrix, sondern ein RAM. Da RAM billiger ist, passen mehr Zellen auf ein FPGA, als auf ein CPLD.
6
7
Programmieren könnte man alle diese Bausteine eigentlich über einen Logikeditor oder über die Eingabe boolscher Ausdrücke (KNDF & KNNF).
8
9
Da das aber bei komplexeren Produkten viel zu lange dauert, benutzt man Hardwarebeschreibungsprachen wie ABEL oder VHDL.
10
Während ABEL sehr hardwarenah ist -so wie Assembler- ist VHDL eher eine Hochsprache wie C++.
11
Heute macht man fast alles mit VHDL, so wie auch nur noch sehr wenige Leute GUI-Anwendungen mit ASM schreiben.
12
13
VHDL kann simuliert werden.

Nun zu meinen Fragen:

MaWin, wenn du den GALBlast erfunden hast,
welches Tool benutzt du denn, um GALs zu programmieren?
der ispExpert kostet 995$...

Lothar Miller schrieb:
> und keinen Konfig-Speicher.
Heißt das, es gibt FPGAs mit externem Speicher?
Einen EEPROMmer hab ich schon gebaut!

Ihr redet dauernd von Xilinx.
Da es da ja ein einfaches Programmierkabel für die gibt,
wäre es ja mal einen Versuch wert.
Mit welchem Chip soll ich anfangen?

Oder doch Altera?

Mit freundlichen Grüßen,
Valentin Buck

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


Lesenswert?

Valentin Buck schrieb:
> Lothar Miller schrieb:
>> und keinen Konfig-Speicher.
> Heißt das, es gibt FPGAs mit externem Speicher?
"Übliche" SRAM basierte FPGAs laden ihre Konfiguration aus einem 
externen Speicher. Das kann ein herstellerabhängiges Flash-PROM sein, 
oder auch ein externes SPI-Flash.
> Einen EEPROMmer hab ich schon gebaut!
Es ist umständlich, das PROM in einem externen Programmer zu 
programmieren. Deshalb wird üblicherweise die JTAG-Schnittstelle des 
FPGAs dafür verwendet.
Und das ist ja der eigentliche Witz an der Sache: ohne irgendein Bauteil 
dauernd ein- und auszustecken kann es in der Schaltung umprogrammiert 
werden.

> Ihr redet dauernd von Xilinx.
Lattice und Altera waren auch schon im Gespräch...
Xilinx-Bausteine sind einfach leichter erhältlich. In der Bucht findest 
du dort immer wieder Posten mit 20 Stück CPLDs für unter 10 Euro...

> Da es da ja ein einfaches Programmierkabel für die gibt,
> wäre es ja mal einen Versuch wert.
Da lohnt sich der Selbstbau fast nicht mehr:
http://cgi.ebay.de/JTAG-Programmer-Kabel-Xilinx-CPLDs-FPGAs-/270627267829?pt=Wissenschaftliche_Ger%C3%A4te&hash=item3f02a464f5
Aus dem Beitrag "Pollin CPLD Board Erfahrungen?" die Schaltung des 
Programmierkabels: 
http://www.mikrocontroller.net/attachment/60865/x-shema.jpg
> Mit welchem Chip soll ich anfangen?
Bau dir ein kleines Board mit einem 9572 CPLD auf. Die HP von
Alternativ
Pollin hatte da mal ein CPLD-Board (siehe den 
Beitrag "Pollin CPLD Board Erfahrungen?"). Hier gibts die teurere 
Variante davon:
http://cgi.ebay.de/Xilinx-CPLD-Development-Board-IC-XC95144-Programmer-/330483212059?pt=Wissenschaftliche_Ger%C3%A4te&hash=item4cf2559f1b

von MaWin (Gast)


Lesenswert?

> MaWin, wenn du den GALBlast erfunden hast,
> welches Tool benutzt du denn, um GALs zu programmieren?

Lattice isp Synario Starter von der Elrad PLD CD :-)

http://www.latticesemi.com/corporate/newscenter/productnews/1997/r970909ispsynariostarters.cfm

Es hat sich halt seit 10 Jahren nichts getan bei GALs,
warum sollte man da umlernen, bzw. neu installieren.

http://www.latticesemi.com/products/designsoftware/isplever/index.cfm?source=topnav

Lattice Dianond kenn ich nicht,

ispLever Starter kann keine GALs

bleibt ispLever Classic. Keine Ahnung ob das kostenlos ist, hab den 
License-Link nicht weiter verfolgt.

Aber das Netz vergisst ja nichts, sagt man.

von Loonix (Gast)


Lesenswert?

Uwe Bonnes schrieb:
> Wenn man mir programmierbarer Logik Schaltplaene
> so malt, wie mit TTL, naemlich asynchron, dann faellt man ganz schnell
> auf die Nase.

Das gilt bei TTL-Gräbern genauso, nur fällt es manchmal nicht auf.

von Valentin B. (nitnelav) Benutzerseite


Lesenswert?

Echt, danke für eure Tipps!

Ich habe gerade bei Reichelt geguckt.
Im Angebot sind folgende Xilinx CPLDs:
 - XC9536XL (36 Macrocells)
 - XC9572XL (72 Macrocells)
 - XC95144XL (144 Macrocells)

Wie viele Macrocells brauche ich für den Anfang?

Ich finde ja den XC9572 ganz schön (Gibts auch in PLCC, also 
sockelbar!).

Das Programmierkabel ist schnell gebaut, ich habe alles hier, auch den 
Parallelport-Stecker.

Welche Entwicklungsumgebung brauche ich?
ISE WebPack?

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


Lesenswert?

Valentin Buck schrieb:
> Ich finde ja den XC9572 ganz schön (Gibts auch in PLCC, also
> sockelbar!).
Dann nimm den.
Der hat immerhin schon 72 FFs. 8 mal mehr als das 16V8... ;-)

> Welche Entwicklungsumgebung brauche ich?
> ISE WebPack?
Ja. Lass dir Zeit beim Download...
Oder besser: nimm eine ältere Version.
Die 9.2 ist recht stabil und noch relativ kompakt...

von Valentin B. (nitnelav) Benutzerseite


Lesenswert?

Ich habe gerade die CPLD-Seite von Ulrich Radig gefunden.

Da gibt es ein echt gutes Tutorial und auch gleich einen Schaltplan für 
Programmer und Testboard, auch wenn ich das Testboard erstmal als 
Breadboard ausführen werde.

ISE WebPack ist gleich fertig (3,2 GB über WLAN).
Dann werde ich das mal ausprobieren!

Mit freundlichen Grüßen,
Valentin Buck

von Valentin B. (nitnelav) Benutzerseite


Lesenswert?

Gibt es eigentlich eine Bibliothek für die Xilinx 9500er für KiCad?
Da drin habe ich schon mal ein paar Platinen gemacht,
also wäre es ideal.

Ich hatte vor eine rechteckige Platine zu machen, auf der der XC9572, 
ein NE555, ein Quarzoszillator, ein Umschalter und alle nötigen 
Kondensatoren sitzen. Dann kommen dann unten Stiftleisten dran, sodass 
ich das Board wie einen DIL-Chip benutzen kann.

Mit freundlichen Grüßen,
Valentin Buck

von Frank B. (foobar)


Lesenswert?

Achte aber darauf, daß du den Takt vom Quarzoszillator an einem der 
GCK-Pins anschliesst, da es sonst Probleme mit dem Routing bei 
synchronen Designs geben kann. Welchen CPLD du brauchst, kannst du 
leicht festellen: Einfach in ISE dein gewünschtes Projekt anlegen und 
ausprobieren, in welchen Chip es passt. Du kannst auch eine Simulation 
in ISE programmieren, oder per Waveform-Datei direkt stimulieren, sodaß 
du auch schon sehen kannst, ob es vielleicht läuft.

von Valentin B. (nitnelav) Benutzerseite


Lesenswert?

@Frank Buss: Danke! ISE ist echt cool. Würde man das alle auch bei 
AVR-Studio machen können..

Kann man eigentlich alle GCKs im Code verwenden, wenn man sie 
anschließt?

Wofür sind eigentlich die GTS-Pins da?
GSR ist doch Globaler Reset.

Und warum gibt es VccINT und VCCIO?
Ist das zweite nur die Versorgung der Treiberstufen?

mit freundlichen Grüßen,
Valentin Buck

von Valentin B. (nitnelav) Benutzerseite


Lesenswert?

Ich habe ein kleines Problem:
Es gibt fast nirgendwo eine Bibliothek für einen XC9572 oder XC9536 in 
VQFP!
Weder in Eagle (da gibts nur SQFP und PLCC) noch in KiCad (da gibts 
beide Chips gar nicht) habe ich was gefunden!
In KiCad bin ich auch besser, also wenn jemand da was hätte, wäre es 
echt toll!
Kann mir da jemand helfen?

Mit freundlichen Grüßen,
Valentin Buck

von axelac (Gast)


Lesenswert?

Vielleicht hilft auch dieser Beitrag:

Beitrag "CPLD VHDL Experimentiersystem"

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


Lesenswert?

Valentin Buck schrieb:
> Kann man eigentlich alle GCKs im Code verwenden, wenn man sie
> anschließt?
Gewöhn dir (insbesondere nach den obigen Anmerkungen zum Takt) einfach 
gleich mal an:
1
Ein Design (insbesondere ein Anfängerdesign) hat genau 1 Takt, 
2
der immer auf dieselbe Flanke aktiv ist. 
3
Es gibt keinen (und schon gar keinen asynchronen) Reset.
4
Externe Signale werden über 2 Flipflops einsynchronisiert.
5
Jede Abweichung von diesen Regeln muß fundiert begründet werden können.

Valentin Buck schrieb:
> Ich habe ein kleines Problem:
> Es gibt fast nirgendwo eine Bibliothek für einen XC9572 oder XC9536 in
> VQFP!
> Weder in Eagle (da gibts nur SQFP und PLCC) noch in KiCad (da gibts
> beide Chips gar nicht) habe ich was gefunden!
> In KiCad bin ich auch besser, also wenn jemand da was hätte, wäre es
> echt toll!
> Kann mir da jemand helfen?
Machs doch einfach selber. Das Stichwort dazu heißt: LERNEN... :-/

von Frank B. (foobar)


Lesenswert?

Valentin Buck schrieb:
> Kann man eigentlich alle GCKs im Code verwenden, wenn man sie
> anschließt?
>
> Wofür sind eigentlich die GTS-Pins da?
> GSR ist doch Globaler Reset.

Die Pins können generell als IO verwendet werden, machen es dem Fitter 
aber einfacher, wenn man sie für die vorgesehene Funktion verwendet, 
statt andere Pins:

http://forums.xilinx.com/t5/CPLDs/WHat-is-GCK-amp-GTS-amp-GSR-pins-role/m-p/6000

> Und warum gibt es VccINT und VCCIO?
> Ist das zweite nur die Versorgung der Treiberstufen?

Ja. Laut Datenblatt allerdings nur verwendbar für 3,3V und 2,5V, aber 
die die Eingänge vertragen auch 5V.

von Chris (Gast)


Lesenswert?

Witzig. Die gleichen Leite die behaupten CPLD's seien tot, sind auch die 
ersten die rumschreien, dass ein FPGA für den Job XY viel zu oversized 
ist  :)

von Valentin B. (nitnelav) Benutzerseite


Angehängte Dateien:

Lesenswert?

Ich konnte jetzt ums selber designen herumkommen, da ich eine 
Ulrich-Radig-Platine von einem Freund bekommen habe.

Trotzdem hatte ich ein Modell für KiCad gemacht.
Wer will, kann es benutzen!

Das Basteln macht echt Spaß und VHDL ist klasse.

Mit freundlichen Grüßen,
Valentin Buck

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.