Forum: FPGA, VHDL & Co. Anfänger, welchen CPLD für mein Projekt


von Michael (Gast)


Lesenswert?

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

von Philipp (Gast)


Lesenswert?

Einfach mal den Code schreiben und simulieren
Beim Post Fit zeigt dir der Webpack an wieviel Logikgatter du brauchst

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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...

von Christoph Z. (christophz)


Lesenswert?

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.

von Vanilla (Gast)


Lesenswert?

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...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Vanilla schrieb:
> Der XO2 ist eine Weiterentwicklung des XO mit mehr Features,
> deutlich günstiger wie der XO
Aber auch deutlich langsamer...  :-(

von Lattice User (Gast)


Lesenswert?

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.

von MCUA (Gast)


Lesenswert?

> 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!

von Vanilla (Gast)


Lesenswert?

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

von W.S. (Gast)


Lesenswert?

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.

von Vanilla (Gast)


Lesenswert?

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.

von r1r2r3c1c2 (Gast)


Lesenswert?

Moin,

es gibt doch schon kleine boards für 25€. Da sollte doch auch was für 
dich dabei  sein:

http://www.ebay.de/itm/NEW-FPGA-STARTER-Altera-FPGA-EP1C3T100-Development-Learning-Board-/121137914993?pt=Wissenschaftliche_Ger%C3%A4te&hash=item1c3461e471

Gruß jonas

von Christoph Z. (christophz)


Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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...

: Bearbeitet durch Moderator
von flupsi (Gast)


Lesenswert?

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

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
Noch kein Account? Hier anmelden.