Gast
#519532
Hi, ich habe mir ein VHDL Modul für den OPB geschrieben, bei dem das Timing nicht 100%ig korrekt ist und somit Fehler verursacht. Ich habe den Fehler leider noch nicht gefunden. Ich habe häufig folgneden Schreibstil verwendet und frage mich, ob die Synthese (XST) damit evt. Probleme haben könnte oder ob das vom Stil her ok ist: signal bla: std_logic; signal state: irgendeine aufzählung von states process (clk) is begin if rising_edge(clk) then if reset='1' then bla <= '0'; else bla <= '0'; case state is when a => state <= b; when b => bla <= '1'; state <= c; when c => state <= a; end case; end if; end if; end process; Ich setzte bla also in jedem Takt auf '0' außer, wenn state = b gilt. Ich spare mir hir also das setzen von bla <= '0' in jedem einzelnen state, indem ich es an den anfang vor das case setze. Ich bin mir aber unsicher, ob das nicht ein Problem gibt, wenn das dann später im gleichen clock zyklus "überschrieben" bzw. doch auf '1' gesetzt wird sobald der state b erreicht wird. Was macht die Synthese daraus? Ganz konkret ist mein Problem, dass das signal bla ein read-enable für einen fifo ist und manchmal offenbar ein wert zuviel aus der fifo gelesen wird. Was sagt ihr dazu? Gruß, Thomas