Verständnisproblem Signale

Gast #423142
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?
Gast #423209
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
Gast #423319
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
Gast #423322
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 :-)
Gast #423433
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...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren