Zum Gruße, Ich habe µC-Erfahrung mit Motorola 78HC705 und 8081 (Assembler) Nach einigen Jahren Pause experimentiere ich zur Zeit mit einem Arduino ATMEGA. Ich möchte zusätzlich aus purem Interesse lernen, einen CPLD zu benutzen und evtl damit ein Projekt umsetzten (da schwebt mir so einiges vor) Ich habe nach Arduino-ähnlichen Dev_Boards gesucht und es gibt da die verschiedensten Ausführungen, z.B. http://www.elecfreaks.com/store/max-ii-epm240-cpld-breakout-p-133.html oder http://www.elektrohobby.de/Bausaetze/XILINX-Development-Board-Bausatz.html und daraus erwachsende Fragen: 1) Ist es (generell betrachtet) besser auf XILINX zu gehen als auf Altera (oder umgekehrt)? Irgendwelche technischen Gründe? 2) Die neueren CPLD (wie MAXII von Altera) scheint es nur als TQFP- oder BGA-Ausführung zu geben. Das scheint mir zum Basteln ziemlich ungünstig. Gibt es hier Erfahrungen, etwa - wie kann man im Bastelbereich günstig mit CPLD umgehen, lassen sich TQFP Typen irgendwie einsetzen (eine Laborkarte und darüber adaptieren?) 3) Wenn das Dev_Board keine Programmierschnittstelle im erweiterten Sinnen aufweist ausser natürlich der JTAG_Schnittstelle, also USB Blaster oder Parallel-Schnittstelle (ByteBlaster)muss ich mir einen solchen zukaufen, was recht teuer zu sein scheint. Gibt es Alternativen? U.a. für die AVM µC gibt es kleine Breakouts, die "USB zu SPI" wandeln, da fehlt noch der Programmer an sich. 3.1) Theroetisch kann man so eine Programmierschnittstelle "USB zu JTAG" selber bauen, aber es muss irgendwo eine Beschreibung geben, worauf es ankommt (Timing der Signale, Auslegung/Bedeutung der Pins) Die Schwierigkeit ist, dass die verschiedenen Programmer anscheinend nur für bestimmte Controller/PLD/PGA-Typen geeignet zu sein scheinen! 3.2) Was also ist das Besondere am USB-Blaster? (Der Byteblaster in der HW ist quasi nix anderes als ein Anschluss über den Parallelport via 74LS244 an JTAG) 3.3)Käme der QUARTUS Programmer (für Altera) oder die ISE (für Xilinx) mit einem selbstgestrickten USB-Progammer klar? 3.4) Das XILINX-Bastelbord hat eine Parallelschnittstelle.. ist das heute noch günstig so zu arbeiten, zumal es (fast) keine Rechner mehr mit Parallelport gibt. (ich besitze durchaus noch so Gurken :) ) Viele Fragen (ich hoffe einigermassen sinnvoll gestellt) auf deren Antworten ich mir hoffe einen Reim machen können :) Sprich, ich weiss - welchen Typ/Hersteller vorzugsweise - wie programmieren/Programmer - wie kann man diese Bausteine im Bastlerleben technisch einsetzen (Anschliessen, Löten, Stecken) wenn sie NICHT auf einem Dev_Board daher kommen Vielen Dank für eure Geduld beim Lesen und beim Antworten LG Martin
Martin H. schrieb: > einen CPLD zu benutzen CPLDs sind tot. Lern lieber gleich was mit FPGAs. Sogar Lattice verkauft seine aktuellen FPGAs als CPLDs (um die Hemmschwelle für den Umstieg niedrig zu halten)... > evtl damit ein Projekt umsetzten (da schwebt mir so einiges vor) Das Problem an CPLDs ist, das die kaum Flipflops haben. Und die brauchst du für Statemachines und Zähler (eigentlich auch nur eine degenerierte FSM...). Du wirst also sehr schnell an Grenzen stoßen, oder nur einfachste Projekte realisieren können. > 1) Ist es (generell betrachtet) besser auf XILINX zu gehen als auf > Altera (oder umgekehrt)? Ja. Oder doch Nein. Es ist egal. Beide können das. > 3.3)Käme der QUARTUS Programmer (für Altera) oder die ISE (für Xilinx) > mit einem selbstgestrickten USB-Progammer klar? In der Bucht kosten kompatible Nachbauten gerade mal 20 €. Und dann weißt du, dass das Ding tut. Sei dir sicher: du WILLST eigentlich gar kein Programmierkabel bauen, sondern was mit FPGAs/CPLDs machen. Mein Tipp: kauf ein FPGA-Evalboard für 100€ und verkauf es später wieder für 80. Die Dinger verlieren kaum an Wert. Sowas z.B. http://shop.trenz-electronic.de/catalog/product_info.php?cPath=&products_id=963&SID
Hi Lothar , erst mal vielen Dank für Deine Antwort Für Schnell-Leser: 1) wer verkauft ein gebrauchtes CPLD oder FPGA Eval board? zu einem vernünftigen Preis (unter 100€) ggf sogar mit Programmer In diesem Zusammenhang bin ich Hardware-Betont!!! Lieber klein und knuffig und alle Ein- und Ausgänge sind erreichbar anstelle eines halben PC's mit Tastatur- und Monitoranschluss 2) Ich gehe auch noch selbst auf die Suche, frage aber trotzdem: Gibt es (hier bei microcontroller.net) oder sonst wo eine relativ zentrale Stelle (vllt "die bucht") wie Leute wie "wir" solche Boards gebraucht verkaufen (ich so eines also erstehen kann) Hier gehts weiter: Lothar Miller schrieb: >> einen CPLD zu benutzen > CPLDs sind tot. Lern lieber gleich was mit FPGAs. Sogar Lattice verkauft > seine aktuellen FPGAs als CPLDs (um die Hemmschwelle für den Umstieg > niedrig zu halten)... Meines Wissens nach gibt es einen essentiellen Unterschied zwischen FPGA und CPLD, wewegen letzere immer noch für zeitkritische (und kleinere) Anqwendungen verwendet werden: Die Signallauftzeit ist berechenbar, während beim FPGA bei der Kompilierung (soviel zu meinem theoretischen Wissen)jedes mal unterschiedlich Anzahlen an Gattern (oder was auch immer) zusammengesetzt werden undd deswegen die Laufzeiten nicht vorhersehbar sind. 3a) Ist dieser Umstand nicht mehr aktuell? 3b) für CPLD kann man durchaus noch "Funktionspläne" im Editor sehen (kleine Einblicke hatte ich ja, und diese mit der VHDL vergleichen, geht das für FPGS auch noch? >> 3.3)Käme der QUARTUS Programmer (für Altera) oder die ISE (für Xilinx) >> mit einem selbstgestrickten USB-Progammer klar? > In der Bucht kosten kompatible Nachbauten gerade mal 20 €. > Sei dir sicher: du WILLST eigentlich gar kein Programmierkabel bauen, > sondern was mit FPGAs/CPLDs machen. :) danke.. das habe ich nachher auch gesehen und obwohl ich geschworen habe fern im Osten nichts zu kaufen, wird diese Vorsatz hier wohl umgestossen. > Mein Tipp: kauf ein FPGA-Evalboard für 100€ und verkauf es später wieder > für 80. Die Dinger verlieren kaum an Wert. Danke für den Tip. Mein Problem: Meine Studienzeit ist lange vorbei und ich kann keine akademisch verbilligten Dinge mehr einkaufen. Muss mich also selber auf die Suche nach einem Wiederverkauf eines solchen Boards machen. GLG Martin
Martin H. schrieb: > 3a) Ist dieser Umstand nicht mehr aktuell? > 3b) für CPLD kann man durchaus noch "Funktionspläne" im Editor sehen > (kleine Einblicke hatte ich ja, und diese mit der VHDL vergleichen, > geht das für FPGS auch noch? Ja, aber das ist etwas in die Richtung Sackgasse/Holzweg... Die Schaltplaneingabe wird von keinem Hersteller mehr richtig aktiv unterstützt. Solange sie läuft hast du Glück. Wenn nicht mehr: Pech. Wenn du schon was neu lernst, dann am besten doch etwas, was du auch in 5 Jahren noch verwenden kannst, oder? > Meines Wissens nach gibt es einen essentiellen Unterschied zwischen FPGA > und CPLD, wewegen letzere immer noch für zeitkritische (und kleinere) > Anqwendungen verwendet werden: Du kannst (und solltest) auch in FPGAs der Toolchain deine Wünsche zum Thema Geschwindigkeit mitteilen. Und die versucht die dann auch umzusetzen. Und wie gesagt: die Geschwindigkeiten heutige CPLDs werden auch nur idealisiert angegeben: Eingang --> Produktterm --> Ausgang Sobald du mehr machst, stimmt das auch schon nicht mehr, dann kommen 2 Produktterme nacheinander, dazu das Routing und schon stimmt diese Idealangabe nicht mehr... > In diesem Zusammenhang bin ich Hardware-Betont!!! > Lieber klein und knuffig und alle Ein- und Ausgänge sind erreichbar > anstelle eines halben PC's mit Tastatur- und Monitoranschluss Nimm lieber ein Board, das die üblichen Schnittstellen zum Lernen schon drauf hat. Denn nichts ist blöder, als 3 Nächte einen Fehler zu suchen, und dann einen abgebrochenen Draht oder einen vertauschten Pin zu finden... Ja, such dein Board Martin H. schrieb: > Gibt es (hier bei microcontroller.net) Probiers im Markt-Forum mit einer Such-Anzeige > oder sonst wo eine relativ zentrale Stelle (vllt "die bucht") Dort ist deine Chance am besten, denn es ist einfach so, dass FPGAs weniger weit verbreitet sind als uCs... ;-)
> Meines Wissens nach gibt es einen essentiellen Unterschied zwischen FPGA > und CPLD, Ja, beim (C)PLD gibt es eine Macrozelle, mit vielen Produkttermen und breiter Eing-Matrix (bsp 54 bei 95..XL) usw. beim FPGA ist das kleinste Element (LE,CLB usw) viel kleiner. Eine Macrozelle ist viel mächtiger, um die im FPGA nachzubilden bräuchte man dort mehrere LE's. Die Angabe mancher FPGA-Hersteller, das damit 'so und so viele' MACrozellen ersetzt werden können ist Marketing-Quatsch. Es kommt immer auf den konkr Fall an (In manchen Fällen brauchte man 20 und mehr LEs für 1 MACzelle) . Um sehr schnelle IOs, schnelle breite Kombinatorik, schnelle Zähler, zu realisieren sind PLDs immer noch unschlagbar. Allerdings steigt bei (C)PLDs wegen der MACrozellen der Aufand quadratisch mit der MAC-Anzahl, weshalb diese Dinger bei grössere MAC-Anzahl extrem teuer werden können, und deshalb auch immer weniger benutzt werden. Zum Einstieg würde ich mir auf jeden Fall PLDs, dann CPLDs anguggen, erst dann FPGAs. (Man muss auch kein Board kaufen, um ein kleines CPLD zu benutzen)
Wenns ein CPLD sein soll zum Lernen, habe ich auch gemacht. Kannst dich bei meinem Projekt gerne mit dranhängen : http://home.arcor.de/markus.horbach/atmegaextender.html Brauchst das Board nur Nachbauen und einen Xilinx Programmer, die Projektdaten + Bibliotheken gibts bei mir kostenlos auf der Webseite. Ist für kleines Geld möglich, da habe ich beim Design darauf geachtet. Interesse ? Gruß, dasrotemopped.
Ich habe noch folgendes Board abzugeben: http://www.digilentinc.com/Products/Detail.cfm?Prod=S3BOARD Es ist so gut wie nie benutzt worden, da ich schnell auf ein anderes Board gewechselt bin. (Ich habe DSP Slices gebraucht...) Verbaut ist der kleine FPGA (200K). Aber für den Anfänger ist das Board klasse. Falls du Interesse hast kannste ja noch mal schreiben (borism(at)gmx.de). Zum programmieren liegt das Parallel-Kabel (wie auch das ganze andere Zubehör) bei. Ich habe aber ein Platform Cable USB II benutzt weil wir genug auf der Arbeit von denen haben. PS: Die nächsten Tage bin ich auf der Embedded und kann erst am Donnerstag Abend meine Emails abrufen.
MCUA schrieb: > Zum Einstieg würde ich mir auf jeden Fall PLDs, dann CPLDs anguggen, > erst dann FPGAs. Die PLDs (PAL/GAL) kannst du locker auslassen, weil du nämlich einen spezeillen oder universellen Programmer dafür bräuchtest. Und weil sogar Lattice seine GALs abgekündigt hat... Und um den Kollegen aus dem Beitrag "Re: VHDL: "einfach" Signalerzeugung" zu zitieren, der versucht gerade einen etwas breiteren Zähler in sein Design zu bringen, >>> ohne das das meinen CPLD sprengt? <<< Am Rande: ich habe erst "mit GALs" rumgemacht, und bin dann nach ein paar Jahren Abstinenz direkt auf FPGAs. Mann, war das ein Lichtblick! So viele Flipflops... ;-)
Machs gleich mit FPGAs. Die "Programmierung" ist die gleiche. Viel mehr Möglichkeiten durch BRAMs Clockmanager etc. CPLDs sind zudem sogar noch teuerer und können einfach weniger. Ich mache jetzt schon so 2-3 Jahre mit FPGAs rum. Ich bin erst einmal wirklich bis auf FlipFlop Ebene runter gegangen. Und das war ein Zeitkritisches Design bei dem eine Datenübertragung zwischen zwei FPGAs mit 100MHz Takt erfolgen musste. Sicher kein Anfängerprojekt. Das RTL-Bild sieht doch bei FPGAs und CPLDs quasi gleich aus. Das Ziel von VHDL ist ja auch gerade von der Gatterdarstellung weg zu kommen (Stichwort productivity gap). Es ist also in meinen Augen nicht wirklich Zweckmäßig mit einem CPLD anzufangen, weil man meint da die umgesetzten Strukturen besser erkennen zu können. Zum Thema CPLDs gibt es übrigens von Ulrich Radig einige gut dokumentierte Projekte, die natürlich auch auf einem FPGA laufen. Es gibt übrigens auch ein paar FPGAs mit Flash-Speicher falls du mal selbst etwas bauen willst und vor der Tatsache zurückschreckst das FPGAs i.d.R. einen externen Speicher für die Konfiguration benötigen.
...bisher fehlen allerdings noch etwas die "Randbedingungen". Die Aussage "ein FPGA ist immer besser!" würde ich so nicht unterschreiben wollen. Wie immer "kommt darauf an" Bei meinem "8086 from scratch" Projekt setze ich einen XC9572 ein: Hier geht es nur um die Ersetzung von TTL-Gräbern, Adressdekodierer und anderen "Kleinkram".(...und das alles mit 5V) Einfach in eine PLCC Fassung und ab aufs Lochraster. Gut: die Kosten für einen 9572 sind nicht ohne und Nachbausicherheit gibt es auch nicht. Wenn Du allerdings 3,3V auch als Peripherie hast und nicht nur ein Logikgattergrab brauchst: Ganz klar der FPGA. PS: Gibt es sowas wie die XC95xx(XL)-Reihe auch als FPGA? (3,3V / 5V tolerante I/Os, kostenlose IDE, kein Konfigurationseprom) Ziel ist es die direkte Peripherie um den 8086 im FPGA nachzubilden. (Bustreiber, Buscontroller, Clock, ...,PIC)
@ MirkoB (Gast) >Gibt es sowas wie die XC95xx(XL)-Reihe auch als FPGA? In 3,3V schon, 5V no way. >(3,3V / 5V tolerante I/Os, 5V Toleranz kann man heute vergessen, gibt es direkt nicht mehr. >kostenlose IDE, Haben alle, A, X & Co > kein Konfigurationseprom) haben einige, z.B. Spartan 3N, ist im IC mit drin. >Ziel ist es die direkte Peripherie um den 8086 im FPGA nachzubilden. >(Bustreiber, Buscontroller, Clock, ...,PIC) Wird man mit einem FPGA + Pegelwandler machen müssen, gibt es ja mehrkanalig von Maxim & Co (Ok, dann nicht wirklich Lochrasterfreundlich, weil SOIC oder SSOP und schlimmere Gehäuse.). Also gleich alles ins FPGA, auch die CPU, muss man weniger Fädeldraht löten ;-)
Falk Brunner schrieb: >> kein Konfigurationseprom) > haben einige, z.B. Spartan 3N, ist im IC mit drin. Hier unbedingt auch mit in Betracht ziehen: Lattice MachXO(2) Bei dem ist die Spannungsversorgung hübsch einfach...
Hallo, ich habe mich vor kurzem im Rahmen einer Vorlesung mit FPGAs beschäftigt. Den praktischen Teil haben wir am DE0 Nano Board von Altera gemacht. Das Board finde ich super praktisch. USB Programmer ist dabei und auch ein sehr gutest Tutorial um einzusteigen. Auf dem Board ist ein Cyclone IV, zwei Taster, Dip-Switches und mehrere LEDs. Wie gesagt für den Einsteig ist es m.M. sehr gut. Grüße Kevin
Martin H. schrieb: > Ist es (generell betrachtet) besser... Es ist jedenfalls besser, solche Beiträge wie die von Lothar Miller nicht allzu ernst zu nehmen. Die Frage, die du dir selber stellen mußt, lautet: Was will ich damit eigentlich bauen? Irgendein Eval-Board für CPLD's halte ich für Quatsch. So ein CPLD setzt man auf die Platte, die man sich selbst kreiert hat und die einen bestimmten Zweck erfüllen soll. Im Übrigen ist es gar nicht so schwer, mit CPLD's klarzukommen - im Gegensatz zu FPGA's. Bei FPGA's war und ist es mit wenigen Ausnahnem üblich, daß man dazu entweder einen separaten Konfigurations-Flashrom braucht oder die Dinger aus enem uC heraus initialisieren muß. Bei CPLD's gibt's das nicht, die brauchen nur ihre JTAG-Anschlüsse an einen Steckverbinder, werden darüber programmiert und sind ab da benutzbar ohne irgendwelche Umstände. Sachlich gibt's gewaltige Unterschiede zwischen CPLD und FPGA. CPLD's haben Makrozellen, die am Eingang hochpolige AND's haben. Mehr als 30 AND-Eingänge sind üblich. Bei FPGA's gibt es das nicht, da gibt es sogen. LUT's, die aber nur rcht wenige Eingänge haben und bei Bedarf kaskadiert werden müssen. Mit CPLD's kann man deshalb viel besser große synchrone und schnelle Zähler bauen als mit FPGA's. Bei Anwendungen, wo das ne Rolle spielt, sind deshalb eher CPLD's angesagt. Auf der anderen Seite sind größere CPLD's recht schnell teurer als vergleichbare FPGA's. Sowas muß man dann abwägen. Hersteller: Ich würd erstmal zu Xilinx raten, von denen erstmal ein kleineres CPLD aus der 95er Reihe oder aus der Collrunner-Reihe aussuchen und nicht die allerneueste Software haben wollen, sondern z.B. auf Webpsck 8.2 o.ä. zurückgreifen. Reicht für CPLD's aus und ist noch nicht so extrem umfänglich. Zum Programmieren geht immer noch ein simples Parallelkabel Nr.3, was eigentlich nur ein simpler Bustreiber am Druckerport ist. Kann man notfalls per Lochrasterplatte basteln, kostet also nix. Bei Altera gibt/gab es den Byteblaster, was auch bloß ein Bustreiber am Druckerport war/ist. Aber bei Altera gibt es im Gegensatz zu Xilinx immer wieder dieses ganze Keyfile-Gerappel. Die Software geht nur 1 Jahr lang mit passendem Keyfile. Beim Webpack von Xilinx hat man diese Umstände nicht. Tja, und hier ein paar Vorschläge: - Frontend für einen Frequenzzähler - Bildschirm-Steuerung für eines der Grafik-Displays von Pollin - ein selbstgebautes DDS - Seriell zu Parallel Wandler mit Busanschluß für 24 Bit Audio-ADC's - SD-Karten Interface usw. W.S.
@ W.S. (Gast) >Es ist jedenfalls besser, solche Beiträge wie die von Lothar Miller >nicht allzu ernst zu nehmen. jain. Es ist eine Meinung von vielen. Nicht mehr, nicht weniger. >eigentlich bauen? Irgendein Eval-Board für CPLD's halte ich für Quatsch. Ich nicht. Denn das Ding ist fertig und getestet, man kann sofort mit dem Programmieren loslegen. >So ein CPLD setzt man auf die Platte, die man sich selbst kreiert hat >und die einen bestimmten Zweck erfüllen soll. Nö, das ist deine eingeschränkte Sichtweise. >Im Übrigen ist es gar nicht so schwer, mit CPLD's klarzukommen - im Hat keiner behauptet. >Gegensatz zu FPGA's. Bei FPGA's war und ist es mit wenigen Ausnahnem >üblich, daß man dazu entweder einen separaten Konfigurations-Flashrom >braucht oder die Dinger aus enem uC heraus initialisieren muß. Ist auf dem Eval-Board alles fix und fertig, braucht man auch nur den JTAG anstecken. >Steckverbinder, werden darüber programmiert und sind ab da benutzbar >ohne irgendwelche Umstände. Dito FPGAs. >sogen. LUT's, die aber nur rcht wenige Eingänge haben und bei Bedarf >kaskadiert werden müssen. Ja, aber darum muss man sich erstmal nicht kümmern, das macht so oder so der Compiler. >Mit CPLD's kann man deshalb viel besser große synchrone und schnelle >Zähler bauen als mit FPGA's. Unsinn. FPGAs haben zwar deutlich kleinere LUTs, dafür aber deutlich mehr und leistungsfähigere Speziallogik, wie Carry Chains, MUXe etc. Mach mal einen 32 Bit Zähler in einem FPGA und CPLD und vergleiche. > Bei Anwendungen, wo das ne Rolle spielt, >sind deshalb eher CPLD's angesagt. Nö. > Auf der anderen Seite sind größere >CPLD's recht schnell teurer als vergleichbare FPGA's. CPLDs sind mit FPGAs gar nicht vergleichbar. Das kleinste heute noch sinnvoll verfügbare FPGA hat 10x mehr Logikresouren als der größte CPLD. HuH! CPLDs sind relativ pro Logikztelle deutlich teurer als FPGAs, aber absolut billiger, weil man halt nicht immer tonnenweise Logik braucht. CPLDs sind für den Einstig schon OK, man kann damit viele schöne Sachen machen. Und der Logikentwurf ist praktisch gleich. Die Feinheiten spielen am Anfang keine Rolle. MfG Falk
Falk Brunner schrieb: > @ W.S. (Gast) >> Es ist jedenfalls besser, solche Beiträge wie die von Lothar Miller >> nicht allzu ernst zu nehmen. > jain. Es ist eine Meinung von vielen. Nicht mehr, nicht weniger. Klar ist das nur eine Meinung, meine eben... ;-) Wer unbedingt mit CPLDs anfangen will, der darf das von mir aus ruhig und gern machen. Allerdings habe ich hier schon viele erlebt, die enttäuscht waren, weil sich nicht mal "so ein kleines Design" auf ihr CPLD bekommen haben... Und da ist eben schon mit einem kleinen UART Schluss: http://www.lothar-miller.de/s9y/categories/49-RS232-IO Und dann gilt, was Falk Brunner schrieb: > CPLDs sind mit FPGAs gar nicht vergleichbar. Das kleinste heute noch > sinnvoll verfügbare FPGA hat 10x mehr Logikresouren als der größte CPLD. W.S. schrieb: > Im Übrigen ist es gar nicht so schwer, mit CPLD's klarzukommen - im > Gegensatz zu FPGA's. Bei FPGA's war und ist es mit wenigen Ausnahnem > üblich, daß man dazu entweder einen separaten Konfigurations-Flashrom > braucht oder die Dinger aus enem uC heraus initialisieren muß. Am Anfang stand doch die Frage nach dem EVAL-Board. Dort ist das Zeug schon drauf... Und später kann man kann ja genau diese ICs mit dem internen Flash nehmen. Was spricht dagegen? Und wie schon gesagt: Lattice verkauft mit MachXO, MachXO2 sowie iCE40 FPGAs mit CPLD-Look-and-Feel, und sogar Lattice entwickelt "richtige" CPLDs m.W. nicht aktiv weiter. Das sollte zu denken geben...
@Lothar Miller (lkmiller) Benutzerseite >Und wie schon gesagt: Lattice verkauft mit MachXO, MachXO2 sowie iCE40 >FPGAs mit CPLD-Look-and-Feel, Vielleicht sind die so schlecht und klein wie CPLDs duckundwech >und sogar Lattice entwickelt "richtige" >CPLDs m.W. nicht aktiv weiter. Das sollte zu denken geben... Sicher, es ist der Lauf der Dinge, genauso wie PALs und GALs schon lange weg vom Fenster sind. Klar, CPLDs werden das in nicht allzulanger Zeit auch sein, vielleicht in 5 Jahren. Aber dennoch werden sie sich in kleinen Nischen noch ne Weile halten, wenn gleich das für Hersteller keine Sekunde attraktiv ist. Die Nachfrage nach Logikresourcen steigt ständig, auch am unteren Rand. MFG Falk
Falk Brunner schrieb: > Vielleicht sind die so schlecht und klein wie CPLDs Kann ich so nicht ganz bestätigen... ;-) Tatsächlich sind das ganz schnuckelige Dinger, die dem Anwender z.B. auch ihren internen RC_Oszillator zur Verfügung stellen. Mit Autobaud lässt sich da sogar eine serielle Schnitte betreiben.
@All, erstmal überschütte ich euch mit einer Tonne Dank für eine so informative und kontroverse Diskussion zum Thema CPLD und FPGA. Mit Blick auf die Beiträge von Markus und Boris: Langfristig gehe ich beides an, ich habe ewig keine Leiterplatten mehr geätzt, ich denke aber, es findet sich ein preiswerter Lieferant für Markus' PCB-Design. Kurzfristig werde ich mich mal mit Boris unterhalten Etwas zum Thema und meinen Absichten: 1) a) Tatsächlich habe ich mich auf CPLD konzentiert, weil diese die Configware auf dem Chip speichern und kein externes Flash brauchen. Wenn FPGA's das heute auch können steht dem FPGA nichts im Wege. b) Gibts CPLD's noch als PLCC bauform und damit kann ich basteln Ob das für FPGA's zutrifft muss ich recherchieren Hierzu eine Frage: Gibt es bei Reichelt & Co evtl. Experimentierplatinen, die das Footprint verschiedener SMD Typen aufweisen, so dass mir das Herstellen einer eigenen Leiterplatte für den Chip (ertsmal) erspart bleibt? 2) Ein DevKit deswegen, weil ich genau das, was Markus Horbach getan hat (noch) nicht leisten kann. Siehe Punkt 3) Das Board soll mir die Möglichkeit geben, die Configware zu entwickeln, um sie später in einem Projekt einzusetzen. Ähnlich mache ich das (vorerst) mit dem Arduino, den ich erst als Entwicklungsplattform und dann als Programer benutzen möchte (isp ist hier nicht das ziel) 3) Mein "Projekt" heisst: lerne den Umgang mit CPLD/FPGA mit Blick auf isp und VHDL In diesem Thread sind viele Tips und Ideen aufgeführt worden, ich finde garantiert was. Da ich mit dem ATMEGA "rumspiele" ist wieder Markus' Projekt sehr interessant. 4) Mein derzeitiges Projekt benötigt keine CPLD/FPGA, wenn es durch ist geht das Lernprojekt los. Eine Gruppe via Thyristor schaltbarer Steckdosen, die per USB->Seriell->Atmega einzeln zu- und weggeschaltet werden können. Das Design sieht vor, dass ein PlugPC (DLNA-Server) mein TV pingt und wenn das TV - Gerät einschaltet, ans Netz geht und sichtbar ist, schaltet der PlugPC meine Medien-Festplatten an und bindet sie ein. Geht das TV aus, schaltet der PlugPC die Festplatten wieder komplett von Stromnetz (die Netzteile ziehen auch keinen Strom mehr) Das ist beliebig erweiterbar, zum Beispiel könnte ein Anforderung von einem anderen PC eine bestimmte Festplatte aufrufen, vorausgesetzt die Anlaufzeit wird kein Problem und man kann aus dem Request heraus die Festplatte identifizieren.. aber das gehört hier nicht hin.. Wenn ich den ACPlugSwitch weiterdenke, möchte ich den mit einer Ethernet-Schnittstelle versehen und ein spezifisches Netzwerk um Haus aufziehen. Ziel ist, zentral an verschiedenen Punkten im Haus Steckdosen zu- und abzuschalten etc pp. Kommt eine RTC hinzu, dann auch zeitgesteuert usw usw. Gibt es schon alles professionell, aber nicht in meinem Kopf :) Der Weg ist das Ziel und die Freude wenn's funktioniert! GLG Martin
Martin H. schrieb: > Hierzu eine Frage: > Gibt es bei Reichelt & Co evtl. Experimentierplatinen, die das Footprint > verschiedener SMD Typen aufweisen, so dass mir das Herstellen einer > eigenen Leiterplatte für den Chip (ertsmal) erspart bleibt? Bei Pollin gibts/gabs da das, was du suchst. Einfach mal hier im Forum nach Pollin und CPLD suchen... http://www.pollin.de/shop/dt/MTM5OTgxOTk-/Bausaetze_Module/Bausaetze/Bausatz_CPLD_Evaluation_Board.html Und: kauf dir dazu gleich noch eine PCI-LPT-Steckkarte für den Rechner... ;-) Pech, wenn du einen Laptop ohne Parallelport hast. Martin H. schrieb: > Gibts CPLD's noch als PLCC bauform und damit kann ich basteln > Ob das für FPGA's zutrifft muss ich recherchieren Spar dir die Recherche. Gibts nicht.
Lothar Miller schrieb: > Tatsächlich sind das ganz schnuckelige Dinger, die dem Anwender z.B. > auch ihren internen RC_Oszillator zur Verfügung stellen. Das gibt es auch bei den grösseren Lattice FPGAs, ist da nur etwas versteckt. Das einzig neue dabei im MachXO2 ist, dass der Oscillator einen Standbymode bekommen hat. Hat aber auch noch ein paar andere Goodies, z.B. Userflash. Oder dass er alternativ über I2C statt JTAG programmiert werden kann. Falk Brunner schrieb: > Aber dennoch werden sie sich in > kleinen Nischen noch ne Weile halten, Ganz sicher sogar. Als Programmierblock in anderen Bauteilen sogar mehr als nur eine Weile. Siehe z.B Cypress PSOC5 oder Lattice Platform und Power Manager Reihe. Ausserdem sollte man nicht vergessen, das FPGAs im Gegensatz zu CPLDs in der Regel erst geladen werden müssen, auch solche mit internen Flash. Aber es gibt Ausnahmen, siehe z.B. Microsemi(Actel) IGLOO Nano.
Hi Martin, wie der Zufall so will habe ich mehr als eine Platine von meinem Projekt geätzt. Sie muss nur noch durchkontaktiert und bestückt werden. Auch da habe ich noch Material auf Lager. Wenn du Lust auf ne Schnelleinführung CPLD hast und in NRW vorbeikommen kannst, lass es mich wissen. Musst mir nur die Materialkosten ersetzen ... Gruß, dasrotemopped.
Lattice User schrieb: > Ausserdem sollte man nicht vergessen, das FPGAs im Gegensatz zu CPLDs in > der Regel erst geladen werden müssen, auch solche mit internen Flash. Man sollte aber auch beachten, dass alle aktuellen CPLDs ebenfalls geladen werden. Nur ist dieser Ladevorgang nicht seriell, sondern parallel und daher blitzschnell beendet. Aber von der inneren Struktur her sind auch die Schalter in CPLDs (wie bei FPGAs) SRAM-basiert...
Falls du ein eher kleines Board suchst hätte ich auch noch etwas hier. Xilinx Coolrunner2 XC2C64A in BGA auf einer kleinen Platine. Macht wahlweise 3V3 oder 1V8 IO. 30 IOs sind rausgeführt, ist halt ein recht kleiner CPLD (etwa so groß wie der von Markus Horbach). Also wenn du Interesse hast, meld dich einfach. Bräuchtest noch nen Programmer dazu (gibts bei ebay für wenig Gelf in LPT ausführung). Ich hänge mal ein Bild an. Auf der anderen Seite würde ich zum Einsteigen ein FPGA Board nehmen, und dabei würde ich nicht sparen, 150 Euro oder so für das Spartan3 Kit sind gut angelegt.
Lothar Miller schrieb: > Man sollte aber auch beachten, dass alle aktuellen CPLDs ebenfalls > geladen werden. Nur ist dieser Ladevorgang nicht seriell, sondern > parallel und daher blitzschnell beendet. Aber von der inneren Struktur > her sind auch die Schalter in CPLDs (wie bei FPGAs) SRAM-basiert... Das trifft z.B. auf Altera nicht zu. Die älteren MAX 3000, MAX 7000 haben EEProm Zellen die direkt auf die Logik gehen, und die neueren MAX II, MAX V sind das Altera Pedant zu den MachXO/XO2 also eigentlich FPGAs. Wobei natürlich die Bezeichnung CPLD nicht wirklich falsch ist.
Lattice User schrieb: > Die älteren MAX 3000 Diese Designs finden ihren Ursprung ja auch im letzten Jahrtausend... ;-) Lothar Miller schrieb: > dass alle aktuellen CPLDs Und schon die Nachfolger MAX II sind SRAM-Devices mit einem Bootflash:
1 | ... the flash memory block is located on the bottom-left area of the |
2 | device. The majority of this flash memory storage is partitioned as the |
3 | dedicated configuration flash memory (CFM) block. The CFM block provides |
4 | the non-volatile storage for all of the SRAM configuration information. |
Lothar Miller schrieb: > Und schon die Nachfolger MAX II sind SRAM-Devices mit einem Bootflash: Und wenn du dir das Ding anschaust, mit einer FPGA LUT4 Architektur. Also kein CPLD im Sinne dieser Diskussion.
> Und schon die Nachfolger MAX II sind SRAM-Devices mit einem Bootflash: >
1 | > ... the flash memory block is located on the bottom-left area of the |
2 | > device. The majority of this flash memory storage is partitioned as the |
3 | > dedicated configuration flash memory (CFM) block. The CFM block provides |
4 | > the non-volatile storage for all of the SRAM configuration information. |
5 | > |
Da kann man mal sehen wie schwammig die Definition für ein CPLD ist. Zurückgreifend auf meine urpsrüngliche Argumentation (weil ich das iwi nicht so recht hmmm.. verstehen kann, dass die beiden Varianten 1:1 vergleichbar sind) nochmal die Frage: Mir gegenüber wurde noch 2010 die Aussage getroffen, dass bei CPLDs die Signallaufzeit berechenbar sei, was bei FPGAs so einfach nicht ginge .. und jetzt kommts: Weil der Compiler aus VHDL bei jedem compile vorgang die kleinsten Einheiten anders gruppiert und nicht zuverlassig gesagt werden kann, dass bei jedem Vorgang immer die gleiche Anzahl Einheiten innerhalb eines Signalweges je Vorgang zustande kommt (und damit also auch die Signallaufzeit variiert) Meines Wissen nach wurden Xilinx FPGA und Lattice CPLD verwendet. Es gab aber noch einen wesentlichen Unterschied im Design, der mir auffiel, die FPGA wurden für komplexe Herausforderungen eingesetzt, während CPLDs die üblichen TTL-Gräber ersetzten. Ist da was dran (es muss doch einen Grund geben warum Kollegen immer noch auf CPLD zurückgreifen, wenn die sich von kleinen FPGA einfach ersetzen lassen, so auch mehrfach in diesem Thread hervorgehoben, dass sich beides nicht so einfach über einen Kamm scheren ließe) LG Martin
Martin H. schrieb: > Weil der Compiler aus VHDL bei jedem compile vorgang die kleinsten > Einheiten anders gruppiert und nicht zuverlassig gesagt werden kann, > dass bei jedem Vorgang immer die gleiche Anzahl Einheiten innerhalb > eines Signalweges je Vorgang zustande kommt (und damit also auch die > Signallaufzeit variiert) Naja, ganz soooo schlimm ist das nicht. Und man kann der Toolchain durchaus sagen, welche Geschwindigkeit mal will. Genauso, wie man sagen kann, an welchem Pin man welches Signal will. Diese Einschränkungen/Vorgaben für die Toolchain nennen sich Constraints. Martin H. schrieb: > es muss doch einen Grund geben warum Kollegen immer noch auf CPLD > zurückgreifen Wer immer CPLDs gemacht hat, macht auch dann CPLDs, wenn es doppelt so teuer ist. Solange da keiner ehrlich nachrechnet... Martin H. schrieb: > Lattice CPLD Welche? Siehe die Screenshots im Beitrag "Re: Umgang mit CPLD's lernen ( Altera od XILINX) via Dev Kit"
@Martin Das ist so ähnlich wie die Diskussion Assembler versus Hochsprache vor vielen Jahren. Da waren auch viele Vorurteile und Missverständnisse an der Tagesordnung. Martin H. schrieb: > Weil der Compiler aus VHDL bei jedem compile vorgang die kleinsten > Einheiten anders gruppiert und nicht zuverlassig gesagt werden kann, > dass bei jedem Vorgang immer die gleiche Anzahl Einheiten innerhalb > eines Signalweges je Vorgang zustande kommt (und damit also auch die > Signallaufzeit variiert) Das zum Beispiel, ist zwar im Prinzip richtig aber die Variation der Signallaufzeit ist so klein, dass es in einem vernünftigen Design keine Rolle spielt. Ausserdem gibt man vor was erreicht werden muss, und schreibt nicht etwa umgekehrt in das Datenblatt was beim letzten Compilelauf rausgekommen ist. Ich bin der Meinung dass ein FPGA fast immer die bessere Wahl ist. CPLDs werden weitestgehend aussterben, und nur innerhalb von Nischen und innerhalb anderer Bauteile weiterleben. (Z.B. PWR601 von Lattice). Lattice und wie ich heute festgestellt habe auch Altera tun einem ja schon eine Weile kleine FPGAs als CPLD verkaufen. Und zu Lernen von VHDL ist ein FPGA weit besser geeignet.
Lattice und Lothar, ich nehm euch beim Wort :) Die Screenshots hatte ich übersehen.. das ist ja mal eine kleine Mogelpackung, wenn da einer nicht richtig hinsschaut. Nun also werde ich mich den FPGA zuwenden. Zwei Kontakte habe ich schon und werde, denke ich, beide Möglichkeiten verfolgen. Nochmal vielen Dank für die informative und kontroverse Diskussion LG Martin
Hi, ich möchte mich mal an den Dank anhängen, weil ich gerade vor exakt der gleichen Problematik stand. Allerdings werde ich erstmal mit CPLD anfangen um die ersten Schritte in VHDL zu machen. Wenn ich das richtig verstanden habe sind die Unterschiede nicht so elementar was die ersten Schitte angeht. Da das erste Projekt ein reiner Ersatz für ein TTL-Grab wird, ist das die richtige Wahl denke ich. Ein Board mache ich selbst, bis runter auf 0,5mm Pitch sollte das gehen und die grösseren BGAs werde ich wohl vorerst nicht brauchen. Allerdings sehe ich jetzt schon, wie ich die etwas dünnen Möglichkeiten meines geplanten Gattergrabs gehörig mit weiteren Sachen aufbohren kann, von denen ich bisher nicht zu träumen gewagt hatte. Erstaunlich finde ich, daß das eigentlich alles recht überschaubar ist und VHDL finde ich auch recht gut zu verstehen. Die Seite von Lothar ist auch ganz famos, danke dafür! Lade gerade die ISE herunter - 5,67GB - ich fasse es nicht. Naja, mit 32Mbit/s habe ich immerhin 1,8MB/s. Ich denke (fürchte) man wird in Zukunft öfter in diesem Unterforum von mir hören ;-) Gruß, Norbert
Norbert S. schrieb: > Da das erste Projekt ein reiner Ersatz für ein TTL-Grab wird, ist das > die richtige Wahl denke ich. Aber zähl auf jeden Fall vorher die Flipflops/Speicherelemente nach... > Die Seite von Lothar ist auch ganz famos, Dort sind ein paar der gängigsten Probelme gesammelt, die irgendwie immer wieder auftauchen. Und solche Sachen, die mich selber beeindruckt haben... ;-) > danke dafür! Keine Ursache, wenns hilft.
Ich habe CPLD's verwendet weil es günstig sein musste (so 27 von 32 Flipflop's ausgenützt). Für ein EVAL-Board muss es nicht günstig sein, sondern möglichst vielfältig, damit man Verschiedenstes darauf testen / ausprobieren kann. Die CPLD's kann man bei bekannter Anwendung (fertiger Synthese) genau auf die richtige Grösse bestellen, damit lässt sich schon Geld sparen! Braucht man keinen Ferrari, sind CPLD's immer noch sinnvoll.
Lothar Miller schrieb: > Aber zähl auf jeden Fall vorher die Flipflops/Speicherelemente nach... So weit bin ich ja noch lange nicht. Zuerst gibt es sowieso eine "Hello World" LED und dann klapper ich vielleicht mal ein paar simulierte Datenströme durch um überhaupt erstmal ein Gefühl dafür zu kriegen. Wenn ich das richtig sehe kann man alles auch recht gut simulieren und dann sehe ich ja obs passt. Und ja, es hilft, weil alles wirklich schön verständlich beschrieben ist. Gruß, Norbert
Pedro schrieb: > Die CPLD's kann man bei bekannter Anwendung (fertiger Synthese) genau > auf die richtige Grösse bestellen, damit lässt sich schon Geld sparen! > Braucht man keinen Ferrari, sind CPLD's immer noch sinnvoll. Mit den FPGAs geht das auch. Wenn man schon einen Autovergleich dafür heranzieht, ist das am unteren Ende ist das eher Trabi mit 2 Takter, oder Trabi mit 4 Takter.
Norbert S. schrieb: > Zuerst gibt es sowieso eine "Hello World" LED und dann klapper ich > vielleicht mal ein paar simulierte Datenströme durch um überhaupt > erstmal ein Gefühl dafür zu kriegen. Exakt DAS ist meine Situation :) und mein Vorhaben.. und dann mal ein LCDisplay dran hängen usw usw.. Du bist aber schon weiter als ich Norbert, denn Du hast VHDL schon gesehen.. Ich habe ich gerade erst für einen Hersteller wnetschieden.. also wirds auch bei mir die ISE sein denk ich (War doch XILNIX??) Martin
Hi, jepp, Xilinx. Achtung, 5,67GB Download und die Installation zieht sich auch ziemlich hin. Da ich viel mit ATMega mache werde ich mir LCD vermutlich nicht antun, da macht mir das Bascom schön einfach. Ich werde das vor allem für Dinge nutzen, wo man beim AVR mit dem Timing ins Schwitzen kommt oder es gar nicht erst versuchen braucht. Ich hatte einen Mordsrespekt vor VHDL aber wenn man mal das Prinzip von Java (oder anderen OO-Sprachen) etwas kapiert hat (ohne es zu können) und von Basic kommt, versteht man das sofort. Mit Java für Android war das für mich ne ganz andere Nummer. Angefangen, Buch gekauft (welches angeblich gut sein soll), einen Kollegen mit Kenne und einen Kumpel der absoluter Profi in Java ist - keinen Plan, war mir zu kompliziert - aufgegeben. Aber es geht schon los, am Ende der Installation: "The environment variables are written to the .settings[32|64].bat file for each application and an encompassing settings[32|64].bat at "C:\Xilinx\13.4\ISE_DS". In order to set the variables in your environment, you must source the settings[32|64].bat file from "C:\Xilinx\13.4\ISE_DS"." Was will mir das sagen? Gruß, Norbert
>> Zum Einstieg würde ich mir auf jeden Fall PLDs, dann CPLDs anguggen, >> erst dann FPGAs. >Die PLDs (PAL/GAL) kannst du locker auslassen, weil du nämlich einen >spezeillen oder universellen Programmer dafür bräuchtest. Und weil sogar >Lattice seine GALs abgekündigt hat... Meinte vom Verständnis her, Struktur, geschichtl. Verlauf usw. Ein Programmer ist kein Probl, bsp v Xilinx. Lattice hat (wie erwähnt) die uralten GALs abgekündigt, macht aber noch (richtige) CPLDs. Auch Altera hat(te) "FPGAs" mit embedd. MACzellen. >Mann, war das ein Lichtblick! So >viele Flipflops... ;-) dafür wenig Funktionalität in den (kleinen) LUTs. >Mir gegenüber wurde noch 2010 die Aussage getroffen, dass bei CPLDs die >Signallaufzeit berechenbar sei, was bei FPGAs so einfach nicht ginge .. Kommt einfach nur daher, dass man beim (wirklichen) PLD oft die Anzahl der MACs sofort abschätzen kann, und somit auch die Laufzeit direkt parat hat. Beim FPGA braucht man halt einige LEs/CLBs dafür, wobei manchmal (besonders bei älteren FPGAs (*)) die Signallaufzeiten -je nach Routing- sehr unterschiedlich ausfallen können. (*)Altera hatte (im Gegensatz zu Xilinx) von Anfang an eher busorientierte Routing-Resourcen mit angeblich 'besserer' Vorhersagbarkeit, bzw mit einfacherem Timing-Model.
MCUA schrieb: >> Mann, war das ein Lichtblick! So viele Flipflops... ;-) > dafür wenig Funktionalität in den (kleinen) LUTs. Aber dafür eine Unmenge davon... Und selten werden tatsächlich solche komplexen logischen Beziehungen aufgesetzt, dass ein Produktterm eines CPLDs auch nur annähernd ausgereizt würde. Kurz: der Wirkungsgrad des FPGAs ist sicher höher, weil immer nur ein kleiner Rest an ungenutzer Logik übrig bleiben. Mal angenommen, du brauchst nur 2 simple 4-fach UND Gatter... > (*)Altera hatte (im Gegensatz zu Xilinx) von Anfang an eher > busorientierte Routing-Resourcen mit angeblich 'besserer' > Vorhersagbarkeit, bzw mit einfacherem Timing-Model. Aber das ist sowieso kein Problem, weil die statische Timinganalyse von der Toolchain berechnet wird...
Norbert S. schrieb: > "The environment variables are written to the .settings[32|64].bat file > for each application and an encompassing settings[32|64].bat at > "C:\Xilinx\13.4\ISE_DS". In order to set the variables in your > environment, you must source the settings[32|64].bat file from > "C:\Xilinx\13.4\ISE_DS"." > Was will mir das sagen? Für ein 32-Bit-System mußt Du die settings32.bat aufrufen, um die nötigen Pfade zu setzen und für ein 64-Bit-System die settings64.bat. Duke
Lothar Miller schrieb: > Und da ist eben schon mit einem kleinen UART Schluss: > http://www.lothar-miller.de/s9y/categories/49-RS232-IO Mein lieber Lothar, das ist aber eine ganz schöne Spielwiese, Deine Seite :) Es werfen sich natürlich wieder Fragen auf :) 1) Gibt es eine preiswerte VHDL Referenz, beantwortet sich vllt von selbst, namlich hier auf mikrocotroller.net, aber auch etwas brauchbares auf Papier? 2)Mit Bezug auf Dein Beispiel: Einge USB2Seriell-Wandler (USB zum SIO des AVR von ATMEL z.B.) sind als CPLD ausgeführt. Es wäre interessant, anstatt sich einen FTDI chip zu kaufen, SOWAS mal selbst zu machen, aber dazu muss ich das Protokoll wissen. Hast Du da was auf Lager, so VHDL mäßig?? Wäre auch mal ein gutes Trainingsprogramm 3) Natürlich gibt es Emulatoren und so was, mit denen man VHDL quasi als Software-FPGA/CPLD testen kann. Gibt es da Empfehlungen natürlich an besten - opensource - für linux - kostenfrei Geht das mit der ISE von Xilinx auch? (da ich ja wohl auf Xilinx gehe) LG Martin
2: Ein USB Device ist selbst für das größte CPLD einige Nummern zu groß. Woher hast du diese Info, dass da ein USB-Seriell Wandler reinpassen würde? 3: Sowas nennt sich Simulator. Gibts als open source mit ghdl + evtl. gtkwave auch für Linux. Der hat aber ein problem mit manchen Libs von Xilinx. Ansonsten ist in der ISE der ISim integriert, das ganze Paket gibts natürlich auch für Linux.
Christian R. schrieb: > Ein USB Device ist selbst für das größte CPLD einige Nummern zu groß. > Woher hast du diese Info, dass da ein USB-Seriell Wandler reinpassen > würde? Altera verwendet beim USBBlaster einen FPGA oder CPLD. Siehe Schaltplan Dass es ein CPLD ist, ist eine Annahme, nachdem ich gelernt habe, dass manche CPLD verkappte FPGA sind, halte ich das für möglich, habe das aber nicht akurat genug definiert :)
Martin H. schrieb: > Altera verwendet beim USBBlaster einen FPGA oder CPLD. > Siehe Schaltplan Aber neben einen Cypress FX2 der den USB Teil bedient.
@ Lothar Miller (lkmiller) Benutzerseite >weil immer nur ein kleiner Rest an ungenutzer Logik übrig bleiben. Mal >angenommen, du brauchst nur 2 simple 4-fach UND Gatter... Dann nimmt man einen 74HC08 SCNR Falk
Martin H. schrieb: > 1) > Gibt es eine preiswerte VHDL Referenz, beantwortet sich vllt von > selbst, namlich hier auf mikrocotroller.net, aber auch etwas brauchbares > auf Papier? Eine "Referenz" ist nicht unbedingt das, was du willst und brauchst. Denn in einer VHDL-Referenz steht natürlich alles drin, was VHDL kann. 100% Funktionsumfang also. Aber davon kann der Synthesizer nur 5% in reale Hardware umsetzen. Es ist also wichtig, 2 Bücher zu haben: 1 das alles über VHDL sagt, und 1 das sagt, was du davon in ein CPLD/FPGA reinbekommen wirst. Sieh dir den Beitrag "Suche VHDL Buch" an.
Martin H. schrieb: > Es werfen sich natürlich wieder Fragen auf 1. Zunächst zu deinen Fragen nach einer VHDL-Referenz: Es gibt ne Menge im Internet, woraus man VHDL lernen kann. Manches ist gut und instruktiv, anderes eher nicht, aber das hängt auch von persönlichen Präferenzen ab. Also suche das Netz ab, schau dir die diversen PDF's an und behalte das, was dir zusagt. Jeder Ratschlag zu diesem Thema ist persönlich gefärbt. 2. Das Beispiel eines USB/V24-Wandlers ist schlecht, denn es ist genau so eine Anwendung, für die man einen uC viel besser gebrauchen kann als ein Stück programmierbare Logik, egal ob CPLD oder FPGA. Von Xilinx weiß ich, daß die ein FPGA und einen uC (ich glaub von Cypress) in ihrem USB-Programmer verwenden. Aber nochmal: Wenn du einen Parallelport an deinem PC hast, dann ist es am einfachsten, einen simplen Adapter dafür zu basteln. Ist ruckzuck erledigt und kostet nix. Ich habe damit gute Erfahrungen gemacht, allerdings unter Windows. Wenn du später mal groß in das Geschäft einsteigen willst, ist immer noch Zeit, was Teureres zu kaufen. Ach ja, ich verwende zu diesem Zweck eine Netmos-Einsteckkarte von Pollin. Auch das Implementieren eines Mikrocontrollers in ein FPGA ist eigentlich ein schlechtes Beispiel, denn einen richtigen Mikrocontroller kann man auf solche Weise nicht wirklich ersetzen: Entweder schafft man es, dann braucht man ein FPGA, das so groß und teuer ist, daß man davon ne ganze Schachtel uC hätte kaufen können oder man schafft es mit Mühe und Not gerade so, dann ist alles im FPGA belegt und das FPGA ist immer noch teurer als ein uC. Als eher akademisches Beispiel sei hier der CQPIC genannt (http://www002.upp.so-net.ne.jp/morioka/cqpic.html), der ne nette Übung sein kann. Aber für weniger Geld gibt es mittlerweile viel neuere PIC's. 3. Emulatoren und so: Ich weiß nicht, wieso du bei diesem Punkt so vehement auf Linux pochst: Ist dir Linux wichtiger als die Sache, um derentwegen du hier anfragst? Es gibt eigentlich bei allen Herstellern in der Entwicklungssoftware eine Timing-Analyse. Aber ob und wie man die Funktionalität insgesamt austesten kann, ist ne andere Frage. Das Programm ChipScope ist m.W. in einer speziell zugeschnittenen Version für den jeweiligen Hersteller vefügbar, aber ob das überhaupt auf Linux - und wenn mit welcher Version - läuft, mußt du mal selber herausbekommen. Notfalls benutzt du Wine.. Nochmal meine ernst gemeinte Anregung: - Versuche nicht, das nachzubilden, was es bereits viel billiger als normalen Chip gibt. - Such dir was aus, das hardwarebetont ist, was man also nicht wirklich gut mit einem Programm in irgendeinem uC ebenso gut erledigen kann. nach meiner Erfahrung sind Themen wie - DDS bis ca. 100 MHz Takt und Steuerung für nen Vierquadranten-Mischer für ein SDR (Software definiertes Radio) auf Soundkartenbasis - Bildschirmsteuerung für S/W- und TFT-Farb-Grafikdisplays - Ersatz für umfängliche TTL-Gräber - 4 Bit SD-Karten Frontend - Frontend für Frequenzzähler geeignet für CPLD's. Und Themen wie - Digitales Frontend für direktsamplendes SDR - Demodulator und Dekoder für HRPT (Wettersatellitenbilder) - Bildschirmsteuerung mit Hardware-Mauszeiger sind was für FPGA's. Bloß so, daß du einen Eindruck von den Gefilden bekommst. W.S.
Hi, das scheint mir ein sehr guter Beitrag zu sein, zumindest bestätigt er meine ersten Eindrücke. Allerdings zu 1.: Man wird überall erschlagen, ich hab noch nichts gefunden mit dem man "einfach" klar kommt. So vielleicht 20-30 Seiten und ich kann ein Gattergrab ersetzen. Gibts nicht. Ich brauche die Grundlagen nicht, die man vielleicht für eine effektive Programmierung einer LTE Basisstation mit 20 parallelen FPGAs aus dem obersten Regal braucht. Was ich bisher gelernt und hinbekommen habe, könnte man vielleicht in 2-3 Seiten erklären. Frag mich nicht durch wie viele Quellen ich mich dafür gequält habe. Ich habe hier besonders von Lothar schon gute Erklärungen bekommen. Ein entsprechendes Tutorial mit einfachen Erklärungen habe ich aber auch nach intensiver Suche noch nicht gefunden. Also Lothar, wenn Du ein Buch schreiben willst "VHDL für einfache Vergleiche und Byteschubsereien - wenn der µC mal zu lahm ist", dann bin ich einer der ersten Käufer. Gruß, Norbert
W.S. schrieb: > 1. Zunächst zu deinen Fragen nach einer VHDL-Referenz: Es gibt ne Menge > im Internet,.. Also suche das Netz ab, Da ich nicht weiss, was ich nicht weiss, ist das Suchen ein Problem. Ich denke ich fange mit einem Buch an. Irgend ein 101 wird sich finden und das Netz werde ich sicher weiter durchgraben. Solche Seiten wie die von Lothar mögen nicht perfekt sein, aber sie helfen Anfängern zu verstehen. Siehe Beiträge von Norbert S. >Jeder Ratschlag zu diesem Thema ist persönlich gefärbt. Wie wahr > 2. Das Beispiel eines USB/V24-Wandlers ist schlecht, denn es ist genau > so eine Anwendung, für die man einen uC viel besser gebrauchen kann als > ein Stück programmierbare Logik Es ist nur ein Beispiel und ein einfaches dazu (siehe weiter unten) > Aber nochmal: Wenn du einen Parallelport an deinem PC hast, dann ist es > am einfachsten, einen simplen Adapter dafür zu basteln. Wurde mir von abgeraten und ich möchte einigermaßen zukunftssicher auf USB setzen. Nicht das ich das nicht leisten könnte. > Wenn du später mal groß in das Geschäft einsteigen willst, ist immer > noch Zeit, was Teureres zu kaufen. Will ich nicht, mein Eingangspost lässt drauf schliessen, dass ich erst mal wissen will wie und was.. dazu reichen mir irgendwelche Logiken, die ich schön und einfach mal programmieren und auf den Chip flashen kann und dann sehe ich weiter. > Auch das Implementieren eines Mikrocontrollers in ein FPGA ist > eigentlich ein schlechtes Beispiel, denn einen richtigen Mikrocontroller > kann man auf solche Weise nicht wirklich ersetzen: CPLD und FPGA sind eigentlich sowas wie statemachines und keine Prozessoren (es sei denn einer ist drauf untergebracht) Deswegen habe ich im Rahmen einer Arbeit den "Programmen" für CPLD/FPGA den namen Konfigware gegeben, denn es läuft kein zyklisches oder sonst wie gesteuertes Programm im Sinne von schrittweisem Durchlauf von Befehlen ab, sondern die Verbindungen von Ein- und Ausgängen sowie der Funktionseinheiten dazwischen wird konfiguriert. Weil ich das Prinzip kenne, weiss ich noch immer nicht wie man damit umgeht und darum geht es mir hier. > 3. Emulatoren und so: Ich weiß nicht, wieso du bei diesem Punkt so > vehement auf Linux pochst: Weil mein Hauptarbeitsrechner unter Linux läuft. > Ist dir Linux wichtiger als die Sache, um derentwegen du hier anfragst? Wie kommst Du auf das schmale Brett? Hast Du vllt ein Problem mit Linux? > - Versuche nicht, das nachzubilden, was es bereits viel billiger als > normalen Chip gibt. Ich will nichts nachbilden, ich will lernen mit den Teilen umzugehen und nebenher etwas VHDL > - Such dir was aus, das hardwarebetont ist, was man also nicht wirklich > gut mit einem Programm in irgendeinem uC ebenso gut erledigen kann. Siehe weiter oben... ich habe nicht vor einen µC zu ersetzen, denn dazu benutze ich AVR Prozessoren. > nach meiner Erfahrung sind Themen wie > - DDS bis ca. 100 MHz Takt und Steuerung für nen Vierquadranten-Mischer > für ein SDR (Software definiertes Radio) auf Soundkartenbasis > - Bildschirmsteuerung für S/W- und TFT-Farb-Grafikdisplays > - Ersatz für umfängliche TTL-Gräber > - 4 Bit SD-Karten Frontend > - Frontend für Frequenzzähler > geeignet für CPLD's. Mir im Moment leider alles zu hoch ausser dem Ersatz für TTL-Gräber und da will ich erst mal hin. Das SD-Kartenfrontend könnte interessant sein oder das Radio. > Und Themen wie > - Digitales Frontend für direktsamplendes SDR > - Demodulator und Dekoder für HRPT (Wettersatellitenbilder) > - Bildschirmsteuerung mit Hardware-Mauszeiger > sind was für FPGA's. Du unterscheidest zwischen den Möglichkeiten von CPLD und FPGA.. weiter oben im Forum wurde heftig diskutiert, dass CPLD aussterben würden und manche CPLD verkappte FPGA sind. Zuletzt lautete meine Frage, welches Zielsystem und ich bin auf dem Weg eines für mich zu finde, es wird eines mit FPGA ist. Vielen Dank für Deine Anregungen LG Martin
Martin H. schrieb: > CPLD und FPGA sind eigentlich sowas wie statemachines Für Haarspalter.. Es sind natürlich KEINE statemachines, beachte den Satzbau.. Es geht mir darum auszudrücken, dass hier kein Prozesser Takt für Takt Befehle abarbeitet, sondern eben eine Logik aufgrund von Eingangssignalen (ggf. zum Taktzeitpunkt) bestimmte Ausgangssignale bereitstellt. Was das Nachbilden von existierenden Chips angeht.. Wenn man auf eine andere Art und Weise etwas nachbildet, was man schon kennt, hat man eine Referenz, arbeitet sozusagen wissenschaftlich. Was spricht also für einen Anfänger dagegen, ein BCD-zu-7Segment Wandler zu bauen, er weiss wie die Logik aussehen muss und kann es in der Sprache nachbilden und weiss was für ein Ergebnis rauskommen muss. Keine schlechte Art zu lernen. LG Martin
Martin H. schrieb: > Keine schlechte Art zu lernen. Ähem.. Findest du das nicht ein bissel unter/übertrieben? Du möchtest in die Welt der programmierbaren Bausteine einsteigen, tendierst nach einigen Beiträgen in diesem Thema dazu, zuallererst mit FPGA's anzufangen und willst dann damit erstmal einen BCD->7Segment-Dekoder bauen? Ansonsten scheinst du fast jeden Satz von mir besserzuwissen, also wozu fragst du dann? Also: such einfach per Google nach "VHDL Tutorial" und sieh dir die Treffer an. Ich hatte es damals ja auch nicht viel anders gemacht - wenn man mal davon absieht, daß es Google damals noch nicht gab und ich Altavista und so benutzt habe. Und was deine Bemerkung zu Linux betrifft: Linux benutze ich eigentlich nur zum Daddeln im Internet, die Arbeit wird auf Windows erledigt und ich weiß wirklich nicht, ob die Software, von der ich rede, auch auf Linux läuft. Dieses mußt du selber herausfinden. Aber das habe ich dir ja schon weiter oben geschrieben. Und nochwas: Wenn du nicht bloß programmierst, sondern mit Hardware umgehst, dann solltest du eigentlich auch Schaltungen entwerfen können - meine ich. Also wäre es erstmal ein Einstieg, wenn du tatsächlich dein allererstes Projekt mit Schematic durchziehst. Wenn das läuft weißt du, daß deine Toolchain funktioniert, daß dein Programmer funktioniert, daß dein Zielsystem (also deine Leiterplatte) funktioniert. Dazu reicht dann was Selbstgeätztes mit einem einfachen CPLD mit 32..64 Makrozellen drauf völlig aus - und das kostet fast nix. Zu Höherem kannst du dich ja anschließend aufschwingen. Lies einfach mal die Quelle zum CQPIC, die ist einigermaßen lehrreich. W.S.
Norbert S. schrieb: > Ich brauche die Grundlagen nicht, die > man vielleicht für eine effektive Programmierung einer LTE Basisstation > mit 20 parallelen FPGAs aus dem obersten Regal braucht. Wo hast Du die gefunden? Die hätte ich gerne g Duke
@Martin, ich habe gerade mit dem Buch angefangen, um VHDL zu lernen : VHDL-Synthese: Entwurf digitaler Schaltungen und Systeme ISBN-10: 3486589873 ISBN-13: 978-3486589870 Bin sehr zufrieden mit dem Aufbau des Buchs. War auch ein Tip hier aus dem Forum. Aber um mit CPLDs anzufangen kann VHDL erst mal warten. Jeden CPLD / FPGA kann man erst mal mit einem Schematic Projekt ans erste blinken bringen, das ist für das erste Projekt Arbeit genug. Wenn man auf Schematic Ebene fit ist kann man sich ja an das erste VHDL Projekt wagen. Nie mehr Schritte auf einmal machen, man kommt nur ins Stolpern. Die großen Dinge wagen, wenn man für die großen Dinge gerüstet ist. Gruß, dasrotemopped.
Markus Horbach schrieb: > Aber um mit CPLDs anzufangen kann VHDL erst mal warten. > Wenn man auf Schematic Ebene fit ist kann man sich ja an das erste VHDL > Projekt wagen. Ich habs genau andersrum gemacht (erst VHDL, dann Hardware) und vermisse keinen der offenbar unsäglichen Schematic-Editoren. Na gut, zu allererst habe ich Schematics (und daraus Boards) mit 74ern und 4000ern gemacht... ;-)
Markus Horbach schrieb: > Jeden CPLD / FPGA kann man erst mal mit einem Schematic Projekt > ans erste blinken bringen, das ist für das erste Projekt Arbeit genug. > Wenn man auf Schematic Ebene fit ist kann man sich ja an das erste VHDL > Projekt wagen. @Markus So sehe ich das auch.. Direkt auf FPGA zu gehen war ein Anregung weiter oben weil <Zitat> "CPLD tot sind" </Zitat> Auch ich bin generell für die Vorgehensweise Einfach -> schwierig. Ich wiederhole gerne nochmal meine Intentionen wie gaaaaaaanz oben schon mal ausgedrückt. - Ich möchte lernen, mit CPLD(FPGA) umzugehen (also Funktionen zu implementieren und auf die Chips zu übertragen) - den Umgang mit VHDL und das ganze sehr generell, weil es mich schlicht interessiert. Für alle die es wissen wollen: Ich habe als RadioFS-Techniker angefangen und bin jetz Elektrotechniker/Elektronik/Datenverarbeitung bzw Technischer Redakteur Privat habe ich mich mit TTL und CMOS-Technik sowie OpAmp-Schaltungen beschäftigt sowie Z80, dem µC 78HC705 usw. Alles was das Ätzen von Platinen anging fand ich ätzend, alleine die Entsorgung von EisenIII-Chlorid.. hhmmmm ja.. und bin deswegen nach einigen Versuchen bei der Lochrasterplatine geblieben. Heute arbeite ich als Technischer Redakteur. Alle Versuche in die Hardwarentwicklung zu kommen sind leider gescheitert. Daraus folgert: Ich bin kein Anfänger in der Elektronik, wohgl aber im "realen " Umgang mit PLD's/FPGA, hier kenne ich das Prinzip, aber da endet es auch. Ich kann Schaltungen entwerfen, aber ich falle auf Dinge rein, die Erfahrung benötigen, ich kann µC programmieren. Als damals GALs auftauchten tauchte ich gerade ab. Jetzt habe ich Lust und Zeit mich damit zu beschäftigten. Linux ist mein bevorzugtes Betriebssystem. (Wen immer das stört möge es akzeptieren oder weglesen) Auch weiter oben im Thread habe ich kurz beschrieben womit ich mich gerade beschäftige (auch auf Lochraster :) Da dieser Thread inzwischen fast unlesbar lang wird, fängt die Katze an sich in den Schanz zu beissen und fachlich ineffektiv zu werden (ein subjektiver Meinungsaustausch, der zeitweilig Grenzen überschreitet, was ich schade finde) Gruss und Dank Martin
Na dann wünsche ich dir frohes Schaffen und große Erfolge. Vielleicht liest man irgendwann von deinen Werken. Auf selbstgemachte Leiterplatten brauchst du trotzdem nicht zu verzichten: Du kannst die freie Version von Eagle benutzen (das gibt's auch für Linux) und dann das Boardfile zu einem Leiterplattenmacher schicken. Einige davon werben hier in diesem Forum, also schau dich um. Ähem.. für das anschließende Löten der Bauteile auf das Board solltest du dich aber fit fühlen, oder? W.S.
Hallo Martin, ich schreibe hier nochmal weil es vielleicht den ein oder anderen Einsteiger auch interessieren könnte. Ich möchte mich mal zum Thema Linux und Xilinx Tools äußern. Die Tools bei Xilinx scheinen zwar für Windows programmiert zu werden, aber diese laufen (ohne Ausnahme) bei uns im produktiven Einsatz unter Debian und Ubuntu sehr stabil. Am Anfang habe ich mich zwar etwas schwer mit dem Cable-Treiber getan aber darüber gibt es jetzt schon mehr als ausreichend Artikel (einfach mal googlen oder hier fragen). Und auch Modelsim / Questa laufen unter Linux (aber das kommt aufgrund des Preises bei Privatleuten wohl eher nicht in Frage). Wie es mit ALDEC aussieht kann ich leider nicht sagen. Aber ISIM (Xilinx) oder die Altera-Modelsim-Version sollte für den Anfang locker reichen. Was das Thema Schematic-Editor angeht hat jeder seine eigene Meinung. Meine ist dass man so vielleicht vor 10 Jahren PLDs umschrieben hat. Dies ist aber nicht mehr Zeitgemäß. Veranschauliche dir lieber was in deinem FPGA drin ist (CLB, Slice, etc.), überlege dir dann auf einem Blatt Papier was du machen willst, umschreibe es in einer HDL (VHDL oder Verilog) und schaue was dein Tool draus macht (mit dem RTL Viewer). Danach kannst du es in einer Simulation testen (z.B. ISIM) und/oder auf deinem Zielbaustein programmieren.
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.