für eine kleines Projekt möchte ich ein "TTL-Grab" durch einen CPLD ersetzen, also reine kombinatorische Logik, vielleicht auch etwas mit Takt und einem Zähler, dann aber eher kHz. Ein FPGA wäre an dieser Stelle viel zu "groß" und auch ein µC wäre gefühlt nicht so passend.
Vor 15 Jahren hab ich von Xilinx damals die Coolrunner verwendet, aber soweit ich das sehe, sind die abgekündigt!
Die 9er Version vom Ise Webpack hab ich noch, die letzte 14.x Version würde auch noch gehen für CPLDs. Die gibt es auch kostenlos und würde dann aber in einer VM laufen... dazu müsste ich mir wohl einen USB-Programmer beschaffen, über den Parallel-Port zu programmieren dürfte dank fehlender alter Hardware entfallen. Könnte ich nutzen, aber will man das tote Pferd noch einmal reiten?
Hab mir Lattice angeschaut, die ispMACH 4000ZE Serie, sieht nett aus... aber Lattice will für die Software "ispLEVER Classic" Geld haben, um die 600$ pro Jahr... ist damit raus!
Dann wäre da noch Mikrochip (ex. Atmel) mit der ATF-15xx Serie, WINCUPL II gibt es als Beta zum programmieren... Sprache wäre dann "CUPL", müsste ich mich einarbeiten, vermutlich / hoffentlich ähnlich VHDL? Hat da jemand Erfahrung mit? Programmer bräuchte ich auch noch. Ok, FTDI-Chip und etwas Kleinkram...
Die ATF-16 Serie lässt sich vermutlich nicht über JTAG programmieren, oder?
Als letzter Kandidat bleibt Altera mit der Max V Serie übrig, die Software "Quartus® Prime Lite Edition" ist aktuell und kostenlos. Programmer besorgen sollte auch kein Thema sein... VHDL geht auch.
Warum grämst du dich um die Beschaffbarkeit von CPLDs wenn
das für ein "kleines Projekt" gedacht ist? Besteht das "kleine
Projekt" aus einer Gross-Serie? Willst du die Beschaffbarkeit
des CPLDs für 10-20 Jahre sichern?
Für kleine Stückzahlen bekommt man immer noch jede Menge
abgekündigter/eingesteller CPLD Chips, sogar noch GALs wenn
es unbedingt sein muss.
Warum grämst du dich um die Beschaffbarkeit von CPLDs wenn
das für ein "kleines Projekt" gedacht ist? Besteht das "kleine
Projekt" aus einer Gross-Serie? Willst du die Beschaffbarkeit
des CPLDs für 10-20 Jahre sichern?
Für kleine Stückzahlen bekommt man immer noch jede Menge
abgekündigter/eingesteller CPLD Chips, sogar noch GALs wenn
es unbedingt sein muss.
Das stimmt schon, aber evtl. ergibt sich das beim nächsten Projekt und dann beim übernächsten, das ein CPLD passen würde ...
Ich suche halt Leute, die sowas "altes" noch aktuell nutzen, auch für evtl. Fragen usw.
Ich suche halt Leute, die sowas "altes" noch aktuell nutzen, auch für
evtl. Fragen usw.
Coolrunner waren damals auch deshalb cool weil man sie über den
Druckerport programmieren konnte, das (die Programmierung) hatte
man von Philips übernommen und eine zeitlang noch mitgeschleppt/
unterstützt. Ist aber mit "modernen" Rechnern wegen des fehlenden
Druckerports nicht mehr möglich.
Wenn man von der Größe (physikalisch und logisch) und der seltsamen Programmierung (Schaltplan) absieht, sind die GreenPAK von Silego/Dialog/Renesas recht nett:
<loriot>Vielleicht stimmt mit deinem Gefuehl was nicht</loriot>
Wenn du eher bei kHz unterwegs bist, wuerde ich nicht zum CPLD greifen.
Gruss
WK
Also erst mal brauche ich nur kombinatorische Logik, evtl. kommt noch ein Zähler dazu, ähnlich CD4029. Das sollte sich alles in einem CPLD verpacken lassen... man könnte auch eine große Wahrheitstabelle aufstellen und das ganze in einen PROM, EPROM oder EEPROM packen... ein µC würde das auch erledigen können und sich 99% der Zeit langweilen!
Egal welchen CPLD man nimmt, den Programmer mit USB gibt es für ein paar EUR im Netz zu kaufen, dass sollte nicht das Thema sein.
Ise Webpack kenne ich noch aus dem Studium, haben damals den Virtex Pro damit programmiert bzw. uns rumgeärgert! Deshalb die Idee, vielleicht mal was "neues" zu probieren... aber bis jetzt scheint niemand mehr diese Old-School Technik zu nutzen!
sind die GreenPAK von Silego/Dialog/Renesas recht nett:
Welchen Vorteil sollten Chips haben die "niemend kennt" und
die "nirgendwo erhältlich" sind?
Ich kenne ein paar davon und man kann sie bei Mouser kaufen. Der Vorteil ist, daß sie nicht abgekündigt sind und die Design-Software kostenlos ist und auch für Linux und macOS verfügbar ist.
man könnte auch eine große Wahrheitstabelle
aufstellen und das ganze in einen PROM, EPROM oder EEPROM packen... ein
µC würde das auch erledigen können und sich 99% der Zeit langweilen!
Zum Programmieren von [*]PROMS brauchts tendentiell seltenere/teurere Adapter als fuer viele gaengige und billige µController.
Um die Psyche von sich langweilenden Controllern wuerde ich mir keinen Kopf machen, sondern die auch einsetzen, wenn 99% der Software aus NOP bestehen wuerde. Das halten die aus.
Ich greife gerne zu Lattice MachXO[|2|3]. Kleine Packages, einige Versionen brauchen nur 3.3V, Flash intern.
Die Software dafür heißt Lattice Diamond. Du musst immer eine Jahreslizenz beantragen, aber die ist kostenlos, und nach Ablauf beantragst Du einfach eine neue.
Im Ernst: der MachXO2-256 ist ideal, um ein TTL-Grab zu ersetzen. Recht günstig (so um 5$), integriertes Flash, einfach anzuschließen und mit Diamond (kostenlos und auch schlank!) zu programmieren.
Als JTAG-Programmierer tut's irgendein FTDI FT232HQ oder FT2232HQ-Board. Außerdem lässt sich der MachXO2 auch noch per I2C oder SPI flashen. Die Routinen muss man allerdings selbst schreiben, ist aber kein Hexenwerk.
Sprache wäre dann "CUPL",
müsste ich mich einarbeiten, vermutlich / hoffentlich ähnlich VHDL? Hat
da jemand Erfahrung mit? Programmer bräuchte ich auch noch.
Ich hab WinCUPL probiert und in die Ecke geworfen. Ich scheitere daran. Kaum Unterlagen dazu, kein Tutorial. Das ist für mich die komplette Sackgasse.
Und daher hab ich mich, für die Pillepalle-Aufgabe, für den ForgeFPGA entschieden. Vor allem, weil ich nur wenige Pins brauche.
Eventuelle Hindernis: Die Gehäusebauform.
Die üblichen FPGA-Kandidaten schieden aus, weil viel zu viele Pins.
"TTL-Grab" durch einen CPLD
ersetzen, also reine kombinatorische Logik, vielleicht auch etwas mit
Takt und einem Zähler, dann aber eher kHz. Ein FPGA wäre an dieser
Stelle viel zu "groß" und auch ein µC wäre gefühlt nicht so passend.
Ein Grund für fehlende TTL-Gräber sind m.E. moderne µC. Egal ob Displays oder viele I/O, das meiste erledigen µC und notfalls Schieberegister quasi nebenher, wenn es nicht gerade um ein Replacement einer Zwischenschaltung geht.
Nachtrag:
Die IDE für den ForgeFPGA kann nur Verilog (falls ich das richtig gesehen hab). Man kann aber auch "Gatter zeichnen".
Bevor du da Geld versenkst, probier das lieber vorher aus. Für die IDE muss man sich registrieren.
Der Programmer kostet aber Geld! Etwa 120 €, gabs aber schon mal deutlich billiger.
für eine kleines Projekt möchte ich ein "TTL-Grab" durch einen CPLD
ersetzen, also reine kombinatorische Logik, vielleicht auch etwas mit
Takt und einem Zähler, dann aber eher kHz. Ein FPGA wäre an dieser
Stelle viel zu "groß" und auch ein µC wäre gefühlt nicht so passend.
Falsch. Einen kHz Zähler erledigt praktisch jeder moderne Mikrocontroller im Schlaf, ggf. sogar in Software. Aber die meisten haben Timer mit externen Takteingängen.
Nimm die MachXO2 von Lattice, die gibts auch in klein und bastlerfreundlich (z.B. TQFP100 oder 144). Die Toolchain ist kostenlos und den Programmieradapter gibts für 16€ bei Ali.
ein µC würde das auch erledigen können und sich 99% der Zeit langweilen!
Dann kommt er 99% der Zeit in den Sleep Mode und verbraucht dann fast nichts. Im Endeffekt möglicherweise weniger als der CPLD oder das TTL-Grab. Heutzutage macht man alles mit Prozessoren, selbst simple ICs haben gern mal einen maskenprogrammierten Minimalprozessor zur Steuerung drin. Selbst manche Peripherieeinheiten von Mikrocontrollern enthalten wieder einen eigenen Spezialprozessor. Wenn es also nicht extrem zeitkritisch ist oder Massen an IOs nötig sind, ist ein Mikrocontroller bei Preis, Verbrauch, Beschaffbarkeit, Softwaresupport, Literatur... überlegen.
Sprache wäre dann "CUPL",
müsste ich mich einarbeiten, vermutlich / hoffentlich ähnlich VHDL? Hat
da jemand Erfahrung mit? Programmer bräuchte ich auch noch.
Ich hab WinCUPL probiert und in die Ecke geworfen. Ich scheitere daran.
Kaum Unterlagen dazu, kein Tutorial. Das ist für mich die komplette
Sackgasse.
Ich habe mit CUPL $DAMALS richtig gute Erfarungen gemacht.
$DAMALS = etwa 1984. Den FIR-Filter-Algorithmus habe ich mit
Z80-Turbo-Pascal verifiziert, mit CUPL in Statemaschinen zerhackt
und die vielen Pals konnte man mit CUPL dann auch am Stück simulieren,
auf der VAX11/750. Von einem Wire-Wrap-Fehler abgesehen hat das
im ersten Anlauf funktioniert (und massenhaft Strom gezogen :-) ).
Ja doch, VHDL und so kann ich auch.
Und würdest du heute auch noch Zeit dafür investieren?
Das ist so langsam die große Frage, die ich mir stelle... die "meisten" Empfehlungen gehen zu Lattice oder empfehlen einen µC als Lösung, was ohne Probleme machbar wäre.
Scheint, außer für spezielle Anwendungen die man mit FPGAs löst, hat sich das Thema Programmierbare logische Schaltungen (CPLDs) erledigt.
Scheint, außer für spezielle Anwendungen die man mit FPGAs löst, hat
sich das Thema Programmierbare logische Schaltungen (CPLDs) erledigt.
RIP
Es gibt hier nur zwei Gründe, einen FPGA oder CPLD zu nutzen. Du willst einfach aus Spaß an der Freud was damit machen oder was lernen. Wenn du aber nur das Problem lösen willst, nimmt man sie nicht. Entscheide dich.
Es ist wie Latein: gut, wenn man alte Sachen analysieren will. Unbrauchbar in heutiger Zeit. Weder bei medizinischen Begriffen noch im Vatikan ist Latein eine aktuelle Sprache.
Wenn man von der Größe (physikalisch und logisch) und der seltsamen
Programmierung (Schaltplan) absieht, sind die GreenPAK von
Silego/Dialog/Renesas recht nett
Ganz grob ähnlich sind die PLDs von TI. Der neueste (noch nicht verfügbar)
ist vollständig dokumentiert und kann über I²C/SPI programmiert werden:
https://www.ti.com/product/TPLD2001
(Und mit 20 LUTs ist er der größte der Familie.)
Das ist so langsam die große Frage, die ich mir stelle... die "meisten"
Empfehlungen gehen zu Lattice oder empfehlen einen µC als Lösung,
Ich weiß ja nicht wie schnell das gehen soll.
Aber du könntest dir ja auch noch XMOS ansehen. Damit bekommt man 10 ns Auflösung hin und hat acht Kerne. Hardwareorientierterer µC gibts nicht.
https://www.xmos.com/xcore-200
Hab ich nur gesagt, damit du dir noch unsicherer wirst. :-))
Mit einem pauschalen "Mikrocontroller ersetz CPLD" sollte man vorsichtig sein, das stimmt in den wenigsten Fällen.
Mikrocontroller ist nicht gleich mikrocontroller, und wenn man "damals" das Gerät mit einem solchen hätte aufbauen können, hätte man das gemacht.
Eine Probe-Implementation auf einem ARM Embedded sollte es schon sein, gerne mit 40+ MHz. Und oft scheitert es an Trivialitäten wie "zu wenig Pins" am µC. Ja CPLD's werden halt auch als Adressdecoder am parallelen Bus eingesetzt, da muss man mal schnell ein paar bits bspw. 17 Ver-AND-en. Blöd wenn die Eingänge des µC in 8-bit Ports organisiert sind. Geht natürlich auch, kostet dann aber clock cycles und die Reaktionszeit "rutscht" vom 0.1 µs Bereich in den von ein- oder zweistellen Mikrosekunden. Noch langsamer sind Implementation von Programmieren die Abstraktionsebenen weit weg von der Hardware unterwegs sind. Man sollte schon die µC-Interna (Datenblatt) genau kennen und den µC wenigstens partiell in Assembler oder Hardware-nahem C programmieren können, um eine Chance auf optimal kurze subroutinen zu haben.
Ein Beispiel für eine weit verbreitete CPLD-Anwendung wäre hier der "GARY" aus dem Amiga 500 Heimcomputer der End-Achtziger. Gabs in Millionenstückzahl, hat wirklich nur simple Adressdekode-ing gemacht und lief unter 10 MHz. Hat sich bis heute kein µC Ersatz dafür gefunden.
https://www.retrosix.wiki/gary-amiga-500
CPLD's werden auch gern als Levelshifter mit Intelligenz eingesetzt, aber die die 5V vertragen werden auch immer weniger.
In den letzten 6/7 Jahren haben sich die bereits erwähnten Lattice vom Geheimtip zum Standard entwickelt, IMHO auch, weil sie Standardinterface wie I2C/SPI auch schon mal als Makrozelle mitbringen. Den Weg dorthin haben andere Hersteller bereitet.
Adressdekode-ing gemacht und lief unter 10 MHz. Hat sich bis heute kein
µC Ersatz dafür gefunden.
Je nachdem wie komplex die Logik ist könnte das auf einem schnellen Controller schon auch gehen, in dieser Größenordnung könnten die Preisverhältnisse aber anders ausfallen.
Wenn man von der Größe (physikalisch und logisch) und der seltsamen
Programmierung (Schaltplan) absieht, sind die GreenPAK von
Silego/Dialog/Renesas recht nett:
Das stimmt, sollte man wirklich ins Auge fassen! Technisch sind sie nett.
Allerdings sieht es Renesas wohl so das sie die Chips fuer dich programmieren und sie dann an dich unter deiner Bezeichnung verkaufen. Es ist auch moeglich das du einige Typen mit einem ihrer Testboards programmierst, aber das machte auf mich alles einen etwas gebastelten Eindruck. Die Teile passen irgendwie schlecht in eine "normale" Firma wo du ein solches Teil auf mehreren Boards im Einsatz hast und selber im Rahmen der Herstellung flasht.
Irgendwie hat Renesas da ein schraeges Mindset.
Mit einem pauschalen "Mikrocontroller ersetz CPLD" sollte man vorsichtig
sein, das stimmt in den wenigsten Fällen.
Das hat keiner hier auch nur ansatzweise gesagt. Sondern "Mikrocontroller ersetzt TTL-Grab mit kHz Zähler"
Ein Beispiel für eine weit verbreitete CPLD-Anwendung wäre hier der
"GARY" aus dem Amiga 500 Heimcomputer der End-Achtziger. Gabs in
Millionenstückzahl, hat wirklich nur simple Adressdekode-ing gemacht
und lief unter 10 MHz. Hat sich bis heute kein µC Ersatz dafür gefunden.
https://www.retrosix.wiki/gary-amiga-500
Meilenweit vom Thema weg. Niemand will ernsthaft Adressdekoder mit einem Controller bauen.
Wie schon gesagt, für mein Projekt wird / werden es jetzt µC auf dem Boards.
Ich hab damals am Kurs / Vorlesung "Hardware Software Codesign" von Reichard und Schwarz teilgenommen. Hardware war von Xilinx ein Virtex-II Pro FPGA auf einem Board von Digilent. Soweit ich mich erinnere, hatte der FPGA einen µCs in Hardware eingebaut (PowerPC), als alternative zum Microblaze in VHDL, der ganz gut Platz fressen konnte.
Wir haben dann in VHDL Hardware "gabaut", welche vom Prozessor gesteuert / verwendet wurde. Wir haben aus den Hardware-Multiplizier mit Akkumulator (MultAdd), etwas mehr als 100, ein FIR Filter gebaut, ein Durchlauf eines Werte durch die gesammte Kette, hat einen Takt (100MHz) gedauert... das war um 2010 schon beeindruckend und mit einem µC nicht machbar.
das war um 2010 schon beeindruckend und mit einem µC nicht machbar.
Ja, ist beeindruckend. Der Preis eines Virtex-II Pro war es auch! Und 2010 war der auch schon wieder übel veraltet, da war schon der Virtex-5 auf dem Markt.
Extrem beindruckend sowohl in Leistung und Preis sind die AMD/Xilinx RF-SoC Chips. Da war ein Virtex-II Pro ja noch ein Schnäppchen.
Aber jetzt vergleichen wir definitv Melonen mit Rosinchen :-)
Wenn man von der Größe (physikalisch und logisch) und der seltsamen
Programmierung (Schaltplan) absieht, sind die GreenPAK von
Silego/Dialog/Renesas recht nett:
Das sind aber nicht die von mir genannten FPGA. Seltsam ist an den ForgeFPGA von renesas eigentlich nichts. Eher recht simpel wenn man die IDE mal mit den Platzhirschen vergleicht.
Was du meinst sind die programmierbaren "Analog-Dinger". Ja, die brauchen wohl Einarbeitung und man muss eigentlich eine fertige Schaltung haben und dann versuchen die dort zu verwenden. Oder so. Ich hab mich damit aber nur ganz kurz beschäftigt.
Was du meinst sind die programmierbaren "Analog-Dinger".
Die Analogdinger koennen aber auch digital und es gibt wohl auch Versionen wo die analoge Funktion fehlt. Die Forge gibt gibt es dann auch noch. Echt verwirrend.
Ich meine auch das ich letztens noch Werbung von irgendjemand mit einer weiteren "MiniFPGA" Serie im Briefkasten hatte. Anscheinend kommt sowas langsam in Mode.
Die Analogdinger koennen aber auch digital und es gibt wohl auch
Versionen wo die analoge Funktion fehlt. Die Forge gibt gibt es dann
auch noch. Echt verwirrend.
Hatte mich vor einigen Wochen bei AMD umgesehen, der kleinste scheint der XC7S6 zu sein, kostet aber zweistellig!
Vor 15 Jahren konnte man noch Spartan 3A erwerben um 5,- das Stück.
Ja, auf Sparflamme. Das ist in Vorbereitung eines nächsten Projekts.
Ich stand vor einem ähnlichen Problem wie der TO.
Ich hätte nur einen Eingang und 4 Ausgänge gebraucht. Und da war mir ein MCHP-FPGA viel zu groß und das WinCUPL zu ... kapier ich nicht.
Also bei den üblichen FPGA-Verdächtigen gesucht und wieder viel zu Mächtiges gefunden.
Dann hab ich den ForgeFPGA gefunden, mir das Board von denen gekauft und was ich machen wollte darauf implementiert. Geht.
Der Schaltplan für die Schaltung ist gezeichnet, eine Platine gibt es nicht, gelötet wurde nicht und bis das alles fertig ist, wird es noch lange dauern.
Also, wenn man will, hab ich nicht wirklich damit gearbeitet.
In einem aktuellen Projekt wird der ForgeFPGA dann als Erweiterung (Schnittstellenerweiterung) eingesetzt. Dann wird er einen Quadraturencoder-Eingang für mehrere Kanäle bilden. Dauert aber auch noch, also nicht drauf warten!
Vor 15 Jahren konnte man noch Spartan 3A erwerben um 5,- das Stück.
Das ist IMHO nicht repräsentativ, falls es überhaupt der Wahrheit entspricht.
So um 2003 hab ich mal für einen Grosshersteller (Abnahme >100k/a an FPGA's)
die Einkaufspreise für Spartan 3/3A im langsamsten speedgrad mit Größenklasse -400 und -1000 recherchiert. Da war nie was mit Preisen unter 10€ eher so um die 15-20 €. (Industriepreis ohne MwSt.)
Ich hatte mal ein Projekt bei einem Hersteller von Basisstationen, da hat Xilinx von Anfang an klar gemacht, dass sie das nicht über den Preis verlieren würden. Das führte dann später auch zu design-ins bei anderen Kunden. Da sind reihenweise die Kinnladen gefallen.
Leider gab's das nie bei Virtexen.
Ich hatte mal ein Projekt bei einem Hersteller von Basisstationen, da
hat Xilinx von Anfang an klar gemacht, dass sie das nicht über den Preis
verlieren würden.
Ich geh mal davon aus, das es dabei nicht um "kleine" IC wie CPLD und Spartan ging,sondern um FPGA's/SOC mit schnellen seriellen Schnittstellen (MGT-TRX ... MultiGigabit -Transceiver) oder gar die mit integerierten AD-Wandler (RFSoC).
Da ist sowieso nichts mit Feilchen um den letzten Cent, dazu sind die Stückzahlen zu klein.
Und ja, wenn man vom Chip-Hersteller als technischer Pionier, Markteinführer angesehen wird, dem andere folgen könnten, versucht der natürlich mit besonderen Konditionen seinen Fuß in den Markt zu bekommen.
Bei dem obenen genannten Beispiel ging es um FPGA in Automotive und einen Zulieferer der Navi/Car-Entertainment-Systeme für drei große Automacher aus .de fabrizierte. Klar das man da bei Xilinx "enge Bande" knüpfen wollte. Aber eben über den Support für die Entwicklung und nicht über den Preis. Da fiel auch oft das Stichwort "organic grow", und Mittel dazu ist eher nicht "Preisschlacht".
Ein Kunde, der Dich nur nimmt, weil du billig bist, runiert nur die Marge die man zur Finanzierung der Firmenzukunft braucht und rennt ohnehin zum nächsten, sobald der mal ein Sonderangebot rausballert.
Bei dem Beispiel "Basisstation" würde mich interessieren, ob "Stromverbrauch des FPGA's" ein wichtiges Argument war ?
Es heisst, da sparen die Entwickler an jedem Watt, weil sich das über den jahrelangen 24/7 Betrieb heftig aufsummiert.