Forum: FPGA, VHDL & Co. Analog zum Taktnetz ein Resetnetz vorhanden??


von guest (Gast)


Lesenswert?

Hallo,

mein Eval-Board hat einen Resetbutton den ich bisher auch wie 
selbstverständlich nutze. Allerdings frag ich mich jetzt wie 
sichergestellt wird, dass sämtliche FFs zur selben Zeit das Resetsignal 
erhalten.

Auf meinem Board ist ein Spartan 3AN untergebracht wobei der Resetbutton 
allerdings auf einen I/O (H4)laut Datenblatt geführt wird.
Bei den clocks hingegen steht GCLK (C10) anstatt I/O.

Das würde doch bedeuten das der Reset bei jeder Synthese nach Lust und 
Laune "irgendwie" zu den FFs geführt wird oder seh ich da was falsch??

von ich (Gast)


Lesenswert?

richtig.
Und wenn dich das stört, dann mach den Reset abhängig von CLK, d.h. 
Flankengesteuert

von Christian R. (supachris)


Lesenswert?

Kannst du direkt hier weiter lesen: 
Beitrag "(asynchronen) Reset vermeiden. oder nicht?"

Normalerweise braucht man den reset-Button nicht. Wozu auch? Nach dem 
Konfigurieren ist das FPGA in einem definierten Zustand und alle FF 
haben den von dir beschriebenen Init-Wert. Wenn du den weglässt, wird 
ISE den automatisch auf 0 initialisieren, falls du nix anderes 
einstellst.

von guest (Gast)


Lesenswert?

> Nach dem Konfigurieren ist das FPGA in einem definierten Zustand und
> alle FF haben den von dir beschriebenen Init-Wert
Ich glaube gelesen zu haben, dass es von dem Synthesewerkzeug abhängt ob 
Initwerte gesetzt werden können oder nicht? Bisher hab ich das noch 
nirgens gesehen das Initwerte gesetzt werden, oder ich hab's elegant 
überlesen.

> Normalerweise braucht man den reset-Button nicht. Wozu auch?
Seh ich auch so, wenn man das finale Design hat was läuft.


Besten Dank soweit

von berndl (Gast)


Lesenswert?

guest schrieb:
> Ich glaube gelesen zu haben, dass es von dem Synthesewerkzeug abhängt ob
> Initwerte gesetzt werden können oder nicht? Bisher hab ich das noch
> nirgens gesehen das Initwerte gesetzt werden, oder ich hab's elegant
> überlesen.

dann hast du aber einen reset im Design oder du hast noch nie simuliert. 
Meine Simulatoren (ModelSim und Ghdl) meckern, wenn sie auf nicht 
initialisierte Signale treffen...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

guest schrieb:
> mein Eval-Board hat einen Resetbutton den ich bisher auch wie
> selbstverständlich nutze.
Dann lies mal den Beitrag "Xilinx und die Resets"
Und das darin erwähnte WP272 von Xilinx.

Warum eigentlich wird die übliche Lehrbuchschreibweise nicht einfach 
verboten?
1
  process (rst,clk) begin
2
    if rst='1' then   --- Solche Beschreibungen gehören verboten. Oder wenigstens in den Anhang "Hardwareabhängkeiten"
3
      :
4
    elsif rising_edge(clk)
5
      :
6
    end if;
7
  end process;

guest schrieb:
> Ich glaube gelesen zu haben, dass es von dem Synthesewerkzeug abhängt ob
> Initwerte gesetzt werden können oder nicht?
Das stimmt.

> Bisher hab ich das noch nirgens gesehen das Initwerte gesetzt werden,
> oder ich hab's elegant überlesen.
Bitteschön: eine RS232-schnitte ohne Reset, dafür aber mit Initwerten
http://www.lothar-miller.de/s9y/categories/42-RS232

Und dann sogar sowas hier wie im 
Beitrag "Re: seltsame meldung "Input <MeasOverStromSD> is never used"!?" mit einem 
Defaultwert im Port!!

von guest (Gast)


Lesenswert?

> Dann lies mal den Beitrag "Xilinx und die Resets"
> Und das darin erwähnte WP272 von Xilinx.
Ich wiederspreche ja nicht das ein Reset unnötig ist und zusätzliche 
Hardware kostet. Und einen asynchronen Reset werde ich ums verrecken 
auch nicht mehr nutzen nachdem ich mich mit externen asynchronen 
Signalen bereits überschlagen habe.

Aber es ist z.B. so das ich einen Sender und einen Empfänger habe. Den 
Empfänger resette ich damit er auf eine eingehende Seqeuenz des Senders 
sensitiv reagiert. Nachdem der Empfänger resettet wurde resette ich den 
Sender und die Nachricht wird übertragen.
Da ich dank mangelnden Einsynchronisierens mal richtige und mal falsche 
Nachrichten bekam fand ich es ganz angenehm Sender und Empfänger über 
nen Button in einen definierten Startzustand zu bringen, anstatt jedes 
mal die FPGAs neu zu konfigurieren.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

guest schrieb:
> Da ich dank mangelnden Einsynchronisierens mal richtige und mal falsche
> Nachrichten bekam fand ich es ganz angenehm Sender und Empfänger über
> nen Button in einen definierten Startzustand zu bringen, anstatt jedes
> mal die FPGAs neu zu konfigurieren.
Das ist wohl am ehesten unter dem Motto "legitime Notlösung" zu 
verbuchen. Oder erwartest du von einem späteren Anwender auch, dass er, 
wenn sein Gerät nicht funktioniert, mal auf den Resync-(Reset-)Knopf 
drückt?
Das ist ja fast wie der Lampentest bei einer SPS: drück da mal drauf und 
du kannst Wunder aus der Entwicklung erleben...

von guest (Gast)


Lesenswert?

> Oder erwartest du von einem späteren Anwender auch, dass er,
> wenn sein Gerät nicht funktioniert, mal auf den Resync-(Reset-)Knopf
> drückt?

Wie ich bereits sagte, sobald ein Design funktioniert spricht ja nichts 
dagegen den Reset zu entfernen. Da der Fehler halt zufällig aufgetreten 
ist wollte ich ne Möglichkeit haben Sender und Empfänger in den 
Startzustand zu versetzen ohne jedes mal neu konfigurieren zu müssen. 
Das ganze hat also, zumindest bei mir, nix damit zu tun ein defektes 
Modul nutzen zu wollen, sondern half mir lediglich zur Fehlerfindung.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.