Hallo, nachdem ich nun viel über GALs, FPGAs und CPLDs gehört habe, würde ich doch ganz gerne mal ein bisschen mit denen herumspielen. Nun sind FPGAs und CPLDs mir erst mal viel zu groß. Es gibt ja auch kleine GALs mit 16 Pins, das würde mir erstmal reichen. Wo liegen so die Vor- und Nachteile von GALs, FPGAs und CPLDs? Wie programmier ich die? Wie brenne ich die? Was bräuchte ich, um mal in die GAL-Welt zu schnuppern? Oder sind die veraltet? Wichtig wäre mir, das es nicht allzu teuer ist... Ich freue mich auf eure Antworten! Mit freundlichen Grüßen, Valentin Buck
:
Verschoben durch User
Valentin Buck schrieb: > Wo liegen so die Vor- und Nachteile von GALs, FPGAs und CPLDs? GALs sind tot (und hatten fast keine Flipflops). CPLDs liegen im Sterben (und haben schrecklich wenig Flipflops). FPGAs sind aktuell und lösen die CPLDs ab (und es sind ausreichend viele Flipflops da... ;-) > Wie programmier ich die? Nimm eine Hardwarebeschreibungssprache wie VHDL (Europa) oder Verilog (Amerika). Vergiss gleich am Anfang solche Sachen wie "Schaltplaneingabe". Das ging bei den paar Flipflops in einem CPLD schon noch, aber bei FPGAs ist sowas peinlich... > Wie brenne ich die? Mit einem passenden JTAG-Programmierkabel. > Was bräuchte ich, um mal in die GAL-Welt zu schnuppern? > Oder sind die veraltet? Ja. Lattice hat jetzt endlich alle 20V8 GALs abgekündigt. Warum erwähne ich eigentlich dauernd diese Flipflops? Weil das (für Anfänger) die einzigen Bauteile sind, die Speichern können. Und sowas brucht man für Zustände und Zähler und Register und... Fazit: ohne Flipflops bist du sehr schnell aufgeschmissen. BTW: sieh dich doch mal ein wenig in der FPGA-Ecke hier um und such mal nach "Anfänger": http://www.mikrocontroller.net/search?query=anfaenger&forums[]=9&max_age=-&sort_by_date=1
> GALs sind tot (und hatten fast keine Flipflops). Es gibt sie genau wie 7400 noch, denn wenn du Valentin's Beitrag wenigstens gelesen hättest bevor du ihn beantwortest hättest du gelesen "das würde mir erstmal reichen", so wie für manche Jobs auch ein 7400 noch reicht. Sie sind nicht veraltet, bloss weil es inzwischen grössere gibt (CPLDs sind letztlich nur mehrere GALs in einem -meist deutlich grösseren- Gehäuse). Und ob 2 GALs oder 1 CPLD billiger ist, hängt von der Einkaufsquelle ab. > Was bräuchte ich, um mal in die GAL-Welt zu schnuppern? > Wichtig wäre mir, das es nicht allzu teuer ist... GALs (und CPLDs und FPGAs) programmierst du z.B. mit der kostenlosen Design Expert Software von Lattice, und schiebst das Programm, äh, das JEDEC-File ins GAL mit einem Brenner wie GALBlast http://www.armory.com/~rstevew/Public/Pgmrs/GAL/_ClikMe1st.htm Du brauchst für dieses aber einen Rechner mit echtem Parallelport, kein USB-Parallelport-Dongle, und unter XP einem Programm wie totalio zum Freischalten des Ports.
Ich denke CPLDs haben immer noch ihre Einsatzgebiete, da die auch mittlerweile recht preiswert sind. Gibt da von Xilinx und Altera gute Chips. Die Software von beiden Herstellern ist frei (für die kleineren Devices), wobei mir Quartus von Altera besser gefällt und auch für Einsteiger leichter ist. Ein preiswertes Entwicklungsboard mit integriertem Programmer wäre z.B. das hier: http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=39&No=215 Wenn du mehr damit machen willst, dann lohnt sich ein extra USB-Blaster Programmer oder Xilinx Cable, damit du auch eigene Schaltungen damit testen und programmieren kannst. Man kommt aber schnell an die Stelle, wo es FPGAs sein müssen, wenn du mal einen Soft-Core implementieren willst o.ä. FPGAs werden meist per externen Flash beim Booten konfiguriert, oder auch von einem zusätzlichen Microcontroller, sodaß man dafür also nicht unbedingt einen Prorgammer braucht. Für schnelle Turn-Around Zeiten beim Entwickeln kann es aber dennoch nützlich sein, die per JTAG in-circuit zu programmieren und zu debuggen. Man braucht aber zum Einstieg auch nicht unbedingt reale Hardware, da es gute Simulationsprogramme gibt. Mir gefällt Modelsim sehr gut, was es in einer abgespeckten Variante kostenlos für die kostenlose Quartus Version gibt. Ist aber immer wieder überraschend, was in der Simulation läuft und in realer Hardware dann nicht :-)
Genauso, wie es oft empfohlen wird, wenn man mit Mikrocontrollern anfängt, zunächst Assembler zu lernen, weil es dem Verständnis der zugrundeliegenden Hardware dienlich ist, könnte man annehmen, daß der Einstieg über GAL oder CPLD-Programmierung ebenso hilfreich ist, um zu verstehen, was im FPGA am Ende passiert. Wer sich natürlich eher für die abstrahierte Betrachtungsweise der Hardwarebeschreibungssprachen interessiert, kommt wahrscheinlich mit dem direkten FPGA-Einstieg weiter, weil einfach die Komplexität der zu realisierenden Schaltungen höher ist. Wo soll die Reise denn hingehen? Ein paar Zähler und Decoder für Ziffernanzeigen und so etwas, vielleicht eine primitive Uhr realisieren als Übung, das geht leichter mit ein paar GALS oder einem billigen CPLD, da kann man dann auch das Layout leicht selber machen. Wenn natürlich beispielsweise ein "nacktes" TFT-Panel angesteuert werden soll, mit DRAM als Bildspeicher und allem Schnickschnack, dann ist man sehr schnell bein FPGA, ebenso bei rechenintensiven Algorithmen der Signalverarbeitung. Aber größere FPGAs werden schnell bastlerunfreundlich; man sollte auf jeden Fall 0,5mm Pinabstand löten können - oder das Geld für ein fertiges Board haben, Preis ab etwa 50 Euro bis nach oben hin offen.
MaWin schrieb: >> GALs sind tot (und hatten fast keine Flipflops). > Es gibt sie genau wie 7400 noch, denn wenn du Valentin's Beitrag > wenigstens gelesen hättest bevor du ihn beantwortest hättest Ich meinte, die Fagen beantwortet zu haben. Das hier waren für mich nur Behauptungen, die mit den anschliessenden Fragen untermauert werden sollten: >> Nun sind FPGAs und CPLDs mir erst mal viel zu groß. >> Es gibt ja auch kleine GALs mit 16 Pins, das würde mir erstmal reichen. MaWin schrieb: >> GALs sind tot (und hatten fast keine Flipflops). > Es gibt sie genau wie 7400 noch, denn wenn du Valentin's Beitrag > wenigstens gelesen hättest bevor du ihn beantwortest hättest du gelesen > "das würde mir erstmal reichen", so wie für manche Jobs auch ein 7400 > noch reicht. Es wäre mir schade um die Zeit, die ein Anfänger in 30 Jahre alte Technik investiert, um dann frustriert nach einem halben Jahr entweder zu sagen: "Alles Schei..., taugt nicht für mich" oder zu sagen: "Dumm gelaufen, muß ich eben alles neu lernen". > Es gibt sie genau wie 7400 noch, Ich schmiede mir zum Lernen von Transistorschaltungen doch auch nicht meinen eigenen Transistor wie seinerzeit Shockley&Co... Von den 100% Wissen, die man beim Lernen mit GALs aufbaut, kann man bestenfalls noch 10% bei CPLDs/FPGAs sinnvoll weiterverwenden. > Es gibt sie genau wie 7400 noch, Ich würde diese Aussage nach der Abkündigung von Lattice (dem GAL-Hersteller schlechthin) sehr in Frage stellen. Und Xilinx wird in Zukunft (ebenso wie Lattice auch) keine CPLDs mehr machen... Lattice bringt sogar ein FPGA (MachXO) an den Markt und schreibt verschämt CPLD drauf, um den Umsteigern die Hemmschwelle niedrig zu legen... > und schiebst das Programm, äh, das JEDEC-File ins GAL mit einem > Brenner wie GALBlast Und hoffst, dass der den Programmieralgorithmus des verwendeten GALs auch tatsächlich kann... > Du brauchst für dieses aber einen Rechner mit echtem Parallelport, kein > USB-Parallelport-Dongle, und unter XP einem Programm wie totalio zum > Freischalten des Ports. Technik von gestern für Technik von vorgestern eben...
Ja... vielleicht. Es hängt immer davon ab, was man machen will. GALs sind praktisch Schüttgut, man wird sie noch Jahrzehnte später auf dem Markt finden, so viele sind davon produziert worden. Für den schnellen und vor allem sehr billigen Ersatz von ein paar TTLs in einer kombinatorischen Logikschaltung muß man nicht unbedingt ein CPLD opfern. Andererseits gibt es inzwischen auch CPLDs, die billiges Schüttgut sind und die man ohne Gewissensbisse verbraten kann. Aber einen FPGA, ggf. mit Konfigurationsspeicher, für eine simple kombinatorische Logik zu benutzen, ist und bleibt Overkill. Meine Meinung natürlich. Wie wär's mit einem Kompromiß? EPM3032 oder EPM3064A nehmen, das ist eine realistische Größe für Bastler, und ein industrieübliches Bauteil, das es wie Sand am Meer gibt. Und von der Firma, die CPLDs erfunden hat und diese daher wohl noch lange nicht aufgibt... Altera. Ein ByteBlaster-Kabel ist schnell nachbebaut. Ich hoffe, damit habe ich jetzt keinen Glaubenskrieg losgetreten. ;)
Danke für eure Antworten Einen Computer mit Parallelport hätte ich noch herumstehen (reicht XP?). Der GALBlast sieht ja schön aus, einfach zu bauen und die Teile habe ich fast alle noch da (wofür braucht man den D/A-Converter?). Leider scheint die EAGLE-Datei defekt zu sein. Könnte jemand hier einen direkten Schaltplan posten, den ich auf Lochraster aufbauen kann? Ich hatte erstmal nur vor, einfachste Sachen zu machen, zum Beispiel einen Zähler, der die Zahl gleich auf einer 7-Segment-LED-Anzeige ausgibt. Nichts allzu kompliziertes. Leider habe ich bisher die Software DesignExpert von Lattice nicht gefunden. Ich habe auf deren Seite gesucht, aber nur ispExpert gefunden. Ist es das richtige? Und wo gibt es ein VHDL-Tutorial? Oder welche Sprache verwenden GALs? GALs sind eben schön klein und billig. Später wirds dann vielleicht mal ein FPGA. mit freundlichen Grüßen, Valentin Buck
Sebastian schrieb: > Aber einen FPGA, ggf. mit Konfigurationsspeicher, für eine simple > kombinatorische Logik zu benutzen, ist und bleibt Overkill. Meine > Meinung natürlich. Der ist nichts entgegenzusetzen. Aber (zumindest meine) Logikschaltungen brauchen auch immer irgendwelche Zähler... Und da gehts schon los: so ein 16V8 GAL mit seinen 8FFs kann ja nicht mal einen 1MHz-Takt aus 1Hz herunterteilen... Sebastian schrieb: > EPM3032 oder EPM3064A nehmen Blöd nur, dass man die fast nirgends bekommt.... :-/ Da wären dann so XC9536 / XC9572 schon einfacher zu beschaffen. Bei EBAY sogar komplett mit Programmieradapter...
Lothar Miller schrieb: > kann ja nicht > mal einen 1MHz-Takt aus 1Hz herunterteilen... Ist auch kompliziert. Da müsste man eine PLL synthesieren... Ich würde gerne mit GALs anfangen. Ich weiß, wie die von innen aussehen, die sind klein genug, umm übersichtlich zu sein und anscheinend gibt es funktionierende Brenner zum selber bauen. FPGAs können bei mir ja noch kommen. GALs bekomme ich billig über Reichelt. FPGAs sind groß, schwer zu löten und so gut wie nie DIP, was ich dann auch mal auf ein Breadboard basteln könnte. Außerdem sind FPGAs teurer. Mit freundlichen Grüßen, Valentin Buck
Valentin Buck schrieb: > Ich hatte erstmal nur vor, einfachste Sachen zu machen, zum Beispiel > einen Zähler, der die Zahl gleich auf einer 7-Segment-LED-Anzeige > ausgibt. > Nichts allzu kompliziertes. LOL... :-D Schon da wirst du ziemliche Kopfstände machen müssen. Ich würde hier den Zähler im 7-Segment-Zustandsautomaten zählen lassen, damit 1 Zählerstelle in 1 GAL16V8 passt... > Und wo gibt es ein VHDL-Tutorial? Oder welche Sprache verwenden GALs? Probiers mit "ABEL"... Oder sonst einer herstellerabhängigen Programmiersprache... Was sagte ich zum Thema "Weiterverwerten des angehäuften Wissens"? > GALs sind eben schön klein und billig. Und das wars dann schon... >> kann ja nicht >> mal einen 1MHz-Takt aus 1Hz herunterteilen... > Ist auch kompliziert. Da müsste man eine PLL synthesieren... Nein, ganz falsch: Das kannst du mit lächerlichen 8 FFs aus 1 MHz gerade mal auf eine Frequenz von 4kHz teilen...
Bitte nichts durcheinanderbringen. Lothar Miller hat recht, GALs sind nur für ganz simple Sachen und man ist damit schnell am Limit. Und: Mit VHDL ist da gar nichts, dafür sind die zu primitiv. Mindestens ein CPLD muß es sein. Wer unbedingt GALs will, sollte sich eher mit der Eingabe Boolescher Gleichungen befassen. Einfach, solange rein kombinatorisch. Ein steiniger Weg, sobald man die Flipflops benutzen muß, eben für Zähler und Teiler, Zustandsautomaten... da ist Theorie gefragt. Der DAC sorgt für die richtige Programmierspannung, die kann bei GALs stark variieren. DesignExpert gibt es nicht mehr, soweit ich weiß.
Lothar Miller schrieb: > Schon da wirst du ziemliche Kopfstände machen müssen. Ich würde hier den > Zähler im 7-Segment-Zustandsautematen zählen lassen, damit 1 > Zählerstelle in 1 GAL16V8 passt... Und? Dann muss ich eben lernen, Boolsche Ausdrücke zu vereinfachen. Ich will was lernen, und nicht nur eine höhere Programmiersprache. Ich will verstehen, wie das funktioniert. Ich will nicht einen Funktionsgenerator bis 10 Ghz bauen, sondern einfach ein bisschen basteln, experimentieren, learning by doing eben. Ich bin kein Elektrotechnik-Student der gerade VHDL lernen muss, sondern Schüler. Zeig mir ein billiges FPGA, das ich einfach programmieren kann und das auf ein Breadboard passt. Ich bin nicht gegen die Technik FPGA, sondern gegen die Gehäuse. Ich dachte eigentlich, programmierbare Logik bedeutet, dass ich die Standard-Operationen wie AND & OR oder NAND & NOR zu etwas verschalte, nur dass es in einem Chip passiert und nicht auf einem Breadboard. mit freundlichen Grüßen, Valentin Buck
Valentin Buck schrieb: > Lothar Miller schrieb: >> kann ja nicht >> mal einen 1MHz-Takt aus 1Hz herunterteilen... > > Ist auch kompliziert. Da müsste man eine PLL synthesieren... Nein, ein paar Flipflop reichen völlig aus. > Ich würde gerne mit GALs anfangen. > Ich weiß, wie die von innen aussehen, > die sind klein genug, umm übersichtlich zu sein und anscheinend gibt es > funktionierende Brenner zum selber bauen. Ich sehe das vielleicht zu sehr aus Programmierersicht, aber mich interessiert nicht so sehr, was da drin ist, da derselbe VHDL-Code auf CPLDs und FPGAs gleiche macht, auch wenn die komplett anders von der Technologie her aufgebaut sind. > FPGAs können bei mir ja noch kommen. > GALs bekomme ich billig über Reichelt. > FPGAs sind groß, schwer zu löten und so gut wie nie DIP, was ich dann > auch mal auf ein Breadboard basteln könnte. Gibt welche im DIL-Format, z.B. die hier, von denen ich ein paar hier liegen habe und die prima funktionieren: http://www.trenz-electronic.de/de/produkte/fpga-boards/oho-elektronik.html > Außerdem sind FPGAs teurer. Das stimmt allerdings, zumindest im Vergleich zu z.B. XC9572, der auch prima für kleinere Dinge verwendbar ist. Gibt es z.B. ab 1,73 Euro bei Digikey und die TQFP44-Packages kann man auch noch gut selber löten: http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=122-1448-ND Da brauchst du dann allerdings das Xilinx Platform Cable, von dem es aber auch preiswerte Nachbauten gibt. Wenn du VHDL nicht magst, unterstützen die Tools aber auch alle einen Schematic-Mode, wo du tatsächlich NANDs, Flipflops usw. wie in einem Schaltplan zeichnen kannst: http://uhaweb.hartford.edu/jmhill/ee335/schemtut/index.htm
> Ich dachte eigentlich, programmierbare Logik bedeutet, dass ich die > Standard-Operationen wie AND & OR oder NAND & NOR zu etwas verschalte, > nur dass es in einem Chip passiert und nicht auf einem Breadboard. Das ist eigentlich vollkommen richtig erkannt. Jedoch gibt es in diesen Chips auch Speicherelemente, die einen Zustand taktgesteuert festhalten können, Flipflops eben. Diese sind die Grundlage, um komplexere Funktionen realisieren zu können. Wenn eine Schaltung als kombinatorisch bezeichnet wird, besteht sie nur aus logischen Verknüpfungen, ohne Speicherelemente, jede Änderung an den Eingängen führt unmittelbar zu einer Änderung an den Ausgängen. Komplexere Logikschaltungen hingegen, wie z.B. Zähler, haben innere Zustände, die in den Flipflops festgehalten werden. Dies macht den Entwurf gleich komplizierter. Aber nur zu - ich finde es lobenswert, daß jemand den Willen zeigt, sich durchzubeißen. Im Übrigen: Für einen "armen" - aber lernwilligen - Schüler würde ich natürlich kostenlos ein paar (Altera) CPLDs aus meinem Bastelvorrat abgeben, habe aber nur TQFP44-Gehäuse. Notfalls könnte ich aber auch einen auf ein Adapterboard löten.
Frank Buss schrieb: > mal einen 1MHz-Takt aus 1Hz herunterteilen... Das aus müsste eigentlich auf heißen. Die PLL war als Anspielung auf den bissigen Tonfall in dem Thread gedacht. Wie in einem anderen Forum als die Frage fiel "PIC oder AVR"... Jetzt zu den FPGAs: 1.73€ bei Digikey ist ganz okay, dann noch ein paar Euro für einen SMD-zu-DIL-Adapter. Wenn ISE kostenlos ist, dann ist das absolut genial und schön. Bleibt der Programmierer. Ich habe gesehen, dass es hier im Wiki eine Nachbaute gibt, da ist aber ein 100pin FPGA drauf. Abschreckend. Außerdem schafft das eine Henne-Ei-Problematik. Danke für eure Hilfe!!! mit freundlichen Grüßen, Valentin Buck
Wer keinen altmodischen Parallelport am PC hat, muß etwas mehr anlegen. Ein paralleles Programmierkabel kann ohne "Henne-Ei-Problem" gebaut werden, bei USB ist das nicht mehr trivial, da muß man wohl mal in der Bucht fischen oder so. PS: Der für 1,73 ist ein CPLD. Bei einem FPGA zu dem Preis hätte ich gesagt: "Ja, ihr habt alle recht, das Thema CPLD ist gegessen und vom Tisch."
Also zumindest Atmel hat noch die industry standard 16V8, 20V8 and 22V10s voll im Programm. Allerdings braucht man dafür spezielle Programmiergeräte. Deshalb würde ich auch zu CPLDs raten, die man direkt am Parallelport (JTAG) programmieren kann. Z.B. Xilinx XC9572, den gibts noch im bastlerfreundlichen PLCC-44 Gehäuse. Ist genauso aufgebaut, wie die SPLDs, bloß eben 72 Macrozellen (FFs) statt nur 10. Peter
Ja, ISE ist kostenlos, zumindest für alle kleineren CPLDs und FPGAs. Platform Cable gibt es bei eBay, da lohnt sich selberbauen nicht: http://cgi.ebay.de/Xilinx-Platform-Cable-USB-CPLD-FPGA-USB-download-cable-/270627772572?pt=LH_DefaultDomain_0&hash=item3f02ac189c Ich habe übrigens aus einem Resteverkauf von einer Firma noch ein paar Experimentierboards mit 100 TQFP XC9572XL hier herumliegen, siehe Dateianhänge. Bei Interesse eMail an mich, gebe ich für 10 Euro pro Stück ab.
> Und hoffst, dass der den Programmieralgorithmus des verwendeten GALs > auch tatsächlich kann... Kann er, ich hab ihn ja schliesslich erfunden, und du sagst ja selbst: bei GALs hat sich seit langem nichts getan (verändert). > Ist es das richtige? Ja. Hab' halt diese neuere nicht ausprobiert. > Leider scheint die EAGLE-Datei defekt zu sein. Anbei.
Valentin Buck schrieb: > Zeig mir ein billiges FPGA, das ich einfach programmieren kann und das > auf ein Breadboard passt. Nimm ein Spartan 3AN im 144-Pin-Gehäuse (oder einen MachXO). Dann brauchst du nur 3,3V VCersorgung und keinen Konfig-Speicher. Und so ein SMD Gehäuse zu löten ist einfach eine Frage der Übung. Für das gerade erwähnte Gehäuse bruachst du mit ein wenig Übung nicht länger als 5 Mintuen... > Ich bin nicht gegen die Technik FPGA, sondern gegen die Gehäuse. Du wirst mit dieser Einstellung die Entwicklung in der Elektronik aber nicht nennenswert beeinflussen. Und wenn das dein Hauptargument ist, dann solltest du auch einen Holzvergaser ins dein Auto einbauen, denn das ist Technik, da konnte man noch so richtig selber was machen... ;-) Frank Buss schrieb: > Platform Cable gibt es bei eBay, da lohnt sich selberbauen nicht: Und wenn tatsächlich noch so ein Parallelport da ist, dann tut es auch der ParallelCable 3 Nachbau: http://www.xilinx.com/itp/xilinx4/data/docs/pac/appendixb.html http://www.holger-klabunde.de/projects/Xilinx.htm
Xilinx waren schon immer etwas 'hinterdran' ;-) Wir arbeiten mit den modernen Altera MAX II. Bei gleicher Baugröße zu Xilinx haben diese den doppelten Inhalt an Zellen, ein Zehntel der Verlustleistung und das doppelte der Grenzfrequenz. Die Programiersprache 'Schaltplaneingabe' ist genial für Elektroniker. Das was übersichtlich auf einer A4-Seite passt würde in VHDL ein meterlanges Listing ergeben.
@Norbert_l64: Bei Digikey faengt ein XC9536XL bei 0.91 Euro an, Altera Bausteine bei 1.32 Euro. X hat 36 Makrozellen, A 32 Zellen. Wir kommst Du auf den Vorteil von A? Zur Schaltplaneingabe: Wenn man mir programmierbarer Logik Schaltplaene so malt, wie mit TTL, naemlich asynchron, dann faellt man ganz schnell auf die Nase. Und mit Verilog hat man viel weniger Geschwaetzigkeit als mit VHDL. Das was man uebersichtlich mit wenigen Zeilen HDL Code ausdruecken kann, passt haeufig nicht auf viele Seiten Schaltplan...
Ansbach Dragoner schrieb: > Wir arbeiten mit den modernen Altera MAX II. Bei gleicher Baugröße zu > Xilinx haben diese den doppelten Inhalt an Zellen, ein Zehntel der > Verlustleistung und das doppelte der Grenzfrequenz. Altera ist aber auch teurer. Der kleinste MAX 2 kostet das Dreifache vom kleinsten XC9572XL, da relativiert sich das wieder. > Die Programiersprache 'Schaltplaneingabe' ist genial für Elektroniker > Das was übersichtlich auf einer A4-Seite passt würde in VHDL ein > meterlanges Listing ergeben. Mag sein, daß das besser für Elektroniker ist, aber in VHDL kann man auch kompakten und gut lesbaren Code schreiben. Und als Programmierer finde ich VHDL besser, da man damit schneller Änderungen machen kann. Ich habe z.B. mal den Schematic Editor in Quartus verwendet und wenn man da ein Pin zu einer selbst erstellten Komponente hinzufügen will, ist das immer recht umständlich und mit Editierung von Textdateien, vielem Mausklicken usw. verbunden. In VHDL dagegen nur ein paar Zeilen Code mehr. Der Schematic Editor hat allerdings den Vorteil, ein großes System übersichtlich darstellen zu können (wobei das System, wo ich dran gearbeitet hatte, schon mehrere Seiten auf einem DIN A3 Drucker brauchte). Andererseits gibt es im Schematic Editor keine Möglichkeit, per Generate- und Loop-Anweisung z.B. für 32 Eingänge mal eben jeweils einen AES3-Receiver zu instantiieren und die Ausgabe in einen handlichen Vector zu speichern, das muss man im Schaltplan mühsam von Hand machen. Ein guter Mix zwischen Schaltplan und VHDL wäre sinnvoll, wenn der Schaltplaneditor von Quartus nicht so schlecht wäre.
Ich kann da nur bedingt mitreden, aber vielleicht hilft es: Für das bißchen HW-Logik, was ich mache, reichen mir GALs bislang aus. Aber weil ich hier auch dauernd von CPLD und FPGA die Rede ist, habe ich mir mal aus Spaß und Neugier das hier gekauft: http://www.buecherbillig.de/experimente-programmierbarer-logik-schaltungen-vhdl-p-40516.html?ref=162 Wirklich genutzt habe ich nicht mangels Bedarf, aber mit Interesse gelesen, in der Hoffnung mal ganz viel Zeit zu haben. Ich finde es einen guten und leichten Einstieg. Und ist billig.
Ich habe mich nochmal über CPLDs FPGAs und GALs schlau gemacht. Bitte korrigieren, wenn etwas nicht stimmt:
1 | GALs sind eigentlich das selbe wie CPLDs, nur CPLDs sind größer. |
2 | CPLDs enthalten ein EEPROM, das die Matrix bildet. |
3 | Dieses EEPROM wird über einen HV-Programmierer beschrieben. |
4 | |
5 | FPGAs sind eigentlich das selbe wir CPLDs, nur bildet hier kein EEPROM die Matrix, sondern ein RAM. Da RAM billiger ist, passen mehr Zellen auf ein FPGA, als auf ein CPLD. |
6 | |
7 | Programmieren könnte man alle diese Bausteine eigentlich über einen Logikeditor oder über die Eingabe boolscher Ausdrücke (KNDF & KNNF). |
8 | |
9 | Da das aber bei komplexeren Produkten viel zu lange dauert, benutzt man Hardwarebeschreibungsprachen wie ABEL oder VHDL. |
10 | Während ABEL sehr hardwarenah ist -so wie Assembler- ist VHDL eher eine Hochsprache wie C++. |
11 | Heute macht man fast alles mit VHDL, so wie auch nur noch sehr wenige Leute GUI-Anwendungen mit ASM schreiben. |
12 | |
13 | VHDL kann simuliert werden. |
Nun zu meinen Fragen: MaWin, wenn du den GALBlast erfunden hast, welches Tool benutzt du denn, um GALs zu programmieren? der ispExpert kostet 995$... Lothar Miller schrieb: > und keinen Konfig-Speicher. Heißt das, es gibt FPGAs mit externem Speicher? Einen EEPROMmer hab ich schon gebaut! Ihr redet dauernd von Xilinx. Da es da ja ein einfaches Programmierkabel für die gibt, wäre es ja mal einen Versuch wert. Mit welchem Chip soll ich anfangen? Oder doch Altera? Mit freundlichen Grüßen, Valentin Buck
Valentin Buck schrieb: > Lothar Miller schrieb: >> und keinen Konfig-Speicher. > Heißt das, es gibt FPGAs mit externem Speicher? "Übliche" SRAM basierte FPGAs laden ihre Konfiguration aus einem externen Speicher. Das kann ein herstellerabhängiges Flash-PROM sein, oder auch ein externes SPI-Flash. > Einen EEPROMmer hab ich schon gebaut! Es ist umständlich, das PROM in einem externen Programmer zu programmieren. Deshalb wird üblicherweise die JTAG-Schnittstelle des FPGAs dafür verwendet. Und das ist ja der eigentliche Witz an der Sache: ohne irgendein Bauteil dauernd ein- und auszustecken kann es in der Schaltung umprogrammiert werden. > Ihr redet dauernd von Xilinx. Lattice und Altera waren auch schon im Gespräch... Xilinx-Bausteine sind einfach leichter erhältlich. In der Bucht findest du dort immer wieder Posten mit 20 Stück CPLDs für unter 10 Euro... > Da es da ja ein einfaches Programmierkabel für die gibt, > wäre es ja mal einen Versuch wert. Da lohnt sich der Selbstbau fast nicht mehr: http://cgi.ebay.de/JTAG-Programmer-Kabel-Xilinx-CPLDs-FPGAs-/270627267829?pt=Wissenschaftliche_Ger%C3%A4te&hash=item3f02a464f5 Aus dem Beitrag "Pollin CPLD Board Erfahrungen?" die Schaltung des Programmierkabels: http://www.mikrocontroller.net/attachment/60865/x-shema.jpg > Mit welchem Chip soll ich anfangen? Bau dir ein kleines Board mit einem 9572 CPLD auf. Die HP von Alternativ Pollin hatte da mal ein CPLD-Board (siehe den Beitrag "Pollin CPLD Board Erfahrungen?"). Hier gibts die teurere Variante davon: http://cgi.ebay.de/Xilinx-CPLD-Development-Board-IC-XC95144-Programmer-/330483212059?pt=Wissenschaftliche_Ger%C3%A4te&hash=item4cf2559f1b
> MaWin, wenn du den GALBlast erfunden hast, > welches Tool benutzt du denn, um GALs zu programmieren? Lattice isp Synario Starter von der Elrad PLD CD :-) http://www.latticesemi.com/corporate/newscenter/productnews/1997/r970909ispsynariostarters.cfm Es hat sich halt seit 10 Jahren nichts getan bei GALs, warum sollte man da umlernen, bzw. neu installieren. http://www.latticesemi.com/products/designsoftware/isplever/index.cfm?source=topnav Lattice Dianond kenn ich nicht, ispLever Starter kann keine GALs bleibt ispLever Classic. Keine Ahnung ob das kostenlos ist, hab den License-Link nicht weiter verfolgt. Aber das Netz vergisst ja nichts, sagt man.
Uwe Bonnes schrieb: > Wenn man mir programmierbarer Logik Schaltplaene > so malt, wie mit TTL, naemlich asynchron, dann faellt man ganz schnell > auf die Nase. Das gilt bei TTL-Gräbern genauso, nur fällt es manchmal nicht auf.
Echt, danke für eure Tipps! Ich habe gerade bei Reichelt geguckt. Im Angebot sind folgende Xilinx CPLDs: - XC9536XL (36 Macrocells) - XC9572XL (72 Macrocells) - XC95144XL (144 Macrocells) Wie viele Macrocells brauche ich für den Anfang? Ich finde ja den XC9572 ganz schön (Gibts auch in PLCC, also sockelbar!). Das Programmierkabel ist schnell gebaut, ich habe alles hier, auch den Parallelport-Stecker. Welche Entwicklungsumgebung brauche ich? ISE WebPack?
Valentin Buck schrieb: > Ich finde ja den XC9572 ganz schön (Gibts auch in PLCC, also > sockelbar!). Dann nimm den. Der hat immerhin schon 72 FFs. 8 mal mehr als das 16V8... ;-) > Welche Entwicklungsumgebung brauche ich? > ISE WebPack? Ja. Lass dir Zeit beim Download... Oder besser: nimm eine ältere Version. Die 9.2 ist recht stabil und noch relativ kompakt...
Ich habe gerade die CPLD-Seite von Ulrich Radig gefunden. Da gibt es ein echt gutes Tutorial und auch gleich einen Schaltplan für Programmer und Testboard, auch wenn ich das Testboard erstmal als Breadboard ausführen werde. ISE WebPack ist gleich fertig (3,2 GB über WLAN). Dann werde ich das mal ausprobieren! Mit freundlichen Grüßen, Valentin Buck
Gibt es eigentlich eine Bibliothek für die Xilinx 9500er für KiCad? Da drin habe ich schon mal ein paar Platinen gemacht, also wäre es ideal. Ich hatte vor eine rechteckige Platine zu machen, auf der der XC9572, ein NE555, ein Quarzoszillator, ein Umschalter und alle nötigen Kondensatoren sitzen. Dann kommen dann unten Stiftleisten dran, sodass ich das Board wie einen DIL-Chip benutzen kann. Mit freundlichen Grüßen, Valentin Buck
Achte aber darauf, daß du den Takt vom Quarzoszillator an einem der GCK-Pins anschliesst, da es sonst Probleme mit dem Routing bei synchronen Designs geben kann. Welchen CPLD du brauchst, kannst du leicht festellen: Einfach in ISE dein gewünschtes Projekt anlegen und ausprobieren, in welchen Chip es passt. Du kannst auch eine Simulation in ISE programmieren, oder per Waveform-Datei direkt stimulieren, sodaß du auch schon sehen kannst, ob es vielleicht läuft.
@Frank Buss: Danke! ISE ist echt cool. Würde man das alle auch bei AVR-Studio machen können.. Kann man eigentlich alle GCKs im Code verwenden, wenn man sie anschließt? Wofür sind eigentlich die GTS-Pins da? GSR ist doch Globaler Reset. Und warum gibt es VccINT und VCCIO? Ist das zweite nur die Versorgung der Treiberstufen? mit freundlichen Grüßen, Valentin Buck
Ich habe ein kleines Problem: Es gibt fast nirgendwo eine Bibliothek für einen XC9572 oder XC9536 in VQFP! Weder in Eagle (da gibts nur SQFP und PLCC) noch in KiCad (da gibts beide Chips gar nicht) habe ich was gefunden! In KiCad bin ich auch besser, also wenn jemand da was hätte, wäre es echt toll! Kann mir da jemand helfen? Mit freundlichen Grüßen, Valentin Buck
Valentin Buck schrieb: > Kann man eigentlich alle GCKs im Code verwenden, wenn man sie > anschließt? Gewöhn dir (insbesondere nach den obigen Anmerkungen zum Takt) einfach gleich mal an:
1 | Ein Design (insbesondere ein Anfängerdesign) hat genau 1 Takt, |
2 | der immer auf dieselbe Flanke aktiv ist. |
3 | Es gibt keinen (und schon gar keinen asynchronen) Reset. |
4 | Externe Signale werden über 2 Flipflops einsynchronisiert. |
5 | Jede Abweichung von diesen Regeln muß fundiert begründet werden können. |
Valentin Buck schrieb: > Ich habe ein kleines Problem: > Es gibt fast nirgendwo eine Bibliothek für einen XC9572 oder XC9536 in > VQFP! > Weder in Eagle (da gibts nur SQFP und PLCC) noch in KiCad (da gibts > beide Chips gar nicht) habe ich was gefunden! > In KiCad bin ich auch besser, also wenn jemand da was hätte, wäre es > echt toll! > Kann mir da jemand helfen? Machs doch einfach selber. Das Stichwort dazu heißt: LERNEN... :-/
Valentin Buck schrieb: > Kann man eigentlich alle GCKs im Code verwenden, wenn man sie > anschließt? > > Wofür sind eigentlich die GTS-Pins da? > GSR ist doch Globaler Reset. Die Pins können generell als IO verwendet werden, machen es dem Fitter aber einfacher, wenn man sie für die vorgesehene Funktion verwendet, statt andere Pins: http://forums.xilinx.com/t5/CPLDs/WHat-is-GCK-amp-GTS-amp-GSR-pins-role/m-p/6000 > Und warum gibt es VccINT und VCCIO? > Ist das zweite nur die Versorgung der Treiberstufen? Ja. Laut Datenblatt allerdings nur verwendbar für 3,3V und 2,5V, aber die die Eingänge vertragen auch 5V.
Witzig. Die gleichen Leite die behaupten CPLD's seien tot, sind auch die ersten die rumschreien, dass ein FPGA für den Job XY viel zu oversized ist :)
Ich konnte jetzt ums selber designen herumkommen, da ich eine Ulrich-Radig-Platine von einem Freund bekommen habe. Trotzdem hatte ich ein Modell für KiCad gemacht. Wer will, kann es benutzen! Das Basteln macht echt Spaß und VHDL ist klasse. Mit freundlichen Grüßen, Valentin Buck
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.