mikrocontroller.net

Forum: FPGA, VHDL & Co. Xilinx und die Resets


Autor: Uli W. (uliw2008)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich bin etwas irritiert über eine aussage, eines xilinxs fae der mir 
verklickern wollte, dass man bei xilinx fpgas keinen reset mehr 
benötigt, weil alle ffs in wirklichkeit so oder so auf null resetten.

nun weiss ich, dass die resets eigentlich presets sind, die beim ersten 
laden eingelesen werden und von altera fpgas ist mir bekannt, dass diese 
unter umständen (oder immer ?) negative resets auf 1 mit invertern 
realsieren.

wie verhält sich das bei xilinx und wo ist deren vorteil?

so wie ich das sehe, haben doch alteras auch die option passend power up 
zu resetten und sind damit gleich gestellt, bzw sie können mit einem 
preset geladen werden.

????

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

Bewertung
0 lesenswert
nicht lesenswert
Lies mal ab hier:
Beitrag "Re: Reset für mehrere Komponenten"
Und hier:
Beitrag "Re: Hardware mit VHDL "richtig" beschreiben."

EDIT:
> so wie ich das sehe, haben doch alteras auch die option passend
> power up zu resetten und sind damit gleich gestellt, bzw sie können
> mit einem preset geladen werden.
SRAM-basierte FPGAs werden sowieso beim Power-Up aus einem Config-Prom 
"geladen". Also wird jedes FF auf einen definierten Zustand gesetzt. Das 
ist der Power-Up-Reset.

Ein funktioneller, ablaufabhängiger Reset z.B. einer SM muß natürlich 
trotzdem von Hand einprogrammiert werden. Aber dort sollte dann sowieso 
alles synchron ablaufen.

Autor: Uli W. (uliw2008)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist es aber dann so, dass das FPGA wirklich schonw ährend des Ladens die 
Werte in die Flipflopzellen eingespielt bekommt? Eigentlich geht das ja 
nicht, sondern es muss sicher mindestens ein clock durchgeführt werden, 
der die Zellen aus einer Vorladezelle lädt.

?

Autor: Jan M. (mueschel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Uli W. wrote:
> Ist es aber dann so, dass das FPGA wirklich schonw ährend des Ladens die
> Werte in die Flipflopzellen eingespielt bekommt?

Ja das ist so. Aber wie der interne Ablauf genau ist, darüber werden dir 
die Hersteller sicher nichts erzählen...

Autor: Xenu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ist es aber dann so, dass das FPGA wirklich schonw ährend des Ladens die
>Werte in die Flipflopzellen eingespielt bekommt? Eigentlich geht das ja
>nicht, sondern es muss sicher mindestens ein clock durchgeführt werden,
>der die Zellen aus einer Vorladezelle lädt.


Die Flip-Flop-Werte beim Initialisieren werden nicht direkt 
"eingespielt" (ich nehme an, Du meinst eingetaktet), sondern die 
Verdrahtung der asychronen (Set/)Reset-Logik, d.h. ob das Flip-Flop beim 
Reset auf 0 oder 1 geht. Nach der Initialisierung wird ein Reset aller 
Flip-Flops durchgeführt, und dadurch erhalten sie ihre Anfangswerte.

Schau mal in den Datenblättern und im Spartan-3-Handbuch, da steht 
einiges dazu drin.

Autor: Argo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> sondern die Verdrahtung der asychronen (Set/)Reset-Logik,
Das ist aber jetzt etwas anders, als der Synchrone Reset, oder?

> von altera fpgas ist mir bekannt, dass diese unter umständen
> negative resets auf 1 mit invertern realsieren
Ist das so?

Das hat mir auch mal jemand erzählt, das in Wirklichkeit immer auf Null 
resettet wird und wenn jemand eine 1 will, einfach die Funktion der 
Zelle invertiert wird, also Inverter ein Inverter davor kommt und die 
Synthese das nur nicht nach Aussen zeigt. Ich nehme an, dass man dann 
auch einen Inverter dahinter braucht.

Autor: Eric (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

hierzu gibt es ein nahrhaftes White-paper von Xilinx:
http://www.xilinx.com/support/documentation/white_...

Gruß
Eric

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

Bewertung
0 lesenswert
nicht lesenswert
> Ist es aber dann so, dass das FPGA wirklich schonw ährend des Ladens
> die Werte in die Flipflopzellen eingespielt bekommt?
Ja, alle 16 FFs in einer LUT, die FFs der SLices und die ganze 
Verdrahtung (MUX, Interconnect ...) wird beim Power-Up geladen, das hat 
aber nichts mit den Reset-Bedingungen und/oder dem Reset-Netzwerk zu 
tun. Beim Power-Up werden die Daten aus der Initialisierung eingesetzt:
signal cnt : std_logic_vector(3 downto 0) := "1010";

Beim Reset (der eigentlich selten benötigt wird, ausser für die 
Simulation oder für einen Taster für den Entwickler) werden die Zustände 
aus der Reset-Bedingung verwendet:
  
   if (reset='1') then
      cnt <= "0001";
   elsif rising_edge(clk) ....

Die FFs im FPGA haben Set- und Reset-Eingänge (synchron)
bzw. Preset- und Clear-Eingänge (asynchron), da braucht es nur eine 
entsprechende Verdrahtung (bei Xilinx), aber keinen Inverter.

> Ich nehme an ...
Das ist die falsche Vorgehensweise :-/
Wozu hat man denn Datenblätter erfunden?

Autor: Xenu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ja, alle 16 FFs in einer LUT, die FFs der SLices und die ganze
>Verdrahtung (MUX, Interconnect ...) wird beim Power-Up geladen, das hat
>aber nichts mit den Reset-Bedingungen und/oder dem Reset-Netzwerk zu
>tun.

Die LUTs werden geladen, aber die tatsächlichen Flip-Flops werden nicht 
geladen, sondern bei der (bzw. nachher) über das globale 
Setz-Rücksetznetzwerk (GSR) auf 0 oder 1 gesetzt. Das hat also sehr wohl 
was mit einem Reset-Netzwerk zu tun.

Siehe z.B. das aktuelle Datenblatt der Spartan-3s, Seite 52:

"The end of the memory-clearing phase is signaled by the INIT_B pin 
going High. At this point, the configuration data is written to the 
FPGA. The FPGA pulses the Global Set/Reset (GSR) signal at the end of 
configuration, resetting all flip-flops. The completion of the entire 
process is signaled by the DONE pin going High."

Die FFs werden also sehr wohl asynchron zurückgesetzt. Das wird aber als 
Teil der Initialisierung angesehen, weil es eben nach dem Power-Up 
passiert, egal ob Du noch zusätzlich selber irgendwelche asynchronen 
Resets einbaust oder nicht.

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.