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.