Forum: FPGA, VHDL & Co. Frage zu CPLD Signalen (GTS, GCK etc)


von Marius S. (lupin) Benutzerseite


Lesenswert?

Ich habe einen XC9572XL in VQ64.
Ich habe noch (fast) keine Ahnung von CPLDs und deshalb bin ich beim 
Entwickeln der Schaltung über die GTS, GCK und GSR Pins gestolpert. Kann 
ich diese genau wie alle anderen Pins als Ein- und Ausgang verwenden 
oder sind die irgendwie limitiert auf eine Richtung oder eine 
festgelegte Funktion?

Ich möchte in das CPLD ein 2x10bit zu 20 bit latch programmieren, dieses 
Latch soll über einen Schieberegistereingang neu beschrieben werden 
können und über einen Takteingang hochgezählt werden können (einfach nur 
+1). Und dann noch 3 inverter, aber die verbrauchen ja keine Macrozellen 
habe ich gehört...

Sollte ich dafür irgend ein Signal speziell auf GTS, GCK oder GSR 
setzen?

Passt sowas überhaupt in ein 72 Macrozellen großes CPLD?

von Klaus F. (kfalser)


Lesenswert?

Alle diese Pins sind frei verwendbar, aber sollten für spezielle 
Eingangssignale verwendet werden (wenn nötig).
GCK für das Takt-Signal, also den Oszillator (wichtig!!)
GTS für ein externes Tristate-Enable Signal, also wenn ein Bus-Signal 
von außen bestimmt, daß das CPLD die Daten nun auf den Bus legen darf.
GSR für ein externes, globales Reset-Signal (selten verwendet).

Die Schaltung dürfte in den Baustein passen, auch wenn ein 20 Bit Zähler 
für das CPLD nicht wenig ist. Am besten Du schreibst zuerst das 
Programm, bevor Du die HW machst.

Klaus

von Marius (Gast)


Lesenswert?

Brauche ich für meine einfache schaltung einen Oszilator? Eigentlich 
kann das doch alles asynchron laufen oder?

von Klaus F. (kfalser)


Lesenswert?

Die Resourcen (= FlipFlops) in einem CPLD sind nicht ideal für Deine 
Anwendung, da Du auf 2 Signale reagieren möchtest (Schieben und 
Incrementieren).
Beides getrennt ist trivial, gemeinsam würdest Du FF mit 2 Takteingängen 
brauchen, die es nicht gibt.

Eine Lösung wäre z.B. eine Takt zu verwenden, der schneller ist als die 
Frequenzen am Schiebe- und Increment-Eingang, diese abzutasten und 
auszuwerten.

von Uwe Bonnes (Gast)


Lesenswert?

Wenn es nicht auf die letzte zehntel Nanosekunde ankommt, kann man Takt 
Reset  etc auch ueber "normale" Pins einspeisen. Ab die Verwendung der 
globalen Pins ist sinnvoller.

Ueberleg Dir genau, ob Du ein asynchrones Design willst. Wenn Du nicht 
tausend Sachen bedenkst, ist das der beste Weg, sich ins Knie zu 
schiessen. Besonders, wenn Du noch einen Entwurf mit schaltplan machst. 
Bei FPGA/CPLD kannst Du naemlich bicht davon ausgehen, das ein 
eingezeichnetes Gatter wirklich so realisiert wird, wie Du es zeichnest. 
Damit kommen dann Signale zu frueh oder zu spaet und unter iregndwelchen 
Randbedingungen funltioniert es nicht mehr.

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.