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