2010-12-14 4 views
4

Ich erinnere mich, vor einiger Zeit gelesen, dass entweder asynchrone oder synchrone Rücksetzungen effizienter in FPGAs implementiert werden, da die Flip-Flops bereits eine haben, aber die andere würde zusätzliche Logik erfordern.FPGA effiziente (a) synchrone Rücksetzungen

Weiß jemand, um welchen Weg es sich handelt? Ist das das gleiche für Xilinx, Altera, Andere ..

Beim Lernen, ich habe zu jedem FSM eine asynchrone löschen und eine synchrone Rücksetzung hinzugefügt, nur für den Fall. Hat das überhaupt einen Vorteil?

Danke für jede Rückmeldung!

+2

Vielleicht wäre diese Frage besser in http://electronics.stackexchange.com/? – thkala

+0

Während dies in Chips implementiert ist, wird es auch in VHDL oder Verilog programmiert. Es könnte beide Orte gehen. –

Antwort

2

Nun, Ihre beste Wette ist, Ihre spezifischen FPGA-Hersteller-Dokumentation und Whitepapers zu konsultieren. In den meisten professionellen Designteams, an denen ich gearbeitet habe, verwendeten wir asynchrone Resets, um die maximale Kontrolle zu gewährleisten. Die Wahl zwischen synchronen und asynchronen Resets hängt jedoch von Ihrem Design und Ihrer Anwendung ab.

Übrigens, Sie könnten this paper on the topic of resets von Sunburst Design interessant finden. Obwohl es hauptsächlich ASIC-Design und Verilog behandelt, ist es ein nützliches Papier, um Reset-Entscheidungen im Allgemeinen zu verstehen.

+1

+1 für die Sunburst-Papiere – Marty

+0

Great link! Vielen Dank! – Mark

6

Um die Frage direkt zu beantworten - die meisten FPGAs können heutzutage in ihren Flipflops entweder synchrone oder asynchrone Resets durchführen. In Bezug auf das Hinzufügen eines asynchronen Clear- und Sync-Rests bin ich mir nicht sicher, was Sie damit erreicht haben - fügen Sie die Signale hinzu, die für die Funktion Ihres Designs erforderlich sind (möglicherweise ohne Reset für einige Flops ...)

Noch ein Ratschlag ... Wenn Sie einen asynchronen Reset verwenden, seien Sie sehr vorsichtig, wenn Sie ihn rückgängig machen. Wenn dieses "langsame" Netz auf Ihrem Gerät stark verzerrt ist, können Sie feststellen, dass einige unserer Flops in einem anderen Taktzyklus auf andere zurückgesetzt werden. Chaos entsteht!

dies zu vermeiden, ich favorisieren einen Toplevel Block zu schaffen, die in der externen nimmt (und vermutlich sehr asynchron) Reset-Signal, synchronisiert es um die Uhr und führt es als Synchron Reset an alle Flops Sie Zurücksetzen wollen (in dieser Taktdomäne - Sie benötigen möglicherweise mehrere. Dann wird der Timing-Analysator Ihnen sagen, wenn der Skew zu viel das Gerät ist, und Sie werden sicherstellen, dass alles aus dem Reset auf einmal kommt.

Xilinx have a whitepaper zu diesem Thema, aber es gilt auch für andere FPGAs gleichermaßen.

Für einige Anwendungen benötigen Sie möglicherweise einen asynchron aktivierten Reset auf den IOs, um sicherzustellen, dass bestimmte externe Geräte so funktionieren, wie Sie es benötigen - aber es immer noch synchron deaktiviert.

(PS., Wie Sie FPGAs erwähnen, wenn Sie nicht bewusst sind, gibt es einen Stack Vorschlag programmierbare Logik im Zusammenhang, die Sie vielleicht interessiert http://area51.stackexchange.com/proposals/20632/ finden)

+0

gute Ratschläge zum Schräglagen- und Zeitmessgerät! –

+0

Danke für die Information! – Mark

2

Die offizielle Xilinx Position ist Sync zurückgesetzt zu verwenden. Es wird in diesem whitepaper erklärt, auch in der obigen Post erwähnt. Alle Xilinx IP-Cores, die mit dem Quellcode geliefert werden, z. B. Speichercontroller, verwenden Sync-Reset.

Mein Team experimentierte mit verschiedenen Designs und stellte fest, dass der Vorteil der Verwendung von Sync-Reset im Sinne einer Verbesserung der Logikauslastung vernachlässigbar ist.

Der größte Vorteil der asynchronen Zurücksetzung ist eine schnellere Build-Laufzeit, die für große Designs wesentlich ist. Der Grund dafür ist, dass asynchrone Reset-Pfade nicht durch die synchronen Timing-Einschränkungen abgedeckt sind (Sie können sie durch Hinzufügen separater Einschränkungen abdecken, falls Sie dies wünschen).

+0

Vielen Dank für die zusätzlichen Informationen! – Mark