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