mikrocontroller.net

Forum: FPGA, VHDL & Co. Synchronitäts-Probleme mit CPLD?


Autor: Erik (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forum

Ich habe vor längerer Zeit mit ISE einmal das Blockschalt-Schema im 
Anhang gezeichnet. Das ganze Kompiliert und in ein XC9572 gebrannt. Es 
hat auf Anhieb funktioniert.

Vor ein paar Tagen habe ich ein paar neue XC9872 gekauft versucht 
dasselbe Projekt wieder zu brennen. Das Brennen und auslesen der CPLD 
funktioniert fehlerfrei, die gewünschte Funktion jedoch nicht.

Es muss wohl am Projekt liegen. Irgendwie gibt es kritische 
Laufzeitunterschiede im CPLD. Kann es sein, dass die Daten bei diesem 
einfachen Design intern nicht synchron anliegen und das Probleme 
verursacht?

Wie löse ich das Problem am einfachsten?

Es gibt noch ein weiteres Projekt namens "Ausgang" hat es dort evtl. die 
gleichen Probleme, die vielleicht einmal auftauchen könnten?
Die Datei poste ich beim nächsten Beitrag...

Ich wäre dankbar, wenn sich das jemnand mal anschauen und mir Tipps 
geben könnte.

Soll ich weitere Dateien anhängen?


Ich muss gestehen, ich habe nicht wahnsinnig viel Ahnung vom ISE und 
CPLD's. Ich habe es vor ca. 2 Jahren mal ausprobiert und es hat mit den 
beiden Schaltungen "Eingang" & "Ausgang" auf Anhieb funktioniert, was 
mich damals entzückte. Leider kommen jetzt scheinbar die Probleme...

Gruss, erik

Autor: Erik (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier noch das Schema des Projektes "Ausgang"

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Erik (Gast)

>Vor ein paar Tagen habe ich ein paar neue XC9872 gekauft versucht
>dasselbe Projekt wieder zu brennen. Das Brennen und auslesen der CPLD
>funktioniert fehlerfrei, die gewünschte Funktion jedoch nicht.

Wie äussert sich der Fehler?

>Es muss wohl am Projekt liegen. Irgendwie gibt es kritische
>Laufzeitunterschiede im CPLD. Kann es sein, dass die Daten bei diesem
>einfachen Design intern nicht synchron anliegen und das Probleme
>verursacht?

Nöö, zu 99,99999% ist deine Entwurtfsmethode falsch.

>Wie löse ich das Problem am einfachsten?

Welches Problem? Was geht denn nicht?

Wenn ich dein Projekt Eingang anschaue, dann wird mir schon ein wenig 
mulmig. Da kann man sich ggf. "nette" Glitches auf das GATE Signal 
holen. Merke: Kombinatorische Takte/Gate Signale sind böse.

http://www.mikrocontroller.net/articles/Taktung_FPGA/CPLD

>Es gibt noch ein weiteres Projekt namens "Ausgang" hat es dort evtl. die
>gleichen Probleme, die vielleicht einmal auftauchen könnten?

Nöö, keine Takte bzw. Latchsignale.

>mich damals entzückte. Leider kommen jetzt scheinbar die Probleme...

Jaja, die Leichen im Keller fangen an zu modern . . . ;-)

MFG
Falk

Autor: Erik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Falk

Danke für deine schnelle Antwort.

Klar liegt es an meiner Entwurfsmethode, das meinte ich :)

Fehlerbeschreibung "Eingang":

Wenn ich den CPLD ansteuere (Adressen, DDR, CS) kommen falsche Daten. 
Das was in den CPLD rein geht an Daten (Werte am Latch), kommt oft 
falsch raus am Datenbus.

Beim "Ausgang" sind bis jetzt keine Fehler aufgetaucht. Erkennst du dort 
auch Probleme?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Erik (Gast)

>Wenn ich den CPLD ansteuere (Adressen, DDR, CS) kommen falsche Daten.
>Das was in den CPLD rein geht an Daten (Werte am Latch), kommt oft
>falsch raus am Datenbus.

Könnten Glitches sein.

>Beim "Ausgang" sind bis jetzt keine Fehler aufgetaucht. Erkennst du dort
>auch Probleme?

Nein.

MFG
Falk

Autor: Erik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Falk, dann brauche ich mir beim "Ausgang" keine Sorgen zu machen 
:)

Was würdest du nun tun, wie würdest du den "Eingang" verbessern?
Ich habe deinen verlinkten Artikel studiert, weiss jedoch nicht wie ich 
das umsetzen / berücksichtigen soll.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Erik (Gast)

>Danke Falk, dann brauche ich mir beim "Ausgang" keine Sorgen zu machen
>:)

Ähh Moment. Da hab ich was falsch verstanden!

>Was würdest du nun tun, wie würdest du den "Eingang" verbessern?

DIE macht Probleme? Eingang.pdf? Ich dachte Ausgangg.pdf. Merkwürdig.

>Ich habe deinen verlinkten Artikel studiert, weiss jedoch nicht wie ich
>das umsetzen / berücksichtigen soll.

Bei Ausgang.pdf hätte ich gesagt, dass aus der Dekodierung von CS und 
der Adresse ein CE (clock enable) Signal für die Latches/FlipFlops 
generiert werden muss. Das verbleibende DDR Signal wird dann al 
Takt/Gate enable verwendet.

MFG
Falk

Autor: Fly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Falk

Jetzt bin ich noch mehr verwirrt. Ich habe primär Probleme mit dem 
"Eingang.pdf".

Kannst du  mir dazu auch noch Tips geben?

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Lösung des Problems besteht darin, kombinatorische Verknüpfungen 
mehrerer Signale per Flip-Flop über einen gemeinsamen Takt zu 
synchronisieren.
Ich kenne jetzt das XC9872 zwar nicht, aber FF's sollten in CPLD's 
massenhaft drin sein

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Fly (Gast)

>Jetzt bin ich noch mehr verwirrt. Ich habe primär Probleme mit dem
>"Eingang.pdf".

>Kannst du  mir dazu auch noch Tips geben?

Naja, die Schaltung ist so eigentlich OK. Es ist ja nur ein einfacher 
Dekoder. Wenn die Signale am Eingang stabil anliegen, kommt das 
gewünschte Datum auf dem Datenbus raus. Wenn CS, DDR oder die Adressen 
nicht zucken, wenn die CPU dewn Datenbus einliest sollte es da keine 
Probleme geben.

MFG
falk

Autor: Erik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für Eure Inputs!

Sorry das ich unter 2 Namen poste, ich arbeite an 2 PC's, am einten war 
mein früheriger Name noch eingetragen.

Ich werde mal versuchen genauer herauszufinden woran es liegen könnte 
und etwas experimentieren.
Könnt Ihr mir sagen, wie ich einen Oszillator im CPLD hinkriege? Gibt es 
Funktionen / Tricks, wie man ohne zusätzliche, externe Bauteile einen 
Oszillator hinbekommt?

Grüsse, erik

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Erik (Gast)

>Könnt Ihr mir sagen, wie ich einen Oszillator im CPLD hinkriege?

Zuverlässig gar nicht.

> Gibt es
>Funktionen / Tricks, wie man ohne zusätzliche, externe Bauteile einen
>Oszillator hinbekommt?

Nicht wirklich. Ein Ringoszillator ist zwar machbar, aber nicht 
empfehlensswert.

MFG
Falk

Autor: Erik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem ist scheinbar "gelöst".
Wie bereits erwähnt, funktionierte das Design ca. 2 Jahre auf ca. 50 
CPLD's. Mit einer neu bestellten Stange XC9572 funktionierte es nicht 
mehr.

Das Design wurde mit ISE 6 oder 7? entwickelt. Nun wurde die neueste ISE 
geladen und installiert, das vorhandene Design importiert, automatisch 
auf das neue ISE aktualisiert, kompiliert und es läuft wieder 
fehlerfrei!

Ich kann es nicht nachvollziehen. Kann es sein, dass die bei der 
Produktion der XC9572 etwas geändert haben?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Erik (Gast)

>Ich kann es nicht nachvollziehen. Kann es sein, dass die bei der
>Produktion der XC9572 etwas geändert haben?

Glaub ich nicht. Hast du auch nicht aus versehen die XL Typen erwischt?

MFG
Falk

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.