Design per JTAG -> OK, Design vom Platform Flash -> kaputt?

OP #1565070
Lesenswert?

Hallo,
Ich bastele grade fröhlig mit meinem Spartan 3AN Board rum. Da man, wenn 
man sein Design auf dem Platform Flash hat, wunderbar Reset drücken 
kann, um mehrere male hintereinander bequem und vor allem schnell 
Initialisierungssequenzen testen kann, ob sie immer zuverlässig 
funktionieren oder nur in 50% der Fälle, habe ich mein Design auch mal 
da draufgeschoben.

Das lustige ist jetzt, dass das Design per JTAG wunderbar funktioniert. 
Ich sehe 2 Zeilen Text auf meinem Character LCD.
Lasse ich das Teil vom Platform Flash aus konfigurieren, sehe ich nur 
die erste Zeile, es funktioniert also nicht.

Ich habe peinlich genau darauf geachtet, dass ich das mcs-File auch aus 
dem richtigen bit-File generiere. Impact verifiziert auch den Inhalt des 
Flashs und sagt mir alles sei in Ordnung.

Ich hab auch einfach mal den Reset-Button gehalten, dem Board Strom 
gegeben und dann nach einigen Sekunden den Button erst losgelassen, um 
mal "JTAG-ähnliche Bedingungen" zu testen. Selbes Resultat, Display 
zeigt nur die erste Zeile an. Diese allerdings richtig.

Was kann das sein? Hat das schon mal jemand gehabt?
Moderator (Firma: Titel) Persönliche Seite #1565116
Lesenswert?

> Was kann das sein?
Da würde ich an deiner Stelle mal die asynchronen Resets in synchrone 
umbauen...
Denn anerkannterweise muß jedes externe asynchrone Signal vor der 
Verwendung einsynchronisiert werden. Urigerweise (und wahrscheinlich, 
weil es so in fast jedem Buch steht) machen das gerade beim Reset (dem 
asynchronsten Signal schlechthin) die wenigsten.   :-o

> Hat das schon mal jemand gehabt?
Ja. Der kritische Zeitpunkt schlechthin ist das Verlassen des 
Resetzustands wie im Beitrag "Re: Reset für mehrere Komponenten" 
beschreiben.
Zum Thema Reset allgemein lies mal den 
Beitrag "Xilinx und die Resets"
OP #1565925
Lesenswert?

Verstehe ich nicht ganz.
Ich fasse den Reset ja normalerweise gar nicht an. Wie kann er dann das 
Verhalten beinflussen? Zumal es ja per JTAG geht.

Worin genau liegen denn die Unterschiede zwischen der Konfiguration per 
JTAG und Platform Flash?
Beide Möglichkeiten müssten doch diesen Startup-Reset durchführen. Der 
hat ja erstmal nichts mit meinem selbstgebastelten Reset-Signal zu tun.
OP #1566359
Lesenswert?

Jippieh! Es funktioniert. Danke.
Ich habe deine Tipps mal befolgt und das Reset-Signal mit einem deinem 
Debouncer von deiner Webseite entprellt und somit ja auch mit dem Takt 
synchronisiert, richtig?

Was ich nur nicht verstehe ist, wieso das jetzt funktioniert.
Klar, wenn ich die Flip Flops setze, muss ich ja abwarten, bis das 
Signal stabil am Eingang anliegt (Setup-Time) und dann abwarten, bis das 
Flip Flop das auch gerafft hat (Hold-Time), richtig? Diese Zeiten werde 
ich mit dem asynchronen Reset wohl verletzt haben. Somit waren die Flip 
Flops in einem undefinierten Zustand.

Aber warum hat es per JTAG funktioniert und nicht vom Platform Flash?
Moderator (Firma: Titel) Persönliche Seite #1566526
Lesenswert?

> ... und somit ja auch mit dem Takt synchronisiert, richtig?
Ja, richtig...

> Was ich nur nicht verstehe ist, wieso das jetzt funktioniert.
> Diese Zeiten werde ich mit dem asynchronen Reset wohl verletzt haben.
> Somit waren die Flip Flops in einem undefinierten Zustand.
Metastabilität war vermutlich nicht das Problem (die würde sehr sehr 
viel seltener auftreten: 
http://www.lothar-miller.de/s9y/archives/62-Testaufbau-Metastabilitaet.html), 
sondern eher, dass einige FFs noch einen aktiven Reset sehen, andere 
bereits einen inaktiven. Da kommt die beste Statemachine 
durcheinander... ;-)
Hier der passende Hintergrund: 
http://www.lothar-miller.de/s9y/archives/64-State-Machine-mit-asynchronem-Eingang.html

> Aber warum hat es per JTAG funktioniert und nicht vom Platform Flash?
Du hast dabei geringfügig andere interne Abläufe. Das scheint bei dir 
ausgereicht zu haben...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren