Está en la página 1de 17

UNMSM - FIE

Estilo Algorítmico

Ing. Alfredo Granados Ly


Estilo Algorítmico
• Esta basado en la sentencia concurrente: Process.
• El Process es una sentencia concurrente que agrupa a
un conjunto de sentencias que se evalúan de forma
secuencial.
• Se puede definir como un bucle infinito.
• Tiene dos estados: suspendido y activo.
• Se puede hacer uso de variables sólo en el interior de un
Process.
• Aquí se puede utilizar las sentencias secuenciales tipicas
como: if .. then, case, for.. loop.

Ing. Alfredo Granados Ly


Estilo algorítmico
Sintaxis:
Process
Process(lista de señales)
zona de declaración
zona de declaración
Begin
Begin
Conjunto de
Conjunto de
sentencias que se
sentencias que se
evalúan de forma
evalúan de forma
secuencial.
secuencial.
Sentencia WAIT;
end process;
end process;

Nota: En las herramientas de sintesis no se puede utilizar


más de una sentencia WAIT dentro del Process.
Ing. Alfredo Granados Ly
Estilo algorítmico
Diferencia entre señal y variable:
• La variable tiene un tiempo de asignación igual a 0.
variable a: std_logic;
a := ‘1’;

• La señal tiene un tiempo de asignación de acuerdo a


la tecnología utilizada en un implementación.
signal b: std_logic;
b <= ‘1’;

Ing. Alfredo Granados Ly


Estilo algorítmico
• La señal puede ser declarado en la entidad,
arquitectura o paquete (package).
• Una señal es global en toda la arquitectura, la
variable es local al Process.
• Una señal define un elemento hardware: puerto, nodo
interno, celda de almacenamiento, registro.
• La variable no genera hardware interno. Su valor al
final del proceso debe ser pasado a una señal.
• Las señales no toman el valor asignado hasta que el
Process se suspenda.
• Las variable toman el valor asignado en el momento
de la asignación.
Ing. Alfredo Granados Ly
Sentencia IF

Ing. Alfredo Granados Ly


Sentencia IF
Analizar el siguiente código VHDL:

Ing. Alfredo Granados Ly


Sentencia IF
• Si se desea implementar un circuito combinacional
debemos colocar todas las entradas en la lista sensible.
• Debemos cubrir todas las condiciones que puedan
ocurrir en las entradas.
• Si deseamos implementar un circuito secuencial
sincrono, la señal de reloj debe aparecer en la lista
sensible junto con las entradas asíncronas.
• Debemos evaluar en primer lugar por las entradas
asincronas y luego por la señal de reloj.
• Podemos evaluar otras condiciones dentro de la
condición de la señal de reloj si es que se tuvieran
entradas de control síncronos.
Ing. Alfredo Granados Ly
Sentencia IF
Ejemplo del multiplexor:

Ing. Alfredo Granados Ly


Sentencia IF
Otro ejemplo:

Ing. Alfredo Granados Ly


Sentencia CASE
• La sentencia CASE usa el valor de una expresión para
seleccionar un conjunto de sentencias secuenciales.
• El termino choice_i es el valor o un conjunto de valores
que puede ser asumido por la expresión.
• Los diferentes valores de los terminos deben ser
mutuamente exclusivos (el valor no puede ser utilizado
en más de una opción).

Ing. Alfredo Granados Ly


Sentencia CASE
• La expresión de selección debe ser de tipo discreto o
una matriz monodimensional de tipo caracter.
• Todos los posibles casos de valores de la expresión
deben estar contemplados en los diferentes WHEN. Es
por esto conveniente el uso de la palabra OTHERS.
• Los casos se pueden especificar o bien con un valor
simple o con un rango de valores mediante las palabras
TO o DOWNTO o por el símbolo “|”.

Ing. Alfredo Granados Ly


Elementos de memoria
LATCH

Ing. Alfredo Granados Ly


Elementos de memoria
FLIP - FLOP

Ing. Alfredo Granados Ly


Elementos de memoria
FLIP - FLOP

Ing. Alfredo Granados Ly


Elementos de memoria

FLIP – FLOP
CON ENTRADAS
SINCRONAS Y ASINCRONAS

Ing. Alfredo Granados Ly


Elementos de memoria
1. Preguntar primero por las entradas asincronas.
2. Luego preguntar por el flanco de reloj.
• Luego preguntar por las entradas sincronas.

Ing. Alfredo Granados Ly

También podría gustarte