¿Cuál es la diferencia entre las declaraciones condicionales else if y elsif en VHDL?

La estructura básica para las declaraciones if-elsif-else en VHDL es:

signal sel, x, y, z : std_logic; process (sel, x, y, z) begin if sel = '1' then out <= x; elsif sel = '2' then out <= y; else out <= z; end if; end process; 

La cláusula elsif se usa cuando se deben verificar diferentes condiciones anidadas.

No hay más si como una sola declaración. Sin embargo, puede usar if (alguna condición) en otra parte. Esto está anidado si la condición, un ejemplo se ve así:

 signal sel, x, y, z : std_logic; process (sel1, sel2, x, y, z) begin if sel1 = '1' then out <= x; if sel2 = '1' then out <= not z; elsif sel2 = '0' then out <= not z; elsif sel1 = '2' then out <= y; else if sel2 = '1' then out <= z; else out <= y; end if; end if; end process; 

La condición if anidada solo se verifica si el valor booleano de la condición if principal es falsa y la ejecución entra en la parte else del bucle.

[1] http://www.doulos.com/knowhow/vh…
[2] http://vhdl.renerta.com/mobile/s…

Lo tomo solo de las etiquetas de tema que quieres decir dentro de C.

En C, elsif no existe como condicional. Así que supongo que te refieres a elseif.

La diferencia está definida principalmente por su compilador, pero en muchos

más si () {…}

de hecho se analiza como

más {if () {…}}

y de hecho es marginalmente más lento.

En otros compiladores, los condicionales se analizan de forma idéntica.