2016-03-31 25 views
1

Ich arbeite daran, ein defektes Projekt zu reparieren. Eines der Dinge, auf die ich dabei stieß, war, dass dort viele Signale deklariert, aber nie benutzt wurden, was mich zu dieser Frage geführt hat!Verschwendet die Synthese nicht verwendeter Signale Hardwareressourcen?

Würde der Synthesizer Hardwareressourcen verschwenden, indem er diese deklarierten, aber nicht verwendeten Signale implementiert oder würde er sie einfach ignorieren?

+5

Nein, Synthesis-Tools entfernen aggressiv ungenutzte Hardware. Manchmal aufgrund eines Konstruktionsfehlers, der zu einem komplett leeren Design führt, wenn es vorher nicht in der Simulation getestet wurde! –

+1

@BrianDrummond Oh danke, ist dies ein Standardansatz, der von Synthesetools verwendet wird oder wird er nur von einigen oder den meisten Synthesewerkzeugen verwendet? – Aboudi

+2

Standardansatz. –

Antwort

1

Die Synthese selbst ist eine sehr komplexe Aufgabe. Der Synthesizer muss die von Ihnen gewünschte Logik auf den Strukturen, die Sie ihm zur Verfügung stellen, abbilden. Für einen FPGA muss er also etwas anderes als Standardzellen tun. Während dieser Aufgabe optimiert er. Viel! Es versucht, unbenutzte Signale loszuwerden. Es kann auch Ihre endlichen Automaten optimieren. Es ist ein sehr mächtiges Werkzeug.

Aber vergessen Sie nicht, dass die Synthese kompliziert ist. So ist die Programmierung des Hardware-Verhaltens. Es ist normalerweise eine gute Idee, vor der Synthese einen Linting-Schritt durchzuführen. Das Linting Tool liefert Ihnen Informationen über Ihr Design. Es erkennt automatisch fehlerhaften Code, falsches Reset-Verhalten. Mit linting können Sie Code finden, der später problematisch sein könnte.

TL; DR Ja, der Synthesizer kann Ihre ungenutzte Logik und Verbindungen ausgleichen. Es macht viel mehr. Aber sei vorsichtig damit. Es kann fehlschlagen.