PROCESO Un proceso es una parte de código en la cual las instrucciones se ejecutan en secuencia. Una arquitectura puede contener varios proceso . Todos los proceso se ejecutan en paralelo. El orden de escritura de las instrucciones afecta los resultados de simulación y síntesis.
Sintaxis del Proceso
Mux: process (A,B,SEL) begin if SEL = '1' then Z <= A; else Z <= B; end if;
end process MUX;
Sentencias secuenciales Etiqueta Lista de sensitividad
Eventos en la lista de sensibilidad Un proceso no se ejecuta continuamente, el proceso empieza a ejecutarse cuando una de las señales en su lista de sensibilidad cambia de valor o, en el lenguaje VHDL tiene un evento. Mux: process (A,B,SEL) begin if SEL = '1' then Z <= A; else Z <= B; end if; end process MUX;
Múltiples procesos concurrentes Mientras que cada proceso ejecuta sus sentencias en secuencia, múltiples procesos interactúan con los demás de manera concurrente al producirse un evento en las señales de la lista de sensibilidad. Proceso Proceso Proceso
Múltiples procesos en una arquitectura architecture A of E is begin — Sentencias Concurrentes P1: process begin — Sentencias Secuenciales end process P1; — Sentencias Concurrentes P2: process begin — Sentencias Secuenciales end process P2; — Sentencias Concurrentes end A;
Proceso 1 Proceso 2
Ejecución de procesos Cuando estas 2 señales son concurrentes, definen 2 drivers sobre la señal Z. Concurrente: 2 drivers
architecture CONCURRENT of MULTIPLE is signal Z,A,B,C,D: std_logic; begin Z <= A & B; Z <= C & D; end CONCURRENT;
? A B C D Z
Ejecución de procesos Cuando estas 2 señales son secuenciales, el valor con el cual la señal es actualizada es el último valor que se le asigna durante el proceso de ejecución.
Secuencial: 1 driver, última asignación architecture SEQUENTIAL of MULTIPLE is signal Z,A,B,C,D: std_ulogic; begin process (A,B,C,D) begin Z <= A & B; Z <= C & D; end process; end SEQUENTIAL ;
C D Z
Señal actualizada cuando el proceso se suspende Las señales asignadas dentro de un proceso son actualizadas hasta cuando el proceso termina y queda suspendido. architecture SEQUENTIAL of MULTIPLE is signal Z,A,B,C,D: std_ulogic; begin process (A,B,C,D) begin Z <= A & B; Z <= C & D; end process; end SEQUENTIAL ;
Noción de process Un process es una parte de código en la cual las instrucciones se ejecutan en secuencia. Una arquitectura puede contener varios process . Todos los process se ejecutan en paralelo. El orden de escritura de las instrucciones afecta los resultados de simulación y síntesis.
Implementación de Procesos Lógica combinatoria. Lógica sincrónica. Lógica sincrónica con inicialización asincrónica. Procesos dormidos, se les llama así a los procesos mientras las señales que los activan no cambian su estado.
Estructura de Proceso [ etiqueta: ] process ( lista de sensibilidad ) — declaraciones — variables eventuales Begin — parte operatoria — instrucciones secuenciales — (if, case, loop) End process; Lista de sensibilidad, cambia la asignación de señales asignadas en el proceso.
Metodología de Procesos. Lista de sensibilidad consistente. Dominación de comportamiento e implementación de la lógica. Diseños sintetizados, sin asincronismos.
Proceso Combinatorio [ etiqueta: ] process ( lista de sensibilidad ) — declaraciones Begin — instrucciones secuenciales — (if, case, loop) End process [ etiqueta]; Lista de sensibilidad con señales que activan el proceso. Parte declaratoria que puede contener variables. Variable con ámbito de proceso.
Ejemplo Combinatorio. Mux: process (A, B,SEL ) Begin if SEL=‘0’ then SALIDA<=A; else SALIDA<=B; end if; End process;
Estructura Proceso Síncrono [ etiqueta: ] process — declaraciones Begin wait until (CK’ event and CK=‘1’); End process [etiqueta]; El flanco de subida provoca el cambio en el estado. wait until evalúa la condición.
Ejemplo síncrono. Process Begin wait until ( CK’ event and CK=‘1’ ); COUNT <= COUNT + 1; End process; COUNT es construida por flip flops No debe haber señales combinatorias.
Proceso Síncrono [ etiqueta: ] process ( CK ) — declaraciones Begin if (CK’ event and CK=‘1’) then –instrucciones secuenciales. end if; End process [etiqueta];
[ etiqueta: ] process ( CK , RST) — declaraciones Begin if RST=‘1’ then –acción asíncrona elseif (CK’ event and CK=‘1’) then –instrucciones secuenciales. end if; End process [etiqueta]; Proceso Síncrono con Inicialización Asíncrona Cambio de prioridad por condición asíncrona
Ejemplo Síncrono Process ( CK ) Begin if ( CK’ event and CK=‘1’ ) then COUNT <= COUNT + 1; end if; End process; COUNT es construida por flip flops Todas las señales deben ser combinatorias.
SENSITIVIDAD La sensitividad es el conjunto de entradas de un bloque que cada vez que tengan un cambio en su estado activan el sistema y producen una salida.
Página anterior | Volver al principio del trabajo | Página siguiente |