Forum: FPGA, VHDL & Co. Xilinx ISE Warnung Xst:647 - Input <res> is never used.


von Nanobot (Gast)


Angehängte Dateien:

Lesenswert?

Hi Leute,

vielleicht kann mir einer von euch mal einen Tipp geben warum das
Xilinx Webpack die angehängte VHDL Datei nicht ohne Warnungen
synthetisieren kann. Hab schon gegoogelt aber nichts sinnvolles
gefunden.
Ich bekomme immer folgende Warnung:

   WARNING:Xst:647 - Input <res> is never used.

Input <res> wird doch im Prozess verwendet, wieso checkt das Webpack
das nicht? Oder habe ich was falsch gemacht?

Ich habe eine umfangreichere Datei die etliche solcher Warnungen
enthält und da bin ich nun unsicher ob ich die Warnungen einfach
ignorieren kann/soll...

Ich weiß nicht mehr weiter, vor allem weil eine ähnlich einfache Datei,
die Signale auch nur im Prozess verwendet, fehler- und warnungsfrei
synthetisiert wird !

Bin für jede Hilfe dankbar :)

Grüße,
Nanobot

von breti (Gast)


Lesenswert?

Hi,

es kann sein, dass er deinen Ausgang wegsynthetisiert sprich durch
feste Logic ersetzt, daher braucht er dann den Eingang nicht mehr. Wenn
Du mal genau hinschaust, so wirst Du feststellen, dass der Ausgang sich
gar nicht ändert. Dazu müssten die Xilinx Tools auch was beim
synthetisieren schreiben. Schau Dir die Ausgabe nochmal genau durch.

Du könntest ansonsten mal folgendes machen:

  tA: process(res)
  begin
    if res'event and res='1' then
      out1 <= '1';
                else
                        out <= '0';
    end if;
  end process;

oder den ausgang erst auf 0 initialisieren

entity test is
  port ( res  : in std_logic;
               out1 : out std_logic := '0' );
end test;

architecture Behavioral of test is

begin

  tA: process(res)
  begin
    if res'event and res='1' then
      out1 <= '1';
    end if;
  end process;

end Behavioral;

Gruß,
     Thomas

von Nanobot (Gast)


Lesenswert?

Hi breti,

danke für den Hinweis. Der hat das tatsächlich als "feste Logik"
generiert weil sich der Zustand des Signals wohl nur einmal ändert und
dann stabil bleibt.

Ich glaube ich muss mir mal die richtige VHDL Literatur besorgen um zu
verstehen wie das Synthesetool die VHDL Konstrukte übersetzt (welche
Art von Schaltungen generiert werden)
Vielleicht kann ich dann eher nachvollziehen was "bad synchronous
description" und "Input <res> is never used" heißt und vor allem wie
man solche Probleme beheben kann...

Grüße,
Nanobot

von breti (Gast)


Lesenswert?

Hi,

wo du es gerade erwähntes: das "bad synchronus description" ist
übrigens etwas komplizierter zu lösen. Bin ich auch schonmal drauf
reingefallen. Das ist aber prima in der Xilinx online hilfe erklärt
(mit beispiel). Einfach mal auf "Error:" klicken, dann kommst du
dahin.

Gruß,
      Thomas

von Ralph (Gast)


Lesenswert?

Hi

Das wegoptimieren sieht man dann im Synplify unter "RTL View". Ich
weiß aber nicht, ob das mit dem Webpack auch geht.

Ich wollte aber noch sagen, dass der folgende Initialisierungsvorschlag
von breti auch nichts bringen dürfte, da die Synthese keine
Initialisierungen kennt:

entity test is
  port ( res  : in std_logic;
               out1 : out std_logic := '0' );
end test;

Wenn man sich das Register in Hardware vorstellt, dann kann es nicht
mit einem definierten Zustand "auf die Welt kommen"  :-)

Grüße
Ralph

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.