Hallo zusammen, ich brauche mal wieder Rat. Ich experimentiere gerade mit FPGAs herum und verwende Xilinx WebPack ISE 6.3i. Ich habe versucht eine StateMachine zu basteln, aber der Compiler bringt folgende Warnung. Netcheck: Gated Clock. Clock net _nXXX is sourced by a combinatorial pin. Tihs is not good design practice. Use the CE pin to control the loading of data into the flip-flop. Mein Quellcode sieht wie folgt aus: ... signal state, followingstate : integer range 4 downto 0; process (clk, reset) begin if (reset = '1') then state <= 0; elsif (rising_edge(clk)) then state <= followingstate; end if; end process; process (state) begin followingstate <= state; case state is when 1 => ... when 2 => ... ... when others => ... end case; end process; Vielleicht kann mir ja jemand weiterhelfen und sagen was ich falsch mache! Vielen Dank im Voraus Andi
Hallo Andi, ich seh zwar auch nicht direkt was da falsch läuft (bis auf vielleicht das du im prozess in dem deine state-machine abgearbeitet wird vielleicht noch ein "if rising_clk (clk) then ... end if" einbauen solltest, aber bei wenn ich state-machines realisiere mache ich das in der regel in einem prozess. das sieht dann so aus : signal state : std_logic_vector (4 downto 0); process (clk, reset) begin if (reset = '1') then state <= "00000"; elsif (rising_edge(clk)) then case state is when "00000" => ... state <= "0001"; when "00001" => ... state <= ... when others => ... state <= ... end case; end if; end process; statt einer signal-definition (x downto 0) kann man auch einen typ definieren. z.b. type all_states is (init, state_01, state_02, state_03, end_state, ...); signal state : all_states; weiß zwar nicht ob dir damit weitergeholfen ist, aber so baue ich die state-machines immer auf und hab noch nie großartig probleme damit gehabt. gruß rene
Hallo Rene, danke für den Tipp! Warum 2 Prozesse wenn's auch mit einem geht! Eigentlich sehr einfach. Und ich spar mir sogar noch die zweite Variable 'followintstate'. Probier ich sofort mal aus. Gruß Andi
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.