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??
richtig. Und wenn dich das stört, dann mach den Reset abhängig von CLK, d.h. Flankengesteuert
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.
> 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
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...
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!!
> 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.
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...
> 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.