Guten Abend
Ich glaube ich würde gerne mal einige Versuche mit Cpld's machen. Jetzt
durchsuche ich seit Tagen das Netz dazu und werde mit Informationen
überlagert, welche ich großteils nicht verstehe.
1.Cpld werden in Vhdl geschrieben? Vhdl ist eine komplexe vollwertige
Programiersprache ? Und Vhdl kostet 3000$+ ?
http://www.altera.com/buy/software/buy-software.html
Dagegen habe ich in jetzt schon mehrfach Bilder und Videos gesehen, in
dem die Programmierung aussieht wie aneinander gekettete Logik
Bausteine?
http://www.youtube.com/watch?v=dJtmVZwZNrMhttp://www.pyroelectro.com/tutorials/cpld_board/software.html
Logicbausteine aneinanderreihen fände ich fürs Erste sehr verlockend, da
ich mich damit auskenne und mich fremden Programmiersprachen etwas
schwer tue.
3000$ kann ich auch nicht ganz glauben. Wer würde für ein Hobby so ein
teures Programm verwenden.
Daher nun an euch Profis. Ist das grafische Aneinanderreihen von Logik
nun Vhdl oder was ist das? Und woher bekommt man das? Und was kostet
das?
Vielen dank schoneinmal
> Cpld werden in Vhdl geschrieben?
Nö, ist eher Overkill.
Simple Logikgleichungen (ABEL) sind eigentlich ausreichend.
> Und Vhdl kostet 3000$+ ?
Autos kosten auch 500000 EUR. Zumindest Lamborghini.
Lattice ispLever ist gratis.
Falls du ein CPLD oder GAL von Lattice verwenden willst.
Aber vermutlich designt man lieber im Schaltplan-Modus.
VHDL ist europäisch akademisch, sehr ähnlich der nur im
militärischen genutzen Programmiersprache ADA.
Im ernsthaften Leben verwendet man lieber VERILOG,
damit sind die Chips gebaut die du nutzt.
Wenn dein PC noch ein Parallelport hat, kann man ispLSI
CPLDs einfach per Kabel direkt am PC programmieren, also
die Funktion übertragen.
http://blog.savel.org/2007/05/07/isp-cable-schematics/
Letztlich braucht man gar keine Bauteile wenn man ein 5V
CPLD programmieren will, schliesslich sind die Ausgänge
vom Parallelport auch TTL, sondern nur ein Kabel. Aber
das erkennt dann die Software nicht als Kabel.
Mit dem kleinen XC9536XL VQ44 hab ich mal rumgespielt.
Der kostet bei bei R. 2,05€.
Die einfache Toolchain konnte von XILINX kostenlos runtergeladen werden.
Keine Ahnung, ob das jetzt noch geht.
Da ich kein VHDL lernen wollte, hab ich das mit Logik-Symbolen
zusammengeklickt. Den Chip hab ich bis auf das letzte Bit ausgereizt.
Dies war praktisch auch das Limit, jeder größere Baustein sollte
definitiv per VHDL oder einer anderen Sprache programmiert werden.
Hallo Sven,
VHDL kostet erstmal an sich gar nichts.
Du kannst in einem Texteditor einfach loslegen.
Allerdings muss dann dieser Code interpretiert werden. Das macht dann
ein Syntheseprogramm. Dieses erkennt dann, was du eigentlich mit dem
VHDL-Code beschreibst. Also wie sich sowas in Hardware abbilden lässt.
Dazu muss das Syntheseprogramm wissen, auf welchen Chip dieses Design
implementiert werden soll.
Danach kommt dann das Platzieren und Routen (PAR). Das ist wieder ein
anderes Programm, dass dann die Elemente, die die Synthese "verschaltet"
hat, platziert und verbindet.
Ähnlich, wie wenn du eine Leiterplatte machst und die Bauteile
platzierst und die Leiterbahnen routest.
Daraus wird dann das eigentliche Programmierfile (z.B. .jed), welches
via Kabel vom PC in den CPLD "programmiert" wird.
Die Hersteller von CPLDs bieten meist kostenlose Toolchains an, in denen
du das alles machen kannst. Da ist dann ein Editor für VHDL, die
Synthese und das PAR integriert. Diese Tools bieten auch die
Möglichkeit, dass man anstelle von VHDL grafisch sein Design eingibt.
Dann kann man einfach einen Schaltplan zeichnen, und der Rest ist, wie
oben beschrieben.
Man kann die beiden Eingabemethoden meistens sogar mischen..
So ich habe mir gerade Ise Project Navigator von Xilinx geladen. Sage
und schreibe 6,2gb (warum auch immer) durch Tutorials und versuchen hab
ich recht schnell die Möglichkeit gefunden Logik Bausteine
zusammenzuklicken. (Das ersetzt ja ganze Raco Kisten voll verschiedener
Bausteine)
Jetzt würde mich natürlich brennend interessieren ob am Chip auch
rauskommt, was ich mir da zusammenklicke. Also muss die Hardware her
Chip währe wohl XC 9536XL erst mal mein Favorit zum Versuchen da
problemlos lötbar und mit 2.05€ günstig
Passt der Chip überhaupt zu der Software oder ist der anders?
Zum Beschreiben habe ich mich für eBay 320854520606 entschieden da
parallel für mich bedeuten würde ich müsste am Laptop arbeiten
passt der Programmer zum XC 9536XL und zu der Software ISE Project
Navigator ?
Lothar schrieb:> MaWin schrieb:>> Im ernsthaften Leben verwendet man lieber VERILOG> Heute wohl eher SystemC ...
Unter uns Klosterschwestern: damit wollten Ende des letzten Jahrtausends
eigentlich nur Hochschulen die teuren Simulatorlizenzen sparen. Und
danach versprachen sich Personaler billige freigestellte C-Programmierer
als Hardwareentwickler einkaufen zu können...
Sven schrieb:> So ich habe mir gerade Ise Project Navigator von Xilinx geladen. Sage> und schreibe 6,2gb (warum auch immer)
Sieh dir mal an, was Xilinx alles verkauft...
> die Möglichkeit gefunden Logik Bausteine zusammenzuklicken.
Ja, so fährt man schnell mal in eine Sackgasse...
Hier was zum Thema "Schaltplaneingabe vs. Beschreibungssprache":
Beitrag "kruder Fehler bei FPGA-Programmierung (ISE WEBpack-Schematic)"> ob am Chip auch rauskommt, was ich mir da zusammenklicke.
Hardware wird zu >>70% mit dem Simulator debugged.
Ich empfehle dir aber gleich auf FPGAs einzusteigen. Die Diskussion CPLD
vs. FPGA wird immer wieder geführt:
http://www.mikrocontroller.net/search?query=anf%C3%A4nger+cpld+fpga&forums[]=9&max_age=-&sort_by_date=1
@ Sven (Gast)
>ich recht schnell die Möglichkeit gefunden Logik Bausteine>zusammenzuklicken. (Das ersetzt ja ganze Raco Kisten voll verschiedener>Bausteine)
Ist soweit OK.
>Jetzt würde mich natürlich brennend interessieren ob am Chip auch>rauskommt, was ich mir da zusammenklicke.
Das tut man erstmal simulieren. Damit findet man die logischen Fehler
deutlich schneller. Am IC testet man bestenfalls noch, obe es mti alles
Randbedinugnen und anderen ICs zusammenspielt.
> Also muss die Hardware her>Chip währe wohl XC 9536XL erst mal mein Favorit zum Versuchen da>problemlos lötbar und mit 2.05€ günstig
Naja, versuch mal den 9572XL aufzutreiben, der hat doppelt soviele
Logikzellen. Du wirst sie schnell haben wollen.
>Passt der Chip überhaupt zu der Software
Gerade so noch. Neuere Software unterstützt die gar nicht mehr.
Ich hatte mir seinerzeit (vor ca. 10 Jahren) CPLD-Entwicklunskits von
Lattice (MACH irgendwas) und Xilinx (CX95256) gekauft, sowie das Buch
"VHDL-Synthese" von Reichardt/Schwarz. Kostenlose Software-Lizenz war
bei beiden Kits dabei.
Allerdings waren die Programmieradapter in beiden Fällen für
Parallelport.
Ich bezweifle, daß es diese Kits noch zu kaufen gibt.
9572XL gibts auch bei Reichelt also werd ich einfach dann mal ein oder
zwei mitbestellen.
Fpga brauchen doch externen speicher für das Programm? Ich bin bislang
mit meinen wohl nicht mehr ganz zeitgemäßen TTL bausteinen ganz gut
gefahren.
Vondaher brauche ich nicht immer das beste und neuste (schongarnicht
wenn ichs nicht verstehe und bedinen kann) Ich habe auch kein wirkliches
Projekt welches ich damit verwirklichen möchte. Es geht mir nur um
"Grundlagenforschung" Wenns mir gefällt werde ich sicher tiefer
einsteigen aber erstmal möglichst einfach und günstig das erste ergebnis
erziheln
Bleibt die frage passt der ausgesuchte Programmer? oder was sollte ich
da kaufen?
Sven schrieb:> Bleibt die frage passt der ausgesuchte Programmer?
Ja, der tut mit der Impact-SW von Xilinx.
> Fpga brauchen doch externen speicher für das Programm?
Lattice MachXO(2) nicht, Spartan AN auch nicht, und CPLDs sind sowieso
tot. Man hat sie nur noch nicht begraben.
Lattice (die Mutter der CPLDs) verkaufen ihre kleinen FPGAs unter dem
Deckmäntelchen CPLD. Und auch die Xilinx-CPLDs werden beim Start
blitzschnell "geladen"...
> das Programm?
Es ist kein "Programm", sondern eine "Konfiguration". Deshalb heißt
dieser Speicher auch nicht Programmspeicher sondern
Konfigurationsspeicher. Und nein, das ist jetzt keine Kleinkrämerei,
sondern einfach eine Begriffsdefinition. Wenn du mit dieser Technik
arbeiten willst, dann musst du auch die dort üblichen Worte verwenden.
Ich verweise dann am besten nochmal auf dieses Forum da, das den
Begriff "cpld" schon im Namen hat:
http://www.mikrocontroller.net/forum/fpga-vhdl-cpld
Ok Cpld sind also wohl tot. Man kann sie noch kaufen aber man sollte
nich.
Die welt dreht sich einfach zu schnell. Ich befürchte Fpga ist tot bis
ich verstanden habe wo der Unterschied eigentlich ist.
Kann ich mit der Software von Xilinx auch Fpga configuriren? und diese
über logic symbole bedinen?
Welcher währe dann der Fpga meiner wahl? wichtig klein lötbar ohne viel
Hühnerfutter und natürlich nich so teuer (das der verlust nich so gross
ist wenn ich es nicht verstehe und in die Ecke haue)
sven schrieb:> Kann ich mit der Software von Xilinx auch Fpga configuriren?
Ja.
> und diese über logic symbole bedinen?
Ja. Aber sag hinterher bloß nicht, es hätte dich keiner davor gewarnt!
> Welcher währe dann der Fpga meiner wahl?
Keine Ahnung, was du für eine Aufgabenstellung hast.
> wichtig klein lötbar
Nimm einen Lattice MachXO oder MachXO2 im TQFP Gehäuse. Die kann man
noch gut löten...
Ich würde aber für den Anfang DRINGENDST zu einem fertigen EVAL-Board
raten. Unbedingt!
Lothar Miller schrieb:> Ich würde aber für den Anfang DRINGENDST zu einem fertigen EVAL-Board> raten. Unbedingt!
Zum Beispiel das da:
http://www.latticesemi.com/products/developmenthardware/developmentkits/machxo2breakoutboard.cfm
Das hat inzwischen den grössten MachXO2 im TQFP144 verbaut, und fast
alle Pins auf Header verfügbar. Ausserdem ist bereits ein JTAG Adapter
zum Programmieren integriert.
* Momentan muss man beim Kauf noch etwas aufpassen, da die neue Version
hierzulande noch nicht verfügbar ist. Auf der bisherigen ist ein viel
kleiner MachXO2 verbaut und obendrein die ZE Version (extrem
stromsparend aber langsam, d.h. max 100 MHz)
Oh weih.
Also diese Boards sehen schonwieder so komplex aus. Eingebauter
Programmer is zwar nett aber um dann den Chip wirklich einbauen zu
können muss ich ja doch nochmal einen kaufen.
Und ich hab das gefühl der Chip is einwenig zuviel des guten.
Meine vorstellung geht eher so gen weniger einfacher nich so aufwändig
(fürs erste). Eine Anwendung währe zb ein Zähler 20bit Binär + 14bit
decimal auf und abwerts einige ausgänge inventirt und andere noch mit
and gatter verschaltet. Also möchte ich nur eine Handvoll 74er ersetzen.
Das bei ca 60Mhz.
Wenn Cpld und Fpga ähnlich bedient werden was spricht gegen Cpld für
erste Ledblink versuche und co? Bei mir geht es nicht um Serinfertigung.
Man muss es nicht immer übertreiben. Für ein paar erste, kleine
Spielerein tut es ein CPLD im PLCC Gehäuse, den pappt man per Sockel auf
Lochraster, fertig, zwei 100nF Kondensatoren dran, einen Stecker für den
Programmieradapter, drei LEDs mit Vorwiderständen und zwei Taster mit
Pull-Up, los gehts.
Es gibt ja sogar noch Leute in diesem Forum, die GALs empfehlen . .
. DAS würde ich sicher nicht mehr (Klimawandel und so ;-)
Falk Brunner schrieb:> Man muss es nicht immer übertreiben. Für ein paar erste, kleine> Spielerein tut es ein CPLD im PLCC Gehäuse
Man sollte dann aber dran denken, dass schon gleich danach damit dann
wieder Schluss ist. Ein 9536 hat nur 36 Speicherelemente (Flipfops),
damit kommt man nicht weit...
>den pappt man per Sockel auf> Lochraster, fertig, zwei 100nF Kondensatoren dran, einen Stecker für den> Programmieradapter, drei LEDs mit Vorwiderständen und zwei Taster mit> Pull-Up, los gehts.
Einen NE555 als Taktquelle würde ich auch noch dazubasteln...
36 flipflops ok das klingt nach wenig sprich damit kann ich keinen
zähler bauen wie oben beschrieben ? das währ aber ungut. ich merk schon
komplexes Thema. Werd trozdem erstmal klein anfangen und nebenbei viel
das netz durchlesen
sven schrieb:> 36 flipflops ok das klingt nach wenig sprich damit kann ich keinen> zähler bauen wie oben beschrieben ?
Naja, du kannst einen Zähler bauen, der durch 2^36 teilt, oder 2, die
durch 65536 teilen und dazu einen, der durch 16 teilt. Auf jeden Fall
sind 36 Flipflops ziemlich wenig, wenn mal Zustandsautomaten kommen (und
das ist eigetnlich schon wieder jeder Zähler... ;-)
Das hier passt z.B. gerade noch so in ein solches CPLD rein:
http://www.lothar-miller.de/s9y/categories/49-RS232-IO
Natürlich kommt man mit 36 oder 72 oder gar 144 Flip Flops nicht weit
wenn man FPGA Anwendungen im Kopf hat.
Aber am Anfänger ist man doch gut ausgelastet erst mal zu begreifen, um
was es geht, die Tools bedienen zu lernen, etwas zu verstehen,... Klar
da ist dann schnell Schluss, aber um ein cpld über spi an einen uc zu
hängen, das Lauflicht zu machen etc.pp - warum nicht.
Das ist doch besser, als mit dem dicken Board nach viel zu großen Zielen
zu schauen und dann nach (fast) fertigen Lösungen zu suchen.
Kleine Brötchen backen und Schuster bleib bei deinen Leisten hieß das in
meiner Jugend ;-) Klar darauf hinweisen, daß da nach einigen Wochen
Schluss ist solltet ihr schon.
Ob CPLD oder FPGA ist letztendlich wurscht (ist eigentlich eine andere
Architektur, wird aber heute oft aus anderen Gründen (Marketing?)
verwendet, hat Lothar oben schon geschrieben).
Letztendlich hängt es davon ab, was man damit machen will.
Kleine FPGAs sind genauso einfach zu handeln wie CPLDs, bieten meist
aber mehr Funktion (mehr Logik, damit größere Schaltungen). Generell
macht das Mapping ohnehin die SW.
Die Breakoutboards von oben sind sicher ein guter Start - die heißen so,
weil dort alle Pins nach außen geführt sind, d.h. du lötest deinen
eigenen Stecker drauf und schließt deine Peripherie an (was immer du
damit steuern willst).
BTW, zu TQPFs gibt es auch Adapterboards auf Lochrastermass (bis
TQPF144).
Zum Anfangen spricht nix gegen VHDL. Für den Start aus meiner Sicht
besser als Verilog. Die FPGA-Anbieter haben alle Tutorials auf ihrer
Webseite, um seine erste blinkende LED (das Hello World der HW) auf das
Board zu bringen. CHDL Tutorials gibt es en masse im Netz.
Wenn du mal ne komplexere Statemachine schreiben willst, dann ist VHDL
eh besser als Glue-Logic (die Zeiten von KV-Diagrammen und Quine
McCluskey sind vorbei, das können die Tools heute schneller und besser).
CPLD <-> FPGA ist ein eigenes Thema.
VHDL <-> Verilog (bzw. SystemVerilog, SystemC, UML oder sonstwas) auch.
Ich habe einer von diser gekauft
S3E Starterkit 80€ , ebay 360615269257
War doch nur 60€ , wan ich gekauft hatte.
Aber ich glaube €80 sind auch billig oder ??
mfg
Bingo (Dänemark)
Im Prinzip ja, aber manchmal gibt es halt ein paar böse Effekte in der
ralen Schaltung, die im Simulator nicht passieren, Z.B. unsaubere
Eingangssignale, asynchrone Eingangssignal, falsch getimte
Eingangssignale etc.
Sven schrieb:> So die sachen sind Bestellt. Wenn im Simulator das ergebnis aussiht qwie> es sollte müsste es doch eigentlich auch im Chip laufen odeR?
Ja, das wäre natürlich schön, ne? ;-) Die Realität sieht anders aus. Es
gibt z. B. in VHDL Sprachkonstrukte die zwar simuliert aber nicht
synthetisiert werden können. Es könnte das Timing in der Hardware nicht
stimmten (das Design im Chip ist zu langsam für den gewünschten Takt).
Oder du könntest ein nicht sauber synchrones Design gebaut haben, was in
der Hardware nicht sauber läuft (Stichworte Einsynchronisieren von
asynchronen Signalen, Taktdomänenübergänge etc.).
Du siehst, dir wird so schnell nicht langweilig werden.
Aber ein Schritt nach dem anderen. Wenn das Design im Simulator läuft
ist das schon mal ein guter Zwischenschritt.
> > Fpga brauchen doch externen speicher für das Programm?> Lattice MachXO(2) nicht, Spartan AN auch nicht,> und CPLDs sind sowieso tot. Man hat sie nur noch nicht begraben.> Ok Cpld sind also wohl tot.> Man kann sie noch kaufen aber man sollte nich.
Unsinn.
Bloss weil Lothar das behauptet, ist das noch lange nicht der Fall.
Dann wären SSI und MSI Logikbauseine wie 74HC00 das auch.
Es gibt immer noch einfache Anwendungen für die einfache Bausteine
ausreichen, auch wenn in diesem Forum am liebsten Widerstände schon
durch Microcontroller ersetzt werden.
Und wer lernen will, für den sind einfache Bausteine halt auch
einfach zu verstehen, auch die, die heute kompiziertes anwenden
haben meist an den einfachen gelernt.
Was tot ist, sind die auf Analogelektronik basierenden GALs von
Lattice, denn die brauchen unsäglich viel Strom wenn sie schnell
sein sollen und sind leicht störbar und zerstörbar. Aber damit
sind noch lange nicht alle einfachen Logikbausteine tot.
Falk hat es ja im Prinzip schon erklärt.
Die Simulation deines Codes zeigt dir den "Idalfall". Das heißt, dass
alles ohne Verzögerung passiert. Das ist aber in der Realität dann nicht
so. Die Signale im Chip breiten sich nur mit endlicher Geschwindigkeit
aus. Dadurch entstehen im Chip Verzögerungen, die in der Simulation
deines Codes nicht berücksichtigt sind.
Diese Laufzeiten der Signale können dann z.B. zu Spikes oder Glitches
führen, die du in der Simulation gar nicht siehst.
Und wenn dein Design prinzipiell nicht damit umgehen kann, weil du z.B.
ein paar wichtige "Grundregeln" außer Acht gelassen hast, dann kann es
passieren, dass in der Simulation alles prima funktioniert, aber auf dem
Chip dann plötzlich "unerklärliche Effekte" auftreten.
Ein paar ganz wichtige Regeln für synchrone Designs sind:
ALLE Register arbeiten mit dem selben Takt!
ALLE asynchronen Eingänge werden auf diesen Takt erstmal
einsynchronisiert!
Im Prinzip musst du sicherstellen, dass alle Signale im Chip sich immer
nur mit der Taktflanke des Systemtaktes ändern.
Wenn du das einhältst, dann "richtet" die Synthese nach Angabe, wie
schell der Systemtakt sein soll, alles weitere für dich.
Natürlich gibt es auch Designs, in denen diese Regeln nicht einzuhalten
sind, aber da muss man dann ein wenig mehr Hirnschmalz reinstecken, um
sicherzustellen, dass es trotzdem funktioniert. Aber für einen Anfänger
würde das jetzt zu weit führen.
Klingt jetzt bestimmt kompliziert, ist es aber eigentlich gar nicht so
sehr.
Ich könnte wetten, dass du auf Lothar Millers Homepage jede Menge
nütliche Tipps und Erklärungen findest, wie du einen sauberen Einstieg
findest und wie die von mir oben genannten Punkte dann tatsächlich in
die Realität umgesetzt werden.
Sven schrieb:> Wenn im Simulator das ergebnis aussiht qwie> es sollte müsste es doch eigentlich auch im Chip laufen odeR?
Vergiss einfach mal ein Signal einzusynchronisieren. Diesen Fehler
findest du mit dem Simulator nie. Oder verwende einen asynchronen
kombinatorischen Reset, oder, oder...
@ Schlumpf (Gast)
>Diese Laufzeiten der Signale können dann z.B. zu Spikes oder Glitches>führen, die du in der Simulation gar nicht siehst.
Gutes Stichwort Glitch.
Das klingt immer so kompliziert. Also ich habe jetzt einen Zähler mit
einem Takt und einem Reset welcher die ersten Bits Binär und die
weiteren Bits Decimal zählt und eben ein paar ausgänge noch inventiert.
Viel mehr wünsche ich mir ja erstmal garnicht :) Also ich habe 5stk 74
in hoffentlich einem XC9536XL damit ein paar cm² und etwas Lötarbeit
gespart.
Aber jemehr ich über Fpgs's lese desto mehr interesieren die dinger
mich. Damit kann man ja (wenn mans kann) die dollsten sachen machen
Sven schrieb:> Viel mehr wünsche ich mir ja erstmal garnicht :)
Genau, fang einfach mit kleinen Aufgaben an. Scheitere vielleicht an der
einen oder anderen Sache und lerne dann aus den Fehlern, die du
vielleicht gemacht hast.
Das ist der beste Weg, um mit dem Thema vertraut zu werden und dann
immer komplexere Geschichten zu machen.
Bei FPGA, CPLD und co. gibt es einige Stolpersteine, die nicht auf den
ersten Blick ersichtlich sind. Aber durch Ausprobieren stößt man sich
zwangsläufig irgendwann an diesen und lernt daraus.
Und wenn man was nicht tut, wie du es dir gedacht hast, dann findest du
hier auf jeden Fall jemanden, der dir weiterhilft und dir dann auch
erklärt, wo der Fehler steckt.
Sven schrieb:> Aber jemehr ich über Fpgs's lese desto mehr interesieren die dinger> mich.
Eine gute Voraussetzung, um Lust an dem sicher nicht ganz trivialen
Thema zu bekommen und sich dann auch da reinzufuchsen.
Karsten F. schrieb:> Ich habe einer von diser gekauft>> S3E Starterkit 80€ , ebay 360615269257>>>> War doch nur 60€ , wan ich gekauft hatte.>> Aber ich glaube €80 sind auch billig oder ??
Für den Preis..mit Ref.CD einfach super.(neu und unverbastelt)
Fazit:
Am besten gleich 2 von denen holen, damit kann man das Design mit dem
anderen Board auch noch in der Runtime aus-testen.
Somit hat man den Stimulus Hardware Runtime Pin-Event Code seperat vom
Main-Design getrennt.
Link:
http://www.digilentinc.com/Products/Detail.cfm?Prod=S3EBOARD
Viel Erfolg & Gruss Holger.