mikrocontroller.net

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


Autor: alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: SiO2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Keine Ahnung ;), aber das kannst du doch im Simulator gut testen.

Autor: Xenu (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Axel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jürgen Schuhmacher (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :-)

Autor: alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.