Forum: FPGA, VHDL & Co. Verständnisproblem Signale


von alex (Gast)


Lesenswert?

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?

von SiO2 (Gast)


Lesenswert?

Keine Ahnung ;), aber das kannst du doch im Simulator gut testen.

von Xenu (Gast)


Lesenswert?

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).

von Axel (Gast)


Lesenswert?

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

von Andreas (Gast)


Lesenswert?

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

von Jürgen Schuhmacher (Gast)


Lesenswert?

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 :-)

von alex (Gast)


Lesenswert?

> 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
Noch kein Account? Hier anmelden.