Descargar

Lenguaje VHDL (página 2)

Enviado por Pablo Turmero


Partes: 1, 2, 3
edu.red

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.

edu.red

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

edu.red

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;

edu.red

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

edu.red

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

edu.red

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

edu.red

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

edu.red

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 ;

edu.red

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.

edu.red

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.

edu.red

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.

edu.red

Metodología de Procesos. Lista de sensibilidad consistente. Dominación de comportamiento e implementación de la lógica. Diseños sintetizados, sin asincronismos.

edu.red

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.

edu.red

Ejemplo Combinatorio. Mux: process (A, B,SEL ) Begin if SEL=‘0’ then SALIDA<=A; else SALIDA<=B; end if; End process;

edu.red

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.

edu.red

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.

edu.red

Proceso Síncrono [ etiqueta: ] process ( CK ) — declaraciones Begin if (CK’ event and CK=‘1’) then –instrucciones secuenciales. end if; End process [etiqueta];

edu.red

[ 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

edu.red

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.

edu.red

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.

Partes: 1, 2, 3
 Página anterior Volver al principio del trabajoPágina siguiente