Forum: FPGA, VHDL & Co. CLPD verstehen lernen.


von Rubelus (Gast)


Lesenswert?

Ich habe hier zwei verschiedene CLPDs- einen EPM7032 von Altera und 
einen ATF1500 von Atmel.

Jetzt stellt sich mir die Frage: Was kann ich damit machen? Hätte schon 
sehr große Lust mich in diese "Logik" Welt einzuarbeiten. Vielleicht 
sind solche CLPD ja eine sehr gute Ergänzung zu einem 8Bit µC.

Jedoch weiß ich nicht wo und womit ich da anfangen kann um irgendein 
ein kleines Projekt auf die Beine zu stellen.

Das fängt bei der Beschaltung an und hört dann beim Brennen des Chips 
auf.

Jemand ein paar gute Ansätze, schöne Vorschläge für mich parat?

: Verschoben durch User
von Ernestus P. (malzeit) Benutzerseite


Lesenswert?

CPLDs sind schon sehr klein. Da kann man nicht viel machen. Ein gutes 
Beispiel für die Unterschiede µC/CPLD (FPGA) wäre eine Uhr, vielleicht 
noch PWM-Generator. Allgemein ist bei programmierbarer Logik das 
Kosten/Nutzen-Verhältnis sehr schlecht, da sehr aufwändig. Logik kommt 
daher nur dort zum Einsatz, wo Geschwindigkeit oder Zuverlässigkeit 
gefragt ist.

von Rubelus (Gast)


Lesenswert?

Danke schonmal für die gute Erklärung.

Das heißt im Grunde, abgesehen von der Geschwindigkeit, wäre ich mit 
einem µC immer besser beraten. Da umfangreicher und einfacher zu 
verarbeiten.

Ein schönes Einsatzgebiet stelle ich mir auch als I/O Porterweiterung 
für einen µC vor. Soetwas dürfte ja damit ja durchaus Möglichkeit sein.

Jetzt stellt sich mir die Frage der Programmierung: Werden dafür 
spezielle Programmer benötigt? Bei meinen zwei obig aufgeführten 
Modellen ist von einer ISP Programmierung die Rede. Da stellt sich mir 
die Frage, ob gerade der Atmel Derivat sich ebenfalls mit der regulären 
µC Hardware beschreiben lässt?

von TokyoDrift (Gast)


Lesenswert?

Rubelus schrieb:
> Ein schönes Einsatzgebiet stelle ich mir auch als I/O Porterweiterung
> für einen µC vor. Soetwas dürfte ja damit ja durchaus Möglichkeit sein.
Beitrag "Re: Arbeiten mit RS 232"
Da habe ich vorgestern oder so extra ein VHDL "Programm" dafür 
geschrieben. Evtl wäre es sinnvoll das UART mit SPI zu ersetzen wenn du 
das ganze mit einem µc steuern willst.

Rubelus schrieb:
> Jetzt stellt sich mir die Frage der Programmierung: Werden dafür
> spezielle Programmer benötigt? Bei meinen zwei obig aufgeführten
> Modellen ist von einer ISP Programmierung die Rede. Da stellt sich mir
> die Frage, ob gerade der Atmel Derivat sich ebenfalls mit der regulären
> µC Hardware beschreiben lässt?
Also wie es bei Atmel ist weiß ich nun wirklich nicht, aber 
normalerweise haben die Dinger eben ein entsprechendes JTAG Interface.

von Ernestus P. (malzeit) Benutzerseite


Lesenswert?

Rubelus schrieb:
> Jetzt stellt sich mir die Frage der Programmierung: Werden dafür
> spezielle Programmer benötigt? Bei meinen zwei obig aufgeführten
> Modellen ist von einer ISP Programmierung die Rede. Da stellt sich mir
> die Frage, ob gerade der Atmel Derivat sich ebenfalls mit der regulären
> µC Hardware beschreiben lässt?

Den riesen Überblick in sachen CPLD habe ich jetzt nicht. Meine 
Erkundungstour in Sachen CPLD hatte folgendermaßen ausgesehen:
* Xilinx IDE installiert
* Kleines Board mit Xilinx XL95xx fertig gekauft
* Günstigen Programmer für Parallelport gekauft, der dann auch mit der 
ISE von Xilinx kompatibel ist.

Ich wollt mich auch nicht in Basteleien verstricken und war auch alles 
nicht arg teuer.

von Ernestus P. (malzeit) Benutzerseite


Lesenswert?

PS: Ich wollte dich jetzt nicht abschrecken. Für mich war der kurze 
Ausflug Richtung CPLD sehr lehrreich. Dadurch kann man schon viel 
leichter die Möglichkeiten die eine solche Technologie bietet sowie den 
Aufwand der erforderlich ist besser abschätzen.

Am Spannendsten  war die Erkenntnis das Logikprogrammierung eine 
grundsätzlich andere Denkweise erfordert.

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


Lesenswert?

TokyoDrift schrieb:
> Da habe ich vorgestern oder so extra ein VHDL "Programm" dafür
> geschrieben.
Ich habe so einen Port-Expander schon mal vor längerer Zeit gemacht:
http://www.lothar-miller.de/s9y/categories/49-RS232-IO
Geht auch ganz gut... ;-)

von Sebastian E. (der_andere_sebastian)


Lesenswert?

ATF15xx ist im Prinzip baugleich zu Altera EPM70xx (wobei "02" dem 32er 
entspricht, "04" dem 64er).
Beschaltung ist nicht schlimm - Spanungsregler, Abblockkondensatoren, 
ggf. Quarzoszilllator.
Programmieren kann man über den Parallelport, wenn man noch einen hat, 
mit einem "ByteBlaster MV" Kabel, was da drin ist, ist in einer Appnote 
von Altera zu finden (die alte Version, es gibt auch eine ohne 
Schaltplan). Quartus II WebEdition ist zwar eigentlich überdimensioniert 
dafür, sollte aber mit diesem Typ noch gehen. Atmels WinCUPL ginge auch, 
ist aber technisch älter.

Porterweiterung als Beispiel wird überigens von Atmel beschrieben: 
http://www.atmel.com/dyn/resources/prod_documents/doc3635.pdf

ByteBlaster MV Schaltplan findet man über Google als pdf.

Wie schon von meinen Vorrednern richtig angedeutet, 32 Makrozellen sind 
nicht viel. Ein Mikrocontroller kann viel komplexere Vorgänge ausführen 
als Logik in einem CPLD. Aber für relativ kleine Algorithmen, und Dinge, 
die man notfalls mit Gattern aufbauen könnte, ist ein CPLD unschlagbar 
schnell. Klassische Anwendungen wären beispielsweise neben Adreßdecodern 
/ -vergleichern in Mikroprozessorsystemen ("Glue Logic") auch 
programmierbare Teiler, Decoder zur Ansteuerung von 7-, 14- oder 
16-Segment-Anzeigen.. und schließlich die Ansteuerung controllerloser 
Grafik-LCDs, dafür werden aber 32 Makrozellen wahrscheinlich zu wenig 
sein.

von Rene K. (draconix)


Lesenswert?

Sebastian E. schrieb:
> Programmieren kann man über den Parallelport, wenn man noch einen hat,
> mit einem "ByteBlaster MV" Kabel, was da drin ist, ist in einer Appnote
> von Altera zu finden

Nuja, hab zwar noch einen Rechner mit Paralelport - dieser ist jedoch 
nicht mehr gaaaanz so aktuell :D Entweder dürfte es dann auf eine I/O 
Karte auslaufen (Mittlerweile besitzt mein aktueller Rechner ja nichtmal 
mehr eine RS232 :/) oder... oh ich sehe gerade ich habe noch einen zIgel 
mit 1xLPT / 2xRS232 in µITX. Ich schau mir mal den Bauplan an.

Alternativ baue ich mir auf jeden Fall mal den EvertoolLight nach. Die 
Teile, bis auf den Quarz, habe ich eh schon alle da. Und Reichelt führt 
ja mittlerweile diesen uminösen 7,3Mhz Quarz.

Sebastian E. schrieb:
> Decoder zur Ansteuerung von 7-, 14- oder
> 16-Segment-Anzeigen..

Oh, das hört sich auf jeden Fall auch interessant an. Na da bin ich ja 
mal gespannt.

Vielen Dank euch!

von Sebastian (Gast)


Lesenswert?

Nur mal als kleine Anmerkung: Evertool Light kann aber nicht zur 
Programmierung von CPLDs verwendet werden. Das ist nur für AVRs.

von Rene K. (draconix)


Lesenswert?

Ah danke, gut zu wissen... dachte JTAG sei JTAG... nur halt Pegel andere 
Pegelanpassungen. Also bleibt im Grunde nur ein BytBlaster II/ MV 
Nachbau!?

Einen RS232 "ByteBlaster" sucht man bestimmt vergebens oder?

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


Lesenswert?

Rene K. schrieb:
> dachte JTAG sei JTAG...
Ja, so wie Auto Auto ist.

> nur halt Pegel andere Pegelanpassungen.
Nur halt einmal mit allradgetriebenen groben Stollenreifen und großer 
Bodenfreiheit oder das andere Mal mit Slicks und beengten 
Sitzverhältnissen...

> Also bleibt im Grunde nur ein BytBlaster II/ MV Nachbau!?
Für das Geld baust du den niemals selber:
http://cgi.ebay.de/USB-Blaster-programmer-JTAG-cable-for-Altera-CPLD-FPGA-/260694889373?pt=LH_DefaultDomain_0&hash=item3cb2a0539d

von Rene K. (draconix)


Lesenswert?

Lothar Miller schrieb:
> Für das Geld baust du den niemals selber:
> Ebay-Artikel Nr. 260694889373

Danke für den Link zu dem USB Adapter. Ich werde erstmal nach folgendem 
Schaltplan ein einfaches LPT Kabel bauen... ich denke sogar das ich nen 
HC244 noch irgendwo in ner Kramkiste rumfliegen habe, wenn nicht kostet 
der mich gerade mal zwanzig Pfennig. Für den Anfang dürfte das erstmal 
reichen...

viel mehr wird mich wahrscheinlich die Einarbeitung in Quartas kosten.. 
der erste Blick ist ja.. hmm... "erschlagend".

von Hans-Georg L. (h-g-l)


Lesenswert?

Vorsicht !!!

EPM7032 ohne Zusatz "S" lässt sich nicht über JTAG programmieren !

Aber auch bei den "S" Typen funktioniert das nur wenn da nicht schon die 
JTAG pins in normale I/O's umprogrammiert wurden. Das ist bei den 
kleinen CPLD nicht ungewöhnlich, das alle Pins als I/O gebraucht werden.

Sonst braucht du ein käufliches Programmiergerät.

von Sebastian (Gast)


Lesenswert?

Der Hinweis von h-g-l ist nicht unbegründet. Allerdings sind auch die 
Typen mit dem Zusatz "A" oder "AE" JTAG/ISP-programmierbar. Wenn aber 
tatsächlich nach dem 7032 kein Buchstabe kommt, dann lohnt es sich, wenn 
überhaupt, nur mit den ATF1500 anzufangen. Programmiergeräte für die 
EPM70xx ohne Zusatz "A", "AE" oder "S" sind für den Heimanwender 
unbezahlbar. Bei den Dingern müssen wir sogar in der Firma passen.
Siehe auch hier:
Beitrag "EPM7032 Programmer"

von Hans-Georg L. (h-g-l)


Lesenswert?

Die E Und AE gibts meines Wissens aber erst ab EPM128 ...

von Frank B. (foobar)


Lesenswert?

Ernestus Pastell schrieb:
> Allgemein ist bei programmierbarer Logik das
> Kosten/Nutzen-Verhältnis sehr schlecht, da sehr aufwändig. Logik kommt
> daher nur dort zum Einsatz, wo Geschwindigkeit oder Zuverlässigkeit
> gefragt ist.

Würde ich nicht sagen. Kommt aber natürlich immer auf die Anwendung 
drauf an. Aber gerade bei hardwarenahen Sachen, für die man ja auch 
schonmal Microcontroller verwendet, ist z.B. der VHDL-Code durchaus 
vergleichbar in der Länge und Komplexität mit entsprechenden C-Code, 
manchmal finde ich, sogar einfacher zu lesen. Hier in diesem Thread 
findest du ein Beispiel von mir:

C:

Beitrag "Re: 2 Incrementalgeber koppeln"

VHDL:

Beitrag "Re: 2 Incrementalgeber koppeln"

von Sebastian E. (der_andere_sebastian)


Lesenswert?

> Die E Und AE gibts meines Wissens aber erst ab EPM128 ...

In der Firma habe ich schon EPM7064A in der Hand gehabt, aus laufender 
Produktion, TQFP44-Gehäuse. Die werden mit dem normalen ByteBlaster MV 
programmiert. Könnte sein, daß es auch 32er davon gibt.

von Hans-Georg L. (h-g-l)


Lesenswert?

Bevor wir weiter vermuten .. hab ich mal bei Altera nach geguckt ;


MAX7000 Serie 5V

EPM7XXX ohne Buchstabe  kein JTAG
EPM7XXX E ab 128        kein JTAG
EPM7XXX S alle          JTAG        (7032 und 7064 kein boundary Scan)

JTAG Pins sind als I/O umprogrammierbar, kann aber nur mit 
Programmiergerät wieder rückgängig gemacht werden. Also aufpassen, das 
dieses Bit nicht im Bitstream gesetzt ist.

MAX7000A Serie  3,3 V

EPM7XXX AE alle         JTAG

MAX7000B Serie  2,5 V

EPM7XXX BE alle         JTAG

Wie das mit den JTAG pins als I/O bei der A und B Serie ist hab ich auf 
die schnelle nicht gefunden.

Bei den EPM7032S,EPM7064S und EPM70128S hab ich das aus eigener 
Erfahrung mal lernen müssen. Habe mir darauf ein quasi leeres design 
erstellt bei dem das JTAG enable Bit gesetzt ist und über einen DATAIO 
Programmer die Dinger wieder umgeschossen.

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.