Múltiples sentencias if en proceso en vhdl

3

No puedo escribir la sintaxis vhdl. Pero para el examen debemos poder leerlo e interpretarlo.

La esencia del código es

process{
  if(start) 
    c := 0;
  end if;

  if ( c )
     ...
     c := false;
   else
     c:= true;
     ....
 end if;

}

Suponiendo que c = 1 (es una variable) al principio. Tengo dificultades para interpretar lo que sucede aquí

    
pregunta tgoossens

1 respuesta

5

Dado que las declaraciones están dentro de un process , se ejecutarán secuencialmente igual que el software.

enlace

Si tiene use ieee.std_logic_1164.all; y start se establece en true o 1 en otra parte del código, entonces if ( c ) evaluaría a false la rama else se ejecutaría. Luego, c se establecerá en false y mantendrá ese valor hasta la próxima vez que se ejecute este proceso (o algún otro proceso o declaración combinatoria lo cambie).

Si no tiene use ieee.std_logic_1164.all; , el comportamiento depende del compilador / sintetizador.

enlace

Falta mucho código, por lo que estoy haciendo muchas suposiciones aquí, pero espero que obtengas el significado básico.

    
respondido por el embedded.kyle

Lea otras preguntas en las etiquetas