www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Design per JTAG -> OK, Design vom Platform Flash -> kaputt?


Autor: Andreas G. (andy1988)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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"

Autor: Andreas G. (andy1988)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andreas G. (andy1988)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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-Testau...), 
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-...

> 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

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.