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.
@ 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
> 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.
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?
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?
@ 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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.