Forum: FPGA, VHDL & Co. hilfe verschachtelte if statements


von Plau S. (radih)


Lesenswert?

Vielleicht liegt es daran, dass ich mir den process zu oft angeschaut 
habe, aber den Fehler kann ich nicht nachvollziehen:

process(mi2s_clk,irst)
begin

if (irst='0') then
  msen <='1';
  msclk <='0';
  msdata <='Z';
  mack <='0';
  mst <=0;
else
 if (istr='1') then
  if (mst<17) then
    mst <= mst+1;
  end if;
  if (mst=0) then
    msen <= '0';
    msclk <= '1';
  else if (mst=8) then
    mack <= i2s_data;
  else if (mst=16 and msclk='1') then
    msen <= '1';
    msclk <= '0';
  end if;
  if (mst < 16) then
    msdata <= idata(15-mst);
  end if;
 else -- HIER WIRD DER FEHLER ANGEZEIGT!!!
  msen <='1';
  msclk <='0';
  msdata <='Z';
  mack <='0';
  mst <=0;
 end if;
end if;
end process;

und dabei kommt die Fehlermeldung von QuartusII:

Error (10500): VHDL syntax error near text "else";  expecting "end", or 
"(", or an identifier ("else" is a reserved keyword), or a sequential 
statement

danke im voraus

von Jan M. (mueschel)


Lesenswert?

Es heisst elsif, nicht else if. Ein else if braeuchte wieder ein eigenes 
end if

von Plau S. (radih)


Lesenswert?

ok danke

das habe ich ueberhaupt nicht gewusst

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
Noch kein Account? Hier anmelden.