Hallo,
ich brauche für ein kleines Projekt einen kleinen CPLD und kann aber die
größe nur schwer abschätzen: Es Sollen 2 PWM-Signale überwacht werden.
Unteranderem dürfen beide Signale nie gleichzeitig an sein und falls
doch muss eines solange verzögert werden bis das andere auf 0 und eine
kurze totzeit verstrichen ist. Dann gibt es noch ein paar logische
Signale die für Freigaben sind, sodass die PWM-Signale nur durchkommen,
wenn die Freigabesignale auf 1 sind. Hab mir das ganze mal grob
skizziert und ich brauche schon ein paar und/oder Gatter (20-30) und
glieder zur Zeitverzögerung (weis noch nicht wie ich die realisieren
soll und wieviele Gatter ich dafür brauche ), sowie 5-8 FFs.
Dachte da an zb: XC2C128 oder den XC95144XL von Xilinx ?
Erfahrung hab ich leider noch sehr wenig, hab schon mit eim Spartan 3
Board experimentiert aber das ist ja ein FPGA und hat massig platz.
Gruß Michael
Michael schrieb:> und glieder zur Zeitverzögerung
In der programmierbaren Logik ist jede Art der Zeitverzögerung ein
Zähler (naja, von ein paar besonders speziellen Zeiten im ps-Bereich in
besonderen Bausteinkomponenten abgesehen).
> Erfahrung hab ich leider noch sehr wenig, hab schon mit eim Spartan 3> Board experimentiert aber das ist ja ein FPGA und hat massig platz.
Lattice verkauft seine "kleinen" FPGAs auch unter dem Deckmantel CPLD,
um den Umstieg einfacher zu machen. Auf jeden Fall ist ein kleines
Lattice FPGA viel billiger und kann viel mehr als ein großes CPLD...
Michael schrieb:> ich brauche für ein kleines Projekt einen kleinen CPLD [...]> Dachte da an zb: XC2C128 oder den XC95144XL von Xilinx ?
Brauchst du das einmal oder für eine Firma die das nachher in Serie
produziert?
Falls für die Serie, vergiss die Xilinx CPLDs die sind schon so alt,
dass man froh sein kann, die noch kaufen zu können.
Wie Lothar geschrieben hat Lattice für diese Art Kundenanforderung eine
gute Auswahl an Bausteinen (MachXO z. B im TQFP100). Wird bei der Firma
wo ich arbeite in Serie eingesetzt für ähnliche Zwecke wie du
beschrieben hast.
Michael schrieb:> und glieder zur Zeitverzögerung (weis noch nicht wie ich die realisieren> soll und wieviele Gatter ich dafür brauche )
Wie geschrieben wurde, mit Zählern. Damit die Funktionieren brauchst du
einen Takt. Also entweder extra Quarz Oszillator oder Taktausgang vom
Prozessor nutzen.
Christoph Z. schrieb:> Michael schrieb:>> ich brauche für ein kleines Projekt einen kleinen CPLD [...]>> Dachte da an zb: XC2C128 oder den XC95144XL von Xilinx ?>> Brauchst du das einmal oder für eine Firma die das nachher in Serie> produziert?>> Falls für die Serie, vergiss die Xilinx CPLDs die sind schon so alt,> dass man froh sein kann, die noch kaufen zu können.
Hätt ich auch geraten. Die X95xxx Familie wurde vor 14 Jahren von
Philips übernommen (Coolrunner) und waren da schon einige Zeit gelaufen
(Gesamtalter ca. 20Jahre...).
>> Wie Lothar geschrieben hat Lattice für diese Art Kundenanforderung eine> gute Auswahl an Bausteinen (MachXO z. B im TQFP100). Wird bei der Firma> wo ich arbeite in Serie eingesetzt für ähnliche Zwecke wie du> beschrieben hast.
Bitte bei Neudesigns mit dem XO2 beginnen. Der XO2 ist eine
Weiterentwicklung des XO mit mehr Features, deutlich günstiger wie der
XO und wurde am Markt bereits bei Einführung besser aufgenommen als der
XO. Auch hier sind TQFP Gehäuse zu bekommen.
>> Michael schrieb:>> und glieder zur Zeitverzögerung (weis noch nicht wie ich die realisieren>> soll und wieviele Gatter ich dafür brauche )>> Wie geschrieben wurde, mit Zählern. Damit die Funktionieren brauchst du> einen Takt. Also entweder extra Quarz Oszillator oder Taktausgang vom> Prozessor nutzen.
und damit braucht er einige FFs´. Ein Einsatz klassischer AND Term CPLDs
mit einem FF je Term scheidet sinnvoller Weise aus...
Lothar Miller schrieb:> Vanilla schrieb:>> Der XO2 ist eine Weiterentwicklung des XO mit mehr Features,>> deutlich günstiger wie der XO> Aber auch deutlich langsamer... :-(
Ausser bei einfachen Logikfunktionen wird das durch die Features des XO2
mehr als wettgemacht. Der XO hat zum Beispiel keine IO-Register, während
der XO2 durchaus >700 MBit/s Datenrate an einem Pin schafft.
Aber den XO gibt es im Gegensatz zum XO2 auch als Automotive Version.
> Falls für die Serie, vergiss die Xilinx CPLDs die sind schon so alt,> dass man froh sein kann, die noch kaufen zu können.
Ja, aber etwas was so sehr geht, wird ws. noch Jahre weiter erhältlich
sein.
Auch Lat. hat noch norm. PLDs (falls es reicht)
>Die X95xxx Familie wurde vor 14 Jahren von>Philips übernommen (Coolrunner) und waren da schon einige Zeit gelaufen
Xil. hat vor Jahren Coolrunner aufgenommen,
aber XC95xxx sind doch keine Coolrunner!
MCUA schrieb:>> Falls für die Serie, vergiss die Xilinx CPLDs die sind schon so alt,>> dass man froh sein kann, die noch kaufen zu können.> Ja, aber etwas was so sehr geht, wird ws. noch Jahre weiter erhältlich> sein.> Auch Lat. hat noch norm. PLDs (falls es reicht)>>>Die X95xxx Familie wurde vor 14 Jahren von>>Philips übernommen (Coolrunner) und waren da schon einige Zeit gelaufen> Xil. hat vor Jahren Coolrunner aufgenommen,> aber XC95xxx sind doch keine Coolrunner!
Sorry stimmt, da ist meine Erinnerung Amok gelaufen...
Aber das für den TO vielleicht wichtige stimmt, die 95xxx sind ebenfalls
rund 20Jahre++.
und von Ihrer Registerdichte zu heutigen Masstäben jenseits von Gut und
Böse..
Gruß Vanilla
Michael schrieb:> Dachte da an zb: XC2C128 oder den XC95144XL von Xilinx ?
Dürfte ausreichen nach meinem Gefühl. Wahrscheinlich reicht ein XC2C64
oder ein XC9572 auch aus.
Du kannst ne grobe Abschätzung machen: pro Flipflop eine Makrozelle und
pro kompletter Verknüpfung die nicht an einen Flipflop geht sondern an
einen Ausgang ebenfalls eine Makrozelle. Das trifft's eigentlich ganz
passabel. Kleines Beispiel meinerseits, damit du ein Gefühl für kriegst:
Eine HiColor TFT-Display-Ansteuerung mit externem 256K x 16 RAM an einem
32 Bit µC mit H-Counter, V-Counter, Pixelcounter, 16 Bit
Auffangregister, 16 Bit CPU-Interface-Register und so weiter paßt
problemlos in ein XC95144XL hinein und es sind (soweit ich mich
erinnere) noch rund 20 MC frei.
Ansonsten kannst du, wenn es mal bloß ne primitive Verzögerung sein
soll, zwei Portpins nehmen und dort die übliche bekannte analoge
Verzögerung per R/C-Glied machen. Das Gerede der Anderen hier von
Zählerketten usw. ist Mumpitz, solange man nicht weiß, was für
Verzögerungen zur Debatte stehen.
Und was an die Anderen hier: macht den TO mit euren Vorstellungen von
"Größe" nicht wirr. Er will doch gar keinen Microblaze implementieren -
falls ihr das noch nicht gemerkt habt über eurem Stammtischgerede.
Ein CPLD ist ne knuffige Sache, ist überschaubar, ist direkt ab VCC
arbeitsfähig und die 95er sind auch noch 5V tolerant.
W.S.
W.S. schrieb:> Michael schrieb:>> Dachte da an zb: XC2C128 oder den XC95144XL von Xilinx ?>> Dürfte ausreichen nach meinem Gefühl. Wahrscheinlich reicht ein XC2C64> oder ein XC9572 auch aus.>> Du kannst ne grobe Abschätzung machen: pro Flipflop eine Makrozelle und> pro kompletter Verknüpfung die nicht an einen Flipflop geht sondern an> einen Ausgang ebenfalls eine Makrozelle. Das trifft's eigentlich ganz> passabel. Kleines Beispiel meinerseits, damit du ein Gefühl für kriegst:> Eine HiColor TFT-Display-Ansteuerung mit externem 256K x 16 RAM an einem> 32 Bit µC mit H-Counter, V-Counter, Pixelcounter, 16 Bit> Auffangregister, 16 Bit CPU-Interface-Register und so weiter paßt> problemlos in ein XC95144XL hinein und es sind (soweit ich mich> erinnere) noch rund 20 MC frei.>> Ansonsten kannst du, wenn es mal bloß ne primitive Verzögerung sein> soll, zwei Portpins nehmen und dort die übliche bekannte analoge> Verzögerung per R/C-Glied machen. Das Gerede der Anderen hier von> Zählerketten usw. ist Mumpitz, solange man nicht weiß, was für> Verzögerungen zur Debatte stehen.>> Und was an die Anderen hier: macht den TO mit euren Vorstellungen von> "Größe" nicht wirr. Er will doch gar keinen Microblaze implementieren -> falls ihr das noch nicht gemerkt habt über eurem Stammtischgerede.>> Ein CPLD ist ne knuffige Sache, ist überschaubar, ist direkt ab VCC> arbeitsfähig und die 95er sind auch noch 5V tolerant.>> W.S.
Hallo Michael,
im Prinzip hast Du recht.
Ich hab rund 1984 mit PALs begonnen zu arbeiten, was ich damals mit den
zur Verfügug stehenden maximal 8 Registern gebastelt hab würd ich wohl
heute nru noch mit 80 Plus FFs bewerkstelligen und das in vielen Fällen
eine deutlich größere Latenz bekommen. ABER
meiner Meinung macht es keinen Sinn mehr auf einem veralteten Baustein
mit veralteten Tools mit einem in Kürze nicht mehr supporteten OS
loszuarbeiten, oder welches OS wird von der letzten XC95 unterstützenden
ISE seinerseits supported?
Dann noch eine veralteten Dialekt (ABEL?) oder gar in die grafische
Programmierung gesprungen und fertig ist die Nische...
Kann da wirklich ein Forenteilnehmer dazu raten, die nächsten Rückfragen
kommen bestimmt... Wer (kann) dann Support leisten?
Genuso analoge Delays, klar geht das, da sind wir aber im falschen
(Unter)-Forum. Hier wird digital gesprochen.
Die 5V Toleranz wollte ich anfänglich auch schreiben, weil ich gerade
Angst habe dass das Begehrlichkeiten weckt.
W.S. schrieb:> Und was an die Anderen hier: macht den TO mit euren Vorstellungen von> "Größe" nicht wirr. Er will doch gar keinen Microblaze implementieren -> falls ihr das noch nicht gemerkt habt über eurem Stammtischgerede.
Machen wir ja auch nicht.
Der kleinste MachXO2 hat auch nur 256 LUTs und kostet bei 100 Stück
ziemlich genau gleich viel wie der XC2C64.
W.S. schrieb:> Ein CPLD ist ne knuffige Sache, ist überschaubar, ist direkt ab VCC> arbeitsfähig und die 95er sind auch noch 5V tolerant.
Die MachXO/XO2 sind auch direkt ab 3,3 V betriebsfähig.
Falls du 5 V Toleranz willst, gehst du zu den 4000er von Lattice die
auch noch aktiv Support haben.
Technisch nichts gegen deine CPLDs, leider ist es so, dass sich Xilinx
seit langer Zeit nicht mehr für dieses Kundensegment interessiert. Darum
habe ich auch als erstes gefragt, ob das für ein mal zu Hause oder für
ein neues Seriendesign ist.
W.S. schrieb:> Das Gerede der Anderen hier von Zählerketten usw. ist Mumpitz,
Ich würde eher sagen: 99,95% der Verzögerungen in heutiger
Digitaltechnik werden mit Zählern gemacht. Welche Empfehlung liegt da
also nahe?
> solange man nicht weiß, was für Verzögerungen zur Debatte stehen.
Wer kann da Abhilfe schaffen?
> Ein CPLD ist ne knuffige Sache, ist überschaubar, ist direkt ab VCC> arbeitsfähig
Ach, die Ladezeit. Auch die 95er CPLDS sind SRAM-CPLDs. Sie werden nur
beim Startup komplett parallel geladen. Ein MachXO brauch auch nur
wenige ms zum Laden, da ist noch nicht mal der Quarz vom uC richtig
angeschwungen...
> und die 95er sind auch noch 5V tolerant.
Wer hat mit 5V angefangen? Michael wars nicht, der macht sogar schon mit
FPGAs rum...
> und die 95er sind ...
... elende Heizer vor dem Herrn...
Jetzt aber mal Butter bei die Fische:
Michael schrieb:> Unteranderem dürfen beide Signale nie gleichzeitig an sein und falls> doch muss eines solange verzögert werden
Dann müssen also beide Signale erst mal verzögert werden. Denn wenn die
Signale beide gleichzeitig "an" sind (was ist "an" überhaupt), wäre es
ja schon zu spät :-o
> Hab mir das ganze mal grob skizziert
Zeig doch mal die Signale und die Skizze...
Spartan3 gibts auch mit integriertem Flash (kein externer Bootspeicher
nötig). Sehr einfach zu verwenden, da praktisch kaum externe Bauteile
nötig.
zb. der XC3S50AN