Frage zu CPLD Signalen (GTS, GCK etc)

OP Persönliche Seite #552121
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?
#552166
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
#552252
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.
Gast #552362
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.