Forum: FPGA, VHDL & Co. CPLD Schnelleinstieg Auswahl und Software


von maddin (Gast)


Lesenswert?

Hi,

ich kann jetzt schlecht fragen wie schwierig der einstieg in die CPLD 
programmierung ist, zudem kommt es mir darauf garnicht an.

Ich habe eine Logische/Digitale schaltung, und diese möchte ich ungern 
mit ttl ics aus der 74iger reihe aufbauen, so kam ich zu dem cpld.

früher gabs mal gals und pals, und da sind auch noch die fpgas hinzu 
kommt die frage nach einem programmer und der software.

xilinx hat da wohl etwas im angebot:

9572XL 72 makrozellen, wa auch immer man daraus schließen mag,

-wie kann man abschätzen wieviel dort hinein geht?
-gibts es einen einfachen programmer, der funktioniert und schnell 
lauffähig ist?
-welche software genau muss es sein - ich las etwas von grafisch und von 
der möglichkeit das ganze in vhdl zu beschreiben.

ich kenne vhdl nicht, gibts die möglichkeit eine art bibliothek der 
74iger reihe auf das cpld zu laden und zu verdrahten...

insgesamt erscheint mir das ganze immer etwas zu einfach beschrieben, 
wenn ich daran denke das allein die entwicklungsumgebung 800mb groß sein 
soll, gut - sollte mich nicht weiter stören bei dem festplattenplatz 
heut zu tage...

tja, ich versuche nur abzuschätzen ob man mit mittelmäßigem aufwand, und 
mit kleinem budget (brenner und hardware) schnell ein kleines cpld 
programmieren kann...das ist meine frage...

eventuell hat sich ja schonmal jemand von euch auch diese farge gestellt 
und etwas zusammengestellt...

dank euch,

m.

von Falk (Gast)


Lesenswert?

@ maddin (Gast)

>Ich habe eine Logische/Digitale schaltung, und diese möchte ich ungern
>mit ttl ics aus der 74iger reihe aufbauen, so kam ich zu dem cpld.

Recht so, mein Sohn.

>früher gabs mal gals und pals, und da sind auch noch die fpgas hinzu

Vergiss die GALs und PALs. Zu teuer, zu klein, zu stromhungrig.

>9572XL 72 makrozellen, wa auch immer man daraus schließen mag,

>-wie kann man abschätzen wieviel dort hinein geht?

Klar, wenn man sich damit auskennt. ;-)

>-gibts es einen einfachen programmer, der funktioniert und schnell
>lauffähig ist?

Ja.

http://www.geocities.com/jacquesmartini/digital/schematic/Parallel_Cable_III.png

>-welche software genau muss es sein - ich las etwas von grafisch und von
>der möglichkeit das ganze in vhdl zu beschreiben.

Webpack von Xilinx. Wobei ich da eher die alte Version 6.3. empfehle. 
Kleiner und bugfreier.

>ich kenne vhdl nicht, gibts die möglichkeit eine art bibliothek der
>74iger reihe auf das cpld zu laden und zu verdrahten...

Ist schon dabei.

>tja, ich versuche nur abzuschätzen ob man mit mittelmäßigem aufwand, und
>mit kleinem budget (brenner und hardware) schnell ein kleines cpld
>programmieren kann...das ist meine frage...

Kann man sehr gut.

>eventuell hat sich ja schonmal jemand von euch auch diese farge gestellt
>und etwas zusammengestellt...

Man sehe sich die FPGA und CPLD Tutorials dieser Seite an.

MFG
Falk

von maddin (Gast)


Lesenswert?

...wow...

dieses forum hatte ich glatt übersehen, jemand hat mich umgezogen... 
tja, wer lesen kann - ist klar im vorteil..

vieloen dank für die antwort bis jetzt..sehe mich mal nach der software 
um...

mal sehen, was sich hier so ergibt..

wie sieht das eigentlich mit taktraten aus, sagen wir mal ich 
programmiere mir dort ein schiebe reg. rein, welche taktraten könnte ich 
beim 9572XL  nutzen.... wovon hängt es u u ab..

evtl will ich eine große passive mux matrix realisieren, das heißt 
warscheinlich:

192bytes informationen müssen im cpld platz finden, naja, wäre nett 
wenn... und ich würde darauf muxen...

in welchem cpld könnte ich also 192bytes ablegen, 192 compare einheiten 
anlegen (8bit) und auf 192 compare leitungen mit 24  - 1 aus 8 muxern 
auf den compare einheiten muxen. Zudem müsste ich die möglichkeit 
einbauen die 192bytes nach zu laden, über einen parallelen oder 
seriellen bus.. eventuell erfordert dies eine art ping pong buffering, 
also 384bytes...

das cpld sollte also über 32i/o pins haben, am besten bei reichelt zu 
kaufen sein, leicht zu programmieren, und in einem handelbaren gehäuse 
PLCC o.ä. zu haben sein... gibts da was?

m.

von maddin (Gast)


Angehängte Dateien:

Lesenswert?

hier mal ein kleines Bild:

Gruß,
m.

von Falk (Gast)


Lesenswert?

@ maddin (Gast)

>wie sieht das eigentlich mit taktraten aus, sagen wir mal ich
>programmiere mir dort ein schiebe reg. rein, welche taktraten könnte ich
>beim 9572XL  nutzen.... wovon hängt es u u ab..

100MHz++. Ist relativ unabhängig vom Design. Erst wenn dein Design 
WIRKLICH komplex ist, und mehrere Stufen an Logik zwischen den 
Macrozellen benötigt werden, dann sinkt die maximale Taktrate.

>evtl will ich eine große passive mux matrix realisieren, das heißt
>warscheinlich:

Was meinst du mit passiver MUX? Eine normale unidirektionale ist kein 
Problem. Aber bidirektionale ohne Richtungsumschaltung, so wie es mit 
Analogschaltern machbar ist, geht nicht.

>192bytes informationen müssen im cpld platz finden, naja, wäre nett
>wenn... und ich würde darauf muxen...

192 BYTES kannst du in einem CPLD vergessen! Das braucht auf jeden Fall 
ein FPGA. 192 Bits geht, braucht aber schon einen grossen CPLD mit 256 
Macrozellen und mehr, Xilinx hat bis 512 Macrozellen.

>in welchem cpld könnte ich also 192bytes ablegen, 192 compare einheiten
>anlegen (8bit) und auf 192 compare leitungen mit 24  - 1 aus 8 muxern
>auf den compare einheiten muxen. Zudem müsste ich die möglichkeit
>einbauen die 192bytes nach zu laden, über einen parallelen oder
>seriellen bus.. eventuell erfordert dies eine art ping pong buffering,
>also 384bytes...

Aha, das LED-Thema wieder. ;-)
Du braucht für die 8x8x3 RGB-Matrix bestenfalls 24 PWMs. Aber auch dafür 
muss es schon ein relativ grosser CPLD sein. Ich hab mal 12 PWMs mit je 
8 nichtlinaren Stufen in einen 72 Macrozellen-CPLD gepresst, incl. SPI.

Aber wie gesagt, 192 BYTE kannst du mit JEDEM CPLD vergessen. Die 
Grössten haben 512 Macrozellen, d.h. du kannst maximal 512 BIT 
speichern.

>das cpld sollte also über 32i/o pins haben, am besten bei reichelt zu
>kaufen sein, leicht zu programmieren, und in einem handelbaren gehäuse
>PLCC o.ä. zu haben sein... gibts da was?

Ja, wie bereits gesagt die 95xxXL. Bei Reichelt. Unter GALs/PALs.

MfG
Falk

von Falk (Gast)


Lesenswert?

@ maddin (Gast)

>Dateianhang: BlockSchaltungMatrix.JPG (39,3 KB, 3 Downloads)
>hier mal ein kleines Bild:

Kleiner Tip.

Bildformate

MFG
Falk

von maddin (Gast)


Lesenswert?

jaja :-) das led thema, das wohl beliebteste unter den bastlern...

ein anderer thread hat mich dazu angestiftet jetzt doch mal ein wenig 
nach zu forschen was denn jetzt wie schnell zu machen ist..

also: makrozelle gleich bit - ok - das ist doch schonmal was...

tja, nur 24pwms - mann könnte sicher auch das muxing vor dem 
comperatoren machen, sozusagen immer jeweils 8 bytes auf einen 
comperator muxen, ich denke das problem bleibt weiterhin bestehen, ich 
bekomme die daten also nicht unter....

gibt es denn fpgas (leicht zu programmieren, grafisch, einfacher 
programmer - so wies scheint war dein posting für beides geeignet und im 
handelbarem gehäuse zu menschlichen kondtionen für privat leicht zu 
kaufen?)


passive mux, damit meinte ich nur, das die matrix selbst keine wirkliche 
intelligenz besitzt, sie bekommt einen clock, und macht dann nur was im 
speicher steht... der speicher kann asynchron zum cklock überschrieben 
werden... so könnte man einen prozessor dahinter hängen der nur daten 
verteilen muss, die pwm und das gemuxe ist damit nicht weiter seine 
aufgabe...

m.

von maddin (Gast)


Lesenswert?

@Falk (Gast)

gab es etwas das du nicht erkennen konntest?

gegentipp: mach die dinge nur so kompliziert wie nötig:-).

m.

von Falk (Gast)


Lesenswert?

@ maddin (Gast)

>also: makrozelle gleich bit - ok - das ist doch schonmal was...

Ja, 1 FlipFlop + grosser Logikdekoder.

>tja, nur 24pwms - mann könnte sicher auch das muxing vor dem
>comperatoren machen, sozusagen immer jeweils 8 bytes auf einen
>comperator muxen, ich denke das problem bleibt weiterhin bestehen, ich
>bekomme die daten also nicht unter....

Ja, so direkt gehts nicht mit nem CPLD. Deshalb ja mein Vorschlag 
AVR+CPLD. Der CPLD macht 24xPWM, die vom AVR für jede LED-Zeile neu 
geladen werden muss. Oder du packst alles in ein FPGA.

>gibt es denn fpgas (leicht zu programmieren, grafisch, einfacher
>programmer - so wies scheint war dein posting für beides geeignet und im
>handelbarem gehäuse zu menschlichen kondtionen für privat leicht zu
>kaufen?)

Naja, das mit dem Gehäuse ist ein Problem. Da gibts nur BGA oder QFP mit 
0,5mm Pitch.
Käuflich zu erwerben bei Reichelt zu brauchbaren Preisen. Aber FPGAs 
sind schon ein Stückchen aufwändiger, du brauchst noch 
Konfigurationsspeicher, mehrere Spannungen etc..

>passive mux, damit meinte ich nur, das die matrix selbst keine wirkliche

Kein Problem.

>gab es etwas das du nicht erkennen konntest?

Nein, aber . . .

>gegentipp: mach die dinge nur so kompliziert wie nötig:-).

Was ist an der Generierung von PNG kompliziert? Ausserdem. "Was Hänschen 
nicht lernt, lernt Hans nimmer mehr."

;-)

MfG
Falk

von maddin (Gast)


Lesenswert?

:-)
tja falk,

nun dann habe ich einen avr und ein cpld auf meiner kleinen platine, ich 
denke das hört sich menschlich an...

0,5mm pitch wäre zwar noch machbar mit der hand, mal sehen - wenns nicht 
sein muss...

du sagt also, das die 24fach pwm mit einem cpld des genannten typs 
möglich ist, und wenn ich recht verstehe hast du den ganzen kram schon 
realisiert?

also, avr - cpld  - spi dazwischen? anbindung an restsystem?

>>Was ist an der Generierung von PNG kompliziert? Ausserdem. "Was Hänschen
nicht lernt, lernt Hans nimmer mehr."<<

jap.

m.

von Falk (Gast)


Lesenswert?

@ maddin (Gast)

>nun dann habe ich einen avr und ein cpld auf meiner kleinen platine, ich
>denke das hört sich menschlich an...

Nicht wahr.

>du sagt also, das die 24fach pwm mit einem cpld des genannten typs
>möglich ist, und wenn ich recht verstehe hast du den ganzen kram schon
>realisiert?

Bitte AUGEN AUF! Ich sagte 12 (ZWÖLF!) Kanäle mit je 8 nichtlinearen 
Stufen. Für 24 Kanäle müsstest du zwei CPLDs dieses Typs nehmen 
(9572XL). Oder einen doppelt so grossen CPLD.

>also, avr - cpld  - spi dazwischen?

Ja, braucht drei Pins, SCK, MOSI, N_CS.

> anbindung an restsystem?

RS232?

MFG
Falk

von maddin (Gast)


Lesenswert?

au wei...

wie ich befürchtet hatte

24 nichtlineare mit 256 stufen´... ist dann doch ein bissl viel... 
kannte mich mit cpld nicht aus - aber jetzt habe ich zu´mindest schon 
mal eine vorstellung was denn so mit72 makrozellen möglich bzw nicht 
möglihc ist...

schönes we..

m.

von Joerg W. (joergwolfram)


Lesenswert?

Ich hab mal ein bisschen gerechnet und denke, ein Mega128 würde das auch 
noch schaffen. Zumindest bei 40Hz Multiplexfrequenz.

40Hz  8 Zeilen  256 Stufen = 81920HZ

16MHz / 81920Hz = 195 Takte je Zyklus

Die reine (lineare) PWM braucht 5 Takte je Kanal -> 120 Takte, 40 Takte 
noch für Interrupt, Berechnung PWM-Zähler, Spalte und Ausgabe. In jedem 
Zyklus wird die Anzeige für 4 Takte zur Ausgabe der Spalteninformationen 
dunkelgetastet, die dadurch fehlenden 2% kann man sich bestimmt über die 
Treiber kompensieren.

Aber das hat dann nichts mehr mit CPLD-Einstieg zu tun und müsste in ein 
anderes Unterforum ;)

Schöne WE

Jörg

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.