Está en la página 1de 19

Universidad Nacional Abierta y a Distancia UNAD

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD

ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA

SISTEMAS DIGITALES SECUENCIALES

COMO SIMULAR VHDL USANDO

Symphony EDA Sonata 3.1

Documento elaborado por

Georffrey Acevedo González

Medellín, Mayo de 2009

Universidad Nacional Abierta y a Distancia UNAD

Proceso de implementación en VHDL y simulación del LATCH SET:

Se espera obtener el siguiente diagrama de tiempos:

Enstrada S Salida Q
Enstrada S
Salida Q

Recordemos que un latch SET, una vez que la entrada ha tomado el estado lógico alto (1) la salida tomará el estado lógico alto (1) y permanecerá en dicho estado a pesar de los cambios en el estado de la señal de entrada.

El

primer paso será instalar el programa:

Para Windows se puede descargar aquí Para Linux se puede descargar de: aquí

O

visitar la página: http://www.symphonyeda.com/

Al hacer clic se obtiene lo siguiente:

Al hacer clic se obtiene lo siguiente: Una vez descargado procedemos a instalarlo. Georffrey

Una vez descargado procedemos a instalarlo.

Una vez instalado ejecutamos el programa:

Universidad Nacional Abierta y a Distancia UNAD

el programa: Universidad Nacional Abierta y a Distancia UNAD 1)Crear un espacio de trabajo: File →

1)Crear un espacio de trabajo:

File → NewWorkspace

UNAD 1)Crear un espacio de trabajo: File → NewWorkspace Georffrey Acevedo González. georffrey@gmail.com 3/19

Universidad Nacional Abierta y a Distancia UNAD

Aparece la ventana: Create new Workspace:

digitamos:

OK

tarea_1
tarea_1

Al hacer esto se obtiene:

Workspace: digitamos: → OK tarea_1 Al hacer esto se obtiene: Georffrey Acevedo González. georffrey@gmail.com 4/19

3)

Universidad Nacional Abierta y a Distancia UNAD

CLIC en new text file: o en FILE → NEW

y a Distancia UNAD CLIC en new text file: o en FILE → NEW En este

En este espacio copiar el código de la entidad:

library ieee; use ieee.std_logic_1164.all;

ENTITY set_latch IS PORT (S: IN STD_LOGIC; Q: OUT STD_LOGIC); END set_latch;

Este código quiere decir que el sistema tendrá una entrada que llamaremos S y una salida que llamaremos Q.

File → save as:

Digitamos el nombre:

ENTITY set_latch.vhdl

Universidad Nacional Abierta y a Distancia UNAD

Universidad Nacional Abierta y a Distancia UNAD al guardar se obtiene: Georffrey Acevedo González.

al guardar se obtiene:

Nacional Abierta y a Distancia UNAD al guardar se obtiene: Georffrey Acevedo González. georffrey@gmail.com 6/19

Universidad Nacional Abierta y a Distancia UNAD

Repetimos por segunda vez: File → New:

y a Distancia UNAD Repetimos por segunda vez: File → New: Copiar el texto: ARCHITECTURE set_latch_flujo
y a Distancia UNAD Repetimos por segunda vez: File → New: Copiar el texto: ARCHITECTURE set_latch_flujo

Copiar el texto:

ARCHITECTURE set_latch_flujo OF set_latch IS

BEGIN process(S) begin ifS = '1' then Q <='1';

endif; end process; END set_latch_flujo;

luego procedemos a guardar como

Universidad Nacional Abierta y a Distancia UNAD

ARCHITECTURE set_latch.vhdl

Abierta y a Distancia UNAD ARCHITECTURE set_latch.vhdl Ahora guardamos el tercer y último archivo: File →

Ahora guardamos el tercer y último archivo:

File → New: Digitamos el código:

library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all;

ENTITY set_test IS END set_test;

ARCHITECTURE test_flujo OF set_test IS COMPONENT set_latch PORT (S: IN STD_LOGIC; Q: OUT STD_LOGIC); END COMPONENT;

FOR I: set_latch USE ENTITY WORK.set_latch(set_latch_flujo);

SIGNAL

S: STD_LOGIC;

SIGNAL

Q: STD_LOGIC;

BEGIN

I: set_latch PORT MAP (s,q);

S <='0', '1'AFTER 5 NS, '0'AFTER 10 NS, '1'AFTER 15 NS; END test_flujo;

guardar como:

test_latch_set.vhdl

Universidad Nacional Abierta y a Distancia UNAD

Universidad Nacional Abierta y a Distancia UNAD Agregamos los tres archivos creados al espacio de trabajo

Agregamos los tres archivos creados al espacio de trabajo TAREA1:

Clic derecho en Library tarea_1 => → Add files to tarea_1

derecho en Library tarea_1 => → Add files to tarea_1 Tres veces una por cada archivo:

Tres veces una por cada archivo:

Universidad Nacional Abierta y a Distancia UNAD

Universidad Nacional Abierta y a Distancia UNAD Siempre haciendo cada vez: Clic derecho en Library tarea_1

Siempre haciendo cada vez:

Clic derecho en Library tarea_1 => → Add files to tarea_1

Asi quedan

Universidad Nacional Abierta y a Distancia UNAD

Asi quedan Universidad Nacional Abierta y a Distancia UNAD Compile → Compile ALL Corregir errores de

Compile → Compile ALL

Corregir errores de digitación y compilar nuevamente hasta obtener el mensaje:

Finished compilation session sin errores:

obtener el mensaje: Finished compilation session sin errores: Georffrey Acevedo González. georffrey@gmail.com 11/19

Si hay algún error aparecerá:

Universidad Nacional Abierta y a Distancia UNAD

aparecerá: Universidad Nacional Abierta y a Distancia UNAD En este caso he borrado el ; señala

En este caso he borrado el ; señala en el círculo para ejemplificar el caso de error.

Universidad Nacional Abierta y a Distancia UNAD

Se debe corregir y compilar hasta que no aparezcan errores:

Se debe corregir y compilar hasta que no aparezcan errores: Georffrey Acevedo González. georffrey@gmail.com 13/19

Universidad Nacional Abierta y a Distancia UNAD

Si compilaste a la primera vez sin errores obtendrás:

UNAD Si compilaste a la primera vez sin errores obtendrás: Georffrey Acevedo González. georffrey@gmail.com 14/19

Universidad Nacional Abierta y a Distancia UNAD

Estamos listos para hacer la PRUEBA de simulación:

Simulate → RUN Seleccionar el archivo de chequeo: latch_test OK

→ RUN Seleccionar el archivo de chequeo: latch_test OK Aparece la ventana: Waveform0.wfs Georffrey Acevedo

Aparece la ventana: Waveform0.wfs

de chequeo: latch_test OK Aparece la ventana: Waveform0.wfs Georffrey Acevedo González. georffrey@gmail.com 15/19

Universidad Nacional Abierta y a Distancia UNAD

Haciendo clic derecho en cualquier parte del cuadro inferior izquierdo y seleccionar:

Add all signals to waveform

izquierdo y seleccionar: Add all signals to waveform Al hacer esto se obtiene: Georffrey Acevedo González.
izquierdo y seleccionar: Add all signals to waveform Al hacer esto se obtiene: Georffrey Acevedo González.

Al hacer esto se obtiene:

Add all signals to waveform Al hacer esto se obtiene: Georffrey Acevedo González. georffrey@gmail.com 16/19

clic derecho: Full View

Universidad Nacional Abierta y a Distancia UNAD

Full View Universidad Nacional Abierta y a Distancia UNAD Al hacer esto se obtiene: Simulate →

Al hacer esto se obtiene:

Abierta y a Distancia UNAD Al hacer esto se obtiene: Simulate → End simulation Nuevamente: Georffrey

Simulate → End simulation

UNAD Al hacer esto se obtiene: Simulate → End simulation Nuevamente: Georffrey Acevedo González.

Nuevamente:

Simultate → RUN

Universidad Nacional Abierta y a Distancia UNAD

→ RUN Universidad Nacional Abierta y a Distancia UNAD Ampliando el rango de interés con el

Ampliando el rango de interés con el mouse:

Distancia UNAD Ampliando el rango de interés con el mouse: Valores de las señales en los

Valores de las señales en los primeros 5 ns:

con el mouse: Valores de las señales en los primeros 5 ns: Valores entre 5 y

Valores entre 5 y 10 nanosegundos:

en los primeros 5 ns: Valores entre 5 y 10 nanosegundos: Georffrey Acevedo González. georffrey@gmail.com 18/19

Universidad Nacional Abierta y a Distancia UNAD

Se verifica que apesar de que la señal de entrada regresa a cero, la señal de salida continúa siendo cuno:

regresa a cero, la señal de salida continúa siendo cuno: Observamos que coincide con la señal

Observamos que coincide con la señal esperada:

Enstrada S Salida Q
Enstrada S
Salida Q