www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Power-Up State von FFs


Autor: Matthias F. (flint)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

mir ist mal wieder was nicht klar und zwar geht es um den Power-Up State 
der FFs im FPGA und auch darüber hinaus. Meine Unklarheiten sind:

1. Wird allen FFs bei Synthese ein definierter Power-Up State 
zugewiesen?

2. Wenn ja, nehmen die Synthesetools da einfach LOW oder schauen sie 
auch darauf, was der Benutzer für einen Reset-Wert für die FFs vorsieht 
(das fände ich eigentlich ziemlich clever)? Es geht jetzt hier nicht um 
die Signale, die schon bei der Deklaration einen Initialisierungswert 
zugewiesen bekommen sondern die, die so einen Wert eben nicht bekommen.

3. Wenn man über den Tellerrand der FPGA-Welt zb zu den ASICs schaut, da 
wird ja keine Konfiguration geladen und nach dem Einschalten sind die 
FFs wohl in einem undefinierten Zustand (oder?). Kann es da nicht zu 
Problemen kommen wie zb ein CMOS-Transistorpaar kommt in einem 
ungünstigen Spannungsbereich hoch und reißt die Schaltung in die 
Metastabilität oder zieht so viel Strom, dass das Ganze sich erhitzt und 
evtl Schaden nimmt?

Danke für alle (halbwegs sinnvollen ;) ) Antworten,

mfg
Matthias

Autor: Jan M. (mueschel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias F. wrote:
> 1. Wird allen FFs bei Synthese ein definierter Power-Up State
> zugewiesen?
Bei SRAM-basierten FPGA ja.

> 2. Wenn ja, nehmen die Synthesetools da einfach LOW oder schauen sie
> auch darauf, was der Benutzer für einen Reset-Wert für die FFs vorsieht
> (das fände ich eigentlich ziemlich clever)?
Ich kenne kein Tool, dass die Reset-Werte zur Initialisierung benutzt. 
Die Erkennung derselbigen waere fuer das Tool auch nur mit einem recht 
hohen Aufwand moeglich. Und wer sagt, dass der Reset am Anfang 
stattfindet?

> Es geht jetzt hier nicht um
> die Signale, die schon bei der Deklaration einen Initialisierungswert
> zugewiesen bekommen sondern die, die so einen Wert eben nicht bekommen.
Auch das wird von den Tools nicht beachtet bei der Synthese. Nur in der 
Simulation spielt die Initialisierung bei der Deklaration eine Rolle.

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Es geht jetzt hier nicht um
>> die Signale, die schon bei der Deklaration einen Initialisierungswert
>> zugewiesen bekommen sondern die, die so einen Wert eben nicht bekommen.

>Auch das wird von den Tools nicht beachtet bei der Synthese. Nur in der
>Simulation spielt die Initialisierung bei der Deklaration eine Rolle.

Ist (zumindest bei Xilinx) schon sein längerer Zeit nicht mehr wahr.
Die Synthese schafft es, die VHDL Initialisierungswerte in die Power-Up 
Werte umzuwandeln.

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

Bewertung
0 lesenswert
nicht lesenswert
Matthias F. wrote:
> Wird allen FFs bei Synthese ein definierter Power-Up State zugewiesen?
Ja, bei SRAM-FPGAs.
Ein FPGA wird beim Power-UP initialisiert (zwischenzeitlich übrigens 
auch CPLDs), und damit werden alle Register auf definierte Werte 
gesetzt. Früher war das einfach '0'.
Heute kann man der Synthese Defaultwerte angeben (Achtung: bei 
Lattice-FPGAs abhängig vom Synthesetool, bei der freien Toolchain klappt 
das [noch] nicht).
Actel tanzt aus der Reihe, weil diese FPGAs nicht SRAM-Basiert sind.

> was der Benutzer für einen Reset-Wert...
Diese Initialisierung hat aber nichts mit dem berühmten Reset-Knopf zu 
tun.
Wenn da also irgendein Reset-Code eingebaut ist, muss da nicht zwingend 
das selbe bewirken wie ein Power-UP.

> ein CMOS-Transistorpaar kommt in einem ungünstigen Spannungsbereich hoch
> und reißt die Schaltung in die Metastabilität oder zieht so viel Strom...
Das Verhalten von ASICs beim Power-UP dürfte unter Kontrolle sein. Ein 
Prozessor, ein Ram, ein uC... ist schliesslich auch nichts anderes als 
ein ASIC.

@  Jan M. (mueschel)
> Auch das wird von den Tools nicht beachtet bei der Synthese.
> Nur in der Simulation spielt die Initialisierung
> bei der Deklaration eine Rolle.
Falsch. Xilinx kann das auch in der Synthese.

Autor: MW (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei ASICs muss man schon dafür sorgen, dass beim einschalten ein 
definierter Anfangszustand entsteht. Eine Möglichkeit wären zum Beispiel 
Pull-Down/Up-Widerstände an den FSM-FFs.

Autor: Matthias F. (flint)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klaus Falser wrote:
>>> Es geht jetzt hier nicht um
>>> die Signale, die schon bei der Deklaration einen Initialisierungswert
>>> zugewiesen bekommen sondern die, die so einen Wert eben nicht bekommen.
>
>>Auch das wird von den Tools nicht beachtet bei der Synthese. Nur in der
>>Simulation spielt die Initialisierung bei der Deklaration eine Rolle.
>
> Ist (zumindest bei Xilinx) schon sein längerer Zeit nicht mehr wahr.
> Die Synthese schafft es, die VHDL Initialisierungswerte in die Power-Up
> Werte umzuwandeln.


Und wenn es keinen Initialisierungswert findet, nimmt es einfach einen 
Defaultwert (vmtl. LOW)?


MW wrote:
> Bei ASICs muss man schon dafür sorgen, dass beim einschalten ein
> definierter Anfangszustand entsteht. Eine Möglichkeit wären zum Beispiel
> Pull-Down/Up-Widerstände an den FSM-FFs.

Hmm, das bedeutet doch ganz ordentlichen zusätzlichen HW-Aufwand 
(=Platz), wenn ich zu jedem FF noch einen Pull-Down/Up dazubauen muss. 
Wird das wirklich so gemacht?

mfg
Matthias

Autor: Mathi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> MW wrote:
>> Bei ASICs muss man schon dafür sorgen, dass beim einschalten ein
>> definierter Anfangszustand entsteht. Eine Möglichkeit wären zum Beispiel
>> Pull-Down/Up-Widerstände an den FSM-FFs.

> Hmm, das bedeutet doch ganz ordentlichen zusätzlichen HW-Aufwand
> (=Platz), wenn ich zu jedem FF noch einen Pull-Down/Up dazubauen muss.
> Wird das wirklich so gemacht?

Gewöhnlich nicht. Das System wird so aufgebaut das es von selber aus 
einem undefinierten in einen definierten übergeht. Um das zu überprüfen 
werden extra Analysen für das Power-up bzw. auch Reset-Verhalten 
gemacht.
Siehe: Comprehensive Functional Verification: The Complete Industry 
Cycle von
Wile, Goss & Roessner

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.