Hallo, ich habe folgende Beschreibung: architecture arch1 of test is signal a, b, c, d, e, f: std_logic; begin a <= input; b <= a; c <= b; d <= c; e <= d; f <= e; output <= f; end; Die Signale input und output kommen von aussen und sind mit den Pins des CPLDs verknüpft. Mit dem Blick eines c-Programmierers würde ich sagen, dass die Signale a bis f wegoptimiert werden und die Signale input direkt mit output verküpft wird... Wie ist das wirklich, werden irgendwie Buffer für jede Zuweisung synthetisiert, so dass input etwas verzögert am output erscheint? (ob das auf diese Weise gut ist, sei dahingestellt). Oder werden die Signale, die redundant sind, wegoptimiert?
Wird wegoptimiert. Am einfachsten ist es bei solchen Problemen natürlich, Du probierst das mit einem VHDL-Syntheseprogramm selber aus (und nicht mit einem Simulator, lieber SiO2).
In der Simulation werden die wegoptimiert, genauso wie in der Synthese. Allerdings hast Du im CPLD/Realität natürlich eine Verzögerung. Die hängt davon ab, was Du für ein CPLD hast, was da sonst drin ist und wo Deine Pins liegen. Diese Verzögerung wird in der Simulation aber nicht simuliert sondern unterschlagen. Gruss Axel
Hallo, natürlich kann man auch das wegoptimieren auch unterbinden, ich glaube der Constraint heißt "noreduce", dann wird das Signal wirklich verzögert. Ob das mit einfachen Zuweisungen funktioniert weiß ich nicht, aber es funktioniert mit Invertern: architecture arch1 of test is signal a, b, c, d, e, f: std_logic; begin a <= not input; b <= not a; c <= not b; d <= not c; e <= not d; f <= not e; output <= not f; end; Für die Simulation müsste man dann noch die Verzögerungen angeben: a <= b after 2 ns; Andreas
Wenn es wegoptimiert wird (was hier der Fall ist, da die signale nicht nach aussen wirken und nicht geclocked sind) dann gibt es ja nur den einen Pfad mit der einen routingabhängien Verzögerung - im Zweifelsfall quer durch den Chip. Da Du aber überhauptkeinen Port zu haben scheints, wird vermutlich alles wegomptimiert :-)
> Da Du aber überhauptkeinen Port zu haben scheints, > wird vermutlich alles wegomptimiert :-) ...die Entity mit dem Port, wo die Signale input (als "in std_logic") und output (als "out std_logic") angegeben sind, sind da...
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.