Hallo Leute, kann mir jemand helfen und erklären wo der Unterschied in einem Prozess zwischen ein "if" allein und "if else" ist? wird das signal "start_show_disp_data" im ersten Fall nicht gespeichert und im 2ter Fall doch schon, oder werden die signale shDD_ready,show_ram davon betroffen? ************************** 1 Fall: nur if ********* ... if start_show_disp_data = '1' then ShDD_ready <= '1'; show_ram <= '1'; ShDD_state <= ShDD_ST2 ; end if; ... *************************** 2 Fall: if+else ********* ... if start_show_disp_data = '1' then ShDD_ready <= '1'; show_ram <= '1'; ShDD_state <= ShDD_ST2 ; else ShDD_ready <= '0'; show_ram <= '0'; ShDD_state <= ShDD_ST1 ; end if; ... ***************************************************** SHOWDISPDATA_FSM: process (clock_fpga, reset) begin if reset='1' then ShDD_state <= ShDD_ST1; ShDD_ready <= '0'; show_ram <= '0'; elsif rising_edge(clock_fpga) then case ShDD_state is when ShDD_ST1 => -- warten auf start gegenfalls ready signal setzen if start_show_disp_data = '1' then ShDD_ready <= '1'; show_ram <= '1'; ShDD_state <= ShDD_ST2 ; else ShDD_ready <= '0'; show_ram <= '0'; ShDD_state <= ShDD_ST1 ; end if; when ShDD_ST2 => -- unmittelbar show_ram = 0; ShDD_ready <= '1'; show_ram <= '0'; ShDD_state <= ShDD_ST3 ; when ShDD_ST3 => -- warten auf Datensignal if cmd_ndata = '0' then ShDD_ready <= '0'; show_ram <= '0'; ShDD_state <= ShDD_ST1 ; elsif adv_in_ud = '0' or new_command_occured = '1' then ShDD_state <= ShDD_ST1 ; ShDD_ready <= '0'; show_ram <= '0'; end if; end case; end if; end process; MFG
"IF ELSE" verzeigt in einen Konstrukt, der vollständig alternativ zum IF-Pfad abläuft, also nur dann abgefragt wird, wenn der erste IF nicht greift, während ein zweites IF parallel zum ersten ausgeführt wird, also auch dann gfs abgearbeitet wird, wenn auch der erste schon gegriffen hat.
Danke. Ja Du hast recht.Bei der successiven "if"s ist ein paralleliesierung da, aber ich meine was passiert auf der RTL-Ebene? welche signale werden gespeichert (FFs) und welche nicht, bei beiden Fälle? MFG
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.