Forum: FPGA, VHDL & Co. Suche Infos über CPLD's (XC9536XL)


von Thomas S. (gemelon)


Lesenswert?

Hallo, normalerweise beschäftige ich mich mit Mikrocontrollern, aber ich 
möchte gerne auch einiges über CPLD’s lernen. Ich habe mir aus diesem 
Grund nun den CPLD XC9536XL von XILINX besorgt. Leider sind die 
Informationen zu diesen Bausteinen nicht so Umfangreich und Verständlich 
wie zu den Controllern.

Mich würde nun Interessieren:
 Welcher Pin hat welche Funktion?
 Wie Funktioniert so ein CPLD?
 Benötigt ein CPLD auch einen Taktgenerator, so wie ein Prozessor?
 Wenn Ja, Warum benötigt er einen Taktgenerator.

Was ich mich noch Frage ist, bei einem Prozessor gibt es eine Zeichnung 
von dem PACKAGE und an den Pins sind die Namen der Pins, warum gibt es 
so was nicht von einem CPLDs? Leider gibt es scheinbar auch nirgends ein 
Tutorial, dass wirklich solche Sachen klärt. Alles was ich bis jetzt 
gefunden habe, beschreibt wie und warum die Dinger entstanden sind und 
warum die geiler sind wie die Vorherigen, wie die aber Funktionieren ist 
nicht zu erfahren. Die XILINX Bausteine scheine ja ziemlich toll zu 
sein, aber ohne richtige Infos, nützt mir das garnichts.

Kann mir jemand einen Internetseite oder ein Buch empfehlen?

Danke
Gemelon.

von Falk B. (falk)


Lesenswert?

@ Thomas Stoll (gemelon)

> Welcher Pin hat welche Funktion?

Die meisten sind frei konfigurierbar. Nur wenige haben eine festgelegte 
Funktion. Siehe Datenblatt.

> Wie Funktioniert so ein CPLD?

Kurze Antwort. Gut!

> Benötigt ein CPLD auch einen Taktgenerator, so wie ein Prozessor?

Wenn man sequenztielle Logik drin hat (Schieberegister, Zähler, State 
Machine etc.).

> Wenn Ja, Warum benötigt er einen Taktgenerator.

Aus dem selben grund warum uCs sie brauchen. Einer muss den Ton, ähhh, 
Takt angeben.

>Was ich mich noch Frage ist, bei einem Prozessor gibt es eine Zeichnung
>von dem PACKAGE und an den Pins sind die Namen der Pins, warum gibt es
>so was nicht von einem CPLDs?

???
Klar. Schau mal ins Datenblatt.

http://www.xilinx.com/support/documentation/data_sheets/ds058.pdf
http://www.xilinx.com/support/documentation/data_sheets/ds054.pdf

http://www.xilinx.com/support/documentation/xc9500xl.htm#19762

>Kann mir jemand einen Internetseite oder ein Buch empfehlen?

Leider nein.

Mfg
Falk

von Morin (Gast)


Lesenswert?

> Welcher Pin hat welche Funktion?

Es gibt wenige Pins mit vorgeschriebenen Funktionen (mal abgesehen von 
den üblichen Versorgungsleitungen Vcc, GND, ...). Diese sind für die 
Programmierung gut. Alle anderen Pins bekommen ihre Funktion erst durch 
die Programmierung.

> Wie Funktioniert so ein CPLD?

Man schreibt eine "Konfiguration" (*) in einer 
Hardwarebeschreibungssprache (HDL) wie Verilog oder VHDL, übersetzt sie, 
und Programmiert den CPLD damit (über die o.g. Spezialpins). Diese 
Programmiersprachen werden nicht wie z.B. in C Schrittweise ausgeführt, 
sondern beschreiben Hardware, von der alle Komponenten ständig und 
parallel arbeiten. Das ist weniger wie Programmieren und viel mehr wie 
Löten, nur ohne Lötkolben. Die Pins des CPLD bekommen ihre Funktion dann 
durch ihre Verbindung mit den "Bauteilen" aus deinem Quellcode.

Intern realisiert wird das Ganze durch programmierbare Schalter, 
Verbindungsnetze, Logiktabellen etc.

(*) Der Begriff "Konfiguration" wird oft verwendet, um klar zu stellen, 
dass es um eine Hardwarebeschreibung und nicht um ein sequentielles 
Programm geht.

> Benötigt ein CPLD auch einen Taktgenerator, so wie ein Prozessor?

Jein.

1. ist für das Laden der Konfiguration oft ein spezieller 
Konfigurationstakt nötig, der danach aber keine Rolle mehr spielt.

2. braucht der CPLD für die Arbeit keinen Takt, aber die durch die 
Konfiguration realisierten Bauteile können einen brauchen (oder auch 
mehrere), ganz davon abhängig welche Schaltung du vorher in der HDL 
hingeschrieben hast. Wenn du z.B. ein Schieberegister in VHDL 
hinschreibst, braucht dieses einen Takt. Der CPLD braucht keinen, aber 
ohne Takt simuliert er eben ein Schieberegister das nicht an einen Takt 
angeschlossen ist.

> Was ich mich noch Frage ist, bei einem Prozessor gibt es eine Zeichnung
> von dem PACKAGE und an den Pins sind die Namen der Pins, warum gibt es
> so was nicht von einem CPLDs?

Würde mich echt wundern wenn es das nicht gibt. Z.B. ist aber bei Xilinx 
das Datenblatt in mehrere Abschnitte geteilt die man einzeln runterladen 
muss (da es ansonsten ein Riesending wäre). Kann also gut sein, dass du 
nur den falschen Teil angesehen hast.

Wie oben schon erklärt sind aber die meisten Pins "frei konfigurierbar" 
und deshalb nicht näher beschrieben. Die Funktion musst du ja erst 
festlegen. Für solche Pins sind dann nur die elektrischen Eigenschaften 
wie Vout, Imax usw. angegeben.

von Thomas S. (gemelon)


Lesenswert?

Ok, das mit den PIN’s hab ich jetzt verstanden und auch sonst bin ich 
ein ganzes Stück weiter gekommen. Allerdings habe ich jetzt ein anderes 
Problem. Ich hab mir einen Parallelen Programmer gebaut und wollte den 
Chip dann Programmieren. Da bekomme ich aber die folgende Fehlermeldung:

// *** BATCH CMD : setMode -bs
// *** BATCH CMD : setMode -bs
// *** BATCH CMD : Program -p 1 -e -defaultVersion 0
ERROR:iMPACT:583 - '1': The idcode read from the device does not match 
the idcode in the bsdl File.
INFO:iMPACT:1578 - '1':  Device IDCODE : 
01011001011000000010000010010011
INFO:iMPACT:1579 - '1': Expected IDCODE: 
00001001011000000010000010010011
'1': Check to make sure if version '0101' is supported.
PROGRESS_END - End Operation.

In der Hilfe von XILINX heißt es dazu, das manche CPLD’s mit Impact 
nicht Programmiert werden können. Das finde ich schon ein starkes Stück 
von der Firma. Die Stellen Bausteine her die sie gar nicht Programmieren 
können. Was ich nicht ganz verstanden habe ist, ob es sich dabei nur um 
einige Bausteine aus der XC9536 Serie handelt oder ob man alle XC9536 
nicht Programmieren kann.
Das nächste was ich mich Frage ist, ob ich die Dinger wieder 
zurückschicken kann, schließlich hat mich keiner darauf hingewiesen das 
man die Dinger nicht Programmieren kann. Überhaupt, wem nützen die 
eigentlich was, wenn man die nicht Programmieren kann?

Seltsam ist, dass wenn ich Impact direkt aufrufe nicht über ISE, dann 
ergibt sich eine ganz andere Fehlermeldung:

ERROR:iMPACT:2488 - The operation did not complete successfully.
PROGRESS_END - End Operation.

Kennt jemand das Problem und kann mir sagen ob ich mit neuen XC9536XL 
erfolg haben könnte?

von Εrnst B. (ernst)


Lesenswert?

Also die XC9572XL lassen sich mit so nem billig Parport Programmer 
beschreiben.
Die '36er sind nur die kleinere Version davon, also geh ich zu 99,999% 
davon aus, dass die sich auch so beschreiben lassen.

Check mal Spannungsversorgung von dem CPLD, alle VCC + GND Pins 
angeschlossen? Spannung stabil?

von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

@  Thomas Stoll (gemelon)

>'1': Check to make sure if version '0101' is supported.
>PROGRESS_END - End Operation.

>In der Hilfe von XILINX heißt es dazu, das manche CPLD’s mit Impact
>nicht Programmiert werden können. Das finde ich schon ein starkes Stück

Da hast du glaub ich was falsch verstanden. Die XC9536XL können 
definitiv mit IMPACT propgrammiert werden. Wo hast du den IC her? Ich 
hab vor einiger Zeit welche bei Reichelt gekauft, die liefen auf Anhieb. 
Welche ISE Version hast du?

>zurückschicken kann, schließlich hat mich keiner darauf hingewiesen das
>man die Dinger nicht Programmieren kann. Überhaupt, wem nützen die
>eigentlich was, wenn man die nicht Programmieren kann?

Nein, du bist auf dem Holzweg. Das ist zu 99,99% ein Softwarefehler.

>ERROR:iMPACT:2488 - The operation did not complete successfully.
>PROGRESS_END - End Operation.

Die Software von Xilinx wird leider immer schlechter :-( Ein Bug jagt 
den nächsten. Zieh dir mal die GANZ alte Version des JTAG Programmers 
(3.0 oder so), gibts bei xilinx unter ISE Classic. Die Läuft gut und 
schnell!

>Kennt jemand das Problem und kann mir sagen ob ich mit neuen XC9536XL
>erfolg haben könnte?

Im Anhang das BSDL, wahrscheinlich liegt dort der Fehler. Das muss ins 
Verzeichnis

C:\Programme\xilinx_webpack    Installationspfad, bei dir sicher anders

\xc9500xl\data                 Unterverzeichnis


MFG
Falk

von Thomas S. (gemelon)


Lesenswert?

Hallo,
vielen Dank an alle mit den guten Antworten, die haben mir wirklich 
geholfen!

Ich habs endlich geschaft das Teil zu Programmieren. Leider hatte ich 
noch einen Fehler in der Konfiguration, ich hatte einen XA9536XL 
ausgewählt und nicht einen XC9536XL. Da war die Fehlermeldung einfach 
ziemlich nichtssagend. Ich habe den JTAG Programmer 3.3 Installiert und 
der hat dann die richtige Fehlermeldung gebracht. So einfach ist das, 
wenn man ordentliches Werkzeug hat ;-)

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.