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.