Hallo zusammen, ich bekommen bei der bit-file-Erstellung in der ISE ein Problem mit meinem VHDL-Code (für Spartan 6). Die Warnung: PhysDesignRules:372 - Gated clock.Clock net top_s_SM_VideoImageWidth is sourced by a combinatorial pin. This is not good design practice. Use the CE pin to control the loading of data into the flip-flop. erscheint. Diese würde ich gerne verstehen und wenn möglich beseitigen. Dabei ist anzumerken, dass mein Code die gewünschte Funktion erfüllt. Dennoch schreibe ich lieber warnungsfreien Code oder verstehe ich die Warnung zumindest. Ich habe eine StateMachine, die in den Zuständen n-1 eine Variable mit '0' beschreibt. Im Zustand n wird die Variable mit '1' beschrieben. Im nächsten Schritt weise ich bei setzten der Variable (i_SM_VideoImageWidth) Daten einem Vector zu: process(i_SM_VideoImageWidth) begin if rising_edge(i_SM_VideoImageWidth) then int_VideoImageWidth <= i_SM_VideoData; end if; end process; Kann mir jemand die Warnung erklären und mir sagen, ob und wie ich sie beseitigen kann? Vielen Dank für eure Hilfe! p.s.: Wenn weitere Angaben benötigt werden meldet euch einfach.
engineer_on_tour schrieb: > rising_edge(i_SM_VideoImageWidth) In einem gut wartbaren System gibt es nur 1 Takt. Und der kommt nicht irgendwoher aus dem Design, sondern von einem Taktpin oder einem Taktmanager. Und der heißt dann auch nicht irgendwie, sondern hat ein "clk" oder ein "clock" im Namen. > eine Variable Warum ist keines deiner beiden Signale i_SM_VideoImageWidth und int_VideoImageWidth eine Variable? > Dabei ist anzumerken, dass mein Code die gewünschte Funktion erfüllt. Heute noch. Aber warte mal ab, wenn du das FPGA wechselst. Manchmal reicht auch ein Die-Shrink oder eine neue Charge aus... > Dennoch schreibe ich lieber warnungsfreien Code oder verstehe ich > die Warnung zumindest. Diese Warnung gehört beseitigt. Für mich ist das ein Fehler... > Kann mir jemand die Warnung erklären und mir sagen, ob und wie ich sie > beseitigen kann? Die Warnung ist selbsterklärend. Du musst deine Flankenerkennung von i_SM_VideoImageWidth ändern (wenn prinzipiell eine nötig ist, was ich sehr bezweifle).
:
Bearbeitet durch Moderator
Lothar Miller schrieb: > In einem gut wartbaren System gibt es nur 1 Takt. Und der kommt nicht > irgendwoher aus dem Design, sondern von einem Taktpin oder einem > Taktmanager. Und der heißt dann auch nicht irgendwie, sondern hat ein > "clk" oder ein "clock" im Namen. In meinem Fall nutze ich dieses Signal nur dazu, einen FlipFlop mit einem Steuersignal zu versorgen. Denn ich möchte Daten Speichern, wenn die Variable/Signal 'i_SM_VideoImageWidth' auf '1' geht. Diese steigende Flanke ist der einzige Zeitpunkt, an dem die Daten von 'i_SM_VideoData' sinnvoll sind. Daher möchte ich die Daten von 'i_SM_VideoData' zu diesem Zeitpunkt speichern. Wenn es dafür eine bessere Methode gibt werde ich diese natürlich sofort nutzen.
> Diese steigende Flanke (von i_SM_VideoImageWidth) > ist der einzige Zeitpunkt, > an dem die Daten von 'i_SM_VideoData' sinnvoll sind. Und wo wird dieses Signal i_SM_VideoImageWidth erzeugt? Im FPGA? Synchron zu welchem Takt?
Habe das Problem glaube ich halbwegs verstanden und anderweitig gelöst. Vielen Dank für eure Rückmeldungen!
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.