INTRODUCCIÓN A SISTEMAS EMBEBIDOS, VHDL, ISE (XILINX ... · 5 Sistemas digitales. Guía 8 11) Como...

21
Sistemas digitales. Guía 8 1 INTRODUCCIÓN A SISTEMAS EMBEBIDOS, VHDL, ISE (XILINX). Utilizar el editor de archivos de Xilinx para sintetizar, corroborar la sintaxis y probar los códigos VHDL para los ejemplos propuestos. Interpretar los diagramas de tiempos generados a partir de códigos VHDL de los Test Bench. Utilizar la herramienta ISE de Xilinx para la escritura de archivos VHDL. Sintetizar el código de los archivos con extensión .vhd para obtener la abstracción del código escrito en forma de circuito digital, representación de tablas de verdad, funciones lógicas y mapas de karnaugh. Realizar la simulación de los ejemplos propuestos para verificar el funcionamiento de cada archivo de código VHDL. 1 Computadora con ISE instalado. 1. Leer el blog: http://systemonfpga.blogspot.com/2015_01_01_archive.html. 2. Investigar cuáles compañías distribuyen FPGAs y el nombre del software que utilizan para programar cada una. Pasos para la creación de aplicaciones. 1. Esquematizar mental o gráficamente el circuito que se pretende desarrollar. 2. Crear el proyecto conforme a las especificaciones de la tarjeta con su respectiva FPGA (ver figura 6 y 7). 3. Escribir el código vhdl. 4. Sintetizar el código. 5. Verificar el diagrama esquemático. 6. Realizar el test bench para el archivo vhdl (simular el comportamiento del sistema). 7. Asignar las variables según las especificaciones de pines de la tarjeta que se posea. 8. Realizar el Place & Route. Facultad: Ingeniería Escuela: Electrónica Asignatura: Sistemas Digitales Lugar de Ejecución: Fundamentos Generales.// Automatización. Objetivo General Objetivo Específicos Material y equipo Tarea previa Introducción teórica

Transcript of INTRODUCCIÓN A SISTEMAS EMBEBIDOS, VHDL, ISE (XILINX ... · 5 Sistemas digitales. Guía 8 11) Como...

Page 1: INTRODUCCIÓN A SISTEMAS EMBEBIDOS, VHDL, ISE (XILINX ... · 5 Sistemas digitales. Guía 8 11) Como puede observar en la figura 7 ya aparece el nombre de la entidad, coloque en las

Sistemas digitales. Guía 8 1

INTRODUCCIÓN A SISTEMAS

EMBEBIDOS, VHDL, ISE (XILINX).

Utilizar el editor de archivos de Xilinx para sintetizar, corroborar la sintaxis y probar los

códigos VHDL para los ejemplos propuestos.

Interpretar los diagramas de tiempos generados a partir de códigos VHDL de los Test

Bench.

Utilizar la herramienta ISE de Xilinx para la escritura de archivos VHDL.

Sintetizar el código de los archivos con extensión .vhd para obtener la abstracción del

código escrito en forma de circuito digital, representación de tablas de verdad, funciones

lógicas y mapas de karnaugh.

Realizar la simulación de los ejemplos propuestos para verificar el funcionamiento de

cada archivo de código VHDL.

1 Computadora con ISE instalado.

1. Leer el blog: http://systemonfpga.blogspot.com/2015_01_01_archive.html.

2. Investigar cuáles compañías distribuyen FPGA’s y el nombre del software que utilizan

para programar cada una.

Pasos para la creación de aplicaciones.

1. Esquematizar mental o gráficamente el circuito que se pretende desarrollar.

2. Crear el proyecto conforme a las especificaciones de la tarjeta con su respectiva FPGA (ver

figura 6 y 7).

3. Escribir el código vhdl.

4. Sintetizar el código.

5. Verificar el diagrama esquemático.

6. Realizar el test bench para el archivo vhdl (simular el comportamiento del sistema).

7. Asignar las variables según las especificaciones de pines de la tarjeta que se posea.

8. Realizar el Place & Route.

Facultad: Ingeniería

Escuela: Electrónica

Asignatura: Sistemas Digitales

Lugar de Ejecución: Fundamentos Generales.//

Automatización.

Objetivo General

Objetivo Específicos

Material y equipo

Tarea previa

Introducción teórica

Page 2: INTRODUCCIÓN A SISTEMAS EMBEBIDOS, VHDL, ISE (XILINX ... · 5 Sistemas digitales. Guía 8 11) Como puede observar en la figura 7 ya aparece el nombre de la entidad, coloque en las

Sistemas digitales. Guía 8 2

9. Generar el Programming File.

10. Descargar el archivo con extensión .bit sobre la FPGA.

11. Realizar las pruebas de funcionamiento.

Parte I: Creación de proyectos con ISE y Spartan-6 LX9 CSG324.

1) La primera aplicación es realizar el código VHDL para sintetizar el funcionamiento de 3

compuertas básicas, ver figura 1.

Figura 1: Circuito a generar con el VHDL.

a) Iniciar el software ISE.

2) Dé doble clic en el archivo de script de ISE en el escritorio con la imagen .

3) Seleccione la opción Ejecutar.

b) Creación de un Proyecto en ISE.

4) En la barra de menús seleccione File/New Project. Aparecerá la ventana de opciones de un

nuevo proyecto (New Project Wizard), ver figura 2.

5) Introduzca el nombre del ejercicio de laboratorio, y navegue para encontrar el directorio ya

creado o cree uno, como se muestra en la figura 2 y seleccione tipo HDL desde la opción Top-

Level Source Type y presione el botón Next, lo cual desplegará la ventana de la figura 3.

Figura 2: Creación de un nuevo proyecto, pasos 4) y 5).

Procedimiento

Page 3: INTRODUCCIÓN A SISTEMAS EMBEBIDOS, VHDL, ISE (XILINX ... · 5 Sistemas digitales. Guía 8 11) Como puede observar en la figura 7 ya aparece el nombre de la entidad, coloque en las

Sistemas digitales. Guía 8 3

6) Seleccione las opciones de la figura 3 (conforme a la tarjeta sobre la que desarrollará la

aplicación, acorde al hardware real sobre el cual se descargará la síntesis del circuito) y luego

presione el botón Next lo que desplegará la ventana de la figura 4.

Property Name Value

Family Spartan6

Device XC6SLX9

Package CSG324

Speed -2

Preferred language VHDL

VHDL Source Analysis Standard VHDL-200X

Figura 3: Creación de nuevo proyecto, paso 6).

Figura 4: Configuración de nuevo proyecto, paso 6).

Page 4: INTRODUCCIÓN A SISTEMAS EMBEBIDOS, VHDL, ISE (XILINX ... · 5 Sistemas digitales. Guía 8 11) Como puede observar en la figura 7 ya aparece el nombre de la entidad, coloque en las

Sistemas digitales. Guía 8 4

7) Presione el botón Finish para crear el proyecto.

c) Creación de archivo VHDL (Very High Speed Integrated Circuit Hardware Description

Language).

8) Dé clic derecho sobre la segunda línea (xc6slx9-2csg324) del cuadro superior izquierdo de la

ventana de navegación del proyecto (figura 5).

9) Elija la opción New Source…

Figura 5: Creación de archivos, pasos 8) y 9).

10) En la ventana New Source Wizard, seleccione la opción VHDL Module, colóquele un nombre

al archivo en el campo File Name:, este será el nombre que adopte la entidad dentro de nuestro

bloque o circuito a describir, verifique que el check box Add to Project esté activo y dé clic en

el botón Next tal como lo indica la figura 6.

Figura 6: Creación de archivos, paso 10).

Page 5: INTRODUCCIÓN A SISTEMAS EMBEBIDOS, VHDL, ISE (XILINX ... · 5 Sistemas digitales. Guía 8 11) Como puede observar en la figura 7 ya aparece el nombre de la entidad, coloque en las

Sistemas digitales. Guía 8 5

11) Como puede observar en la figura 7 ya aparece el nombre de la entidad, coloque en las filas los

nombres de las variables de entrada (a, b) y salida (x, y, z) de su sistema, así como la longitud

de los vectores o buses a utilizar (considerando que la posición 0 cuenta como valor) para este

caso son bits individuales, por lo que no se especificará nada adicional. Con la lista desplegable

elija la dirección del flujo de datos (in, out o inout) tal como lo indica la figura 7 y dé clic en el

botón Next.

Figura 7: Creación de archivos, paso 11), elección de entradas y salidas del componente.

12) La figura 8 muestra un breve resumen de los atributos seleccionados en la creación del modulo

VHDL. Dé clic izquierdo en el botón Finish.

Figura 8: Creación de archivos, paso 12).

13) Se mostrará en el editor de código VHDL de ISE, en dicha ventana modifique el código VHDL

para que se vea igual al mostrado a continuación (Código 1):

Page 6: INTRODUCCIÓN A SISTEMAS EMBEBIDOS, VHDL, ISE (XILINX ... · 5 Sistemas digitales. Guía 8 11) Como puede observar en la figura 7 ya aparece el nombre de la entidad, coloque en las

Sistemas digitales. Guía 8 6

library IEEE; --Uso de Librería IEEE

use IEEE.STD_LOGIC_1164.ALL; --Estándares lógicos de la Librería IEEE

entity SDI111_G1_EJ1 is --Nombre de la entidad

Port ( a : in STD_LOGIC; --Declaración de variables a, b b : in STD_LOGIC; --como entradas

x : out STD_LOGIC; --Declaración de variables x, y, z

y : out STD_LOGIC; --como salidas

z : out STD_LOGIC);

end SDI111_G1_EJ1; --Finalización de la entidad

architecture Behavioral of SDI111_G1_EJ1 is --Descripción del comportamiento de la

begin --entidad

x <= a or b; --Compuerta or con entradas a y b, salida x

y <= a and b; --Compuerta and con entradas a y b, salida y

z <= a xor b; --Compuerta exor con entradas a y b, salida z end Behavioral; --Finalización del comportamiento

Código 1: Código VHDL, archivo SDI111_G1_EJ1.vhd, paso 13).

d) Sintetizar el código.

Este proceso permite:

Verificar la sintaxis del código VHDL escrito.

La conversión del código VHDL a un circuito digital equivalente ya sea a LUT’s o circuitos

MSI.

Abrir una vista del circuito digital equivalente al código VHDL escrito.

14) De clic izquierdo sobre el nombre del archivo VHDL debajo de la línea xc6slx9-2csg324, del

cuadro superior izquierdo de la ventana de navegación del proyecto (figura 9) para habilitar las

funciones de este archivo en el cuadro inferior.

15) En el cuadro inferior izquierdo, de clic derecho sobre la opción Synthetize – XST, elija la

opción Run del menú desplegable.

Figura 9: Sintetizar código VHDL, pasos 14) y 15).

Page 7: INTRODUCCIÓN A SISTEMAS EMBEBIDOS, VHDL, ISE (XILINX ... · 5 Sistemas digitales. Guía 8 11) Como puede observar en la figura 7 ya aparece el nombre de la entidad, coloque en las

Sistemas digitales. Guía 8 7

e) Verificar el diagrama esquemático detallado.

16) Dé clic izquierdo sobre el nombre del archivo VHDL debajo de la línea xc6slx9-2csg324, del

cuadro superior izquierdo de la ventana de navegación del proyecto (figura 9), para habilitar las

funciones de este archivo en el cuadro inferior.

17) De doble clic izquierdo sobre la opción View Technology Schematic, ver figura 10.

Figura 10: Verificar el diagrama esquemático detallado, paso 17).

18) Dé clic izquierdo en el botón OK de la figura 11.

Figura 11: Verificar el diagrama esquemático detallado, paso 18).

19) En la ventana desplegable dé clic en el botón Add -> y luego el botón Create Schematic

(figura 12).

Figura 12: Verificar diagrama esquemático simplificado, paso 19).

Page 8: INTRODUCCIÓN A SISTEMAS EMBEBIDOS, VHDL, ISE (XILINX ... · 5 Sistemas digitales. Guía 8 11) Como puede observar en la figura 7 ya aparece el nombre de la entidad, coloque en las

Sistemas digitales. Guía 8 8

20) Dé doble clic izquierdo sobre la caja de dos entradas y tres salidas.

21) Dé doble clic izquierdo sobre cada una de las cajas que tengan la palabra LUT1 incluida y

verifique cada una de las opciones.

f) Verificar el diagrama esquemático de un circuito complejo (abstracción del diseño):

22) Dé clic izquierdo sobre el nombre del archivo VHDL debajo de la línea xc6slx9-2csg324, del

cuadro superior izquierdo de la ventana de navegación del proyecto (figura 9), para habilitar las

funciones de este archivo en el cuadro inferior.

23) Dé doble clic izquierdo sobre la opción View RTL Schematic, ver figura 10.

24) En la ventana (figura 13) que se despliegue presione el botón Ok.

Figura 13: Verificar diagrama esquemático, paso 24).

25) Dé clic en el botón Add -> y luego el botón Create Schematic (figura 14).

26) Se desplegará una figura de bloque que al hacer doble clic izquierdo sobre la misma mostrará el

circuito equivalente al código VHDL.

Figura 14: Verificar diagrama esquemático, paso 25).

1 LUT: Look-Up Tables (Tabla de consulta).

Page 9: INTRODUCCIÓN A SISTEMAS EMBEBIDOS, VHDL, ISE (XILINX ... · 5 Sistemas digitales. Guía 8 11) Como puede observar en la figura 7 ya aparece el nombre de la entidad, coloque en las

Sistemas digitales. Guía 8 9

g) Realizar el test bench para el archivo vhdl (simular el comportamiento del sistema).

27) De clic derecho sobre la segunda línea (xc6slx9-2csg324) del cuadro superior izquierdo de la ventana de

navegación del proyecto (figura 5).

28) Elija la opción New Source…

29) En la ventana New Source Wizard, seleccione la opción VHDL Test Bench, colóquele un nombre al

archivo en el campo File Name:, la extensión del archivo será .vhd al igual que al archivo del código

fuente en VHDL por lo que si escribe el mismo nombre para el test bench estará intentando sobre escribir

el código VHDL, por lo que se recomienda agregar _tb al final del nombre del archivo del test bench

para diferenciarlo del código VHDL.

30) Verifique que el check box Add to Project este activo y de clic en el botón Next tal como lo indica la

figura 15.

Figura 15: Creación de archivo test bench, pasos 29) y 30).

31) De clic izquierdo en el botón Next -> de la figura 16.

32) Para finalizar de clic izquierdo en el botón Finish -> de la figura 17.

Figura 16: Creación de archivo test bench, paso 31).

Page 10: INTRODUCCIÓN A SISTEMAS EMBEBIDOS, VHDL, ISE (XILINX ... · 5 Sistemas digitales. Guía 8 11) Como puede observar en la figura 7 ya aparece el nombre de la entidad, coloque en las

Sistemas digitales. Guía 8 10

Figura 17: Creación de archivo test bench, paso 32).

33) Comente o elimine las partes referidas al clock porque el circuito de la figura 7 no utiliza el

reloj. De tal manera que el código VHDL del Test Bench se vea como el siguiente:

LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY SDI111_G1_EJ1_tb IS

END SDI111_G1_EJ1_tb; ARCHITECTURE behavior OF SDI111_G1_EJ1_tb IS -- Component Declaration for the Unit Under Test (UUT) COMPONENT SDI111_G1_EJ1 PORT( a : IN std_logic; b : IN std_logic;

x : OUT std_logic; y : OUT std_logic; z : OUT std_logic ); END COMPONENT; --Inputs signal a : std_logic := '0'; signal b : std_logic := '0';

--Outputs signal x : std_logic; signal y : std_logic; signal z : std_logic; BEGIN -- Instantiate the Unit Under Test (UUT)

uut: SDI111_G1_EJ1 PORT MAP ( a => a,

b => b, x => x, y => y, z => z

);

Page 11: INTRODUCCIÓN A SISTEMAS EMBEBIDOS, VHDL, ISE (XILINX ... · 5 Sistemas digitales. Guía 8 11) Como puede observar en la figura 7 ya aparece el nombre de la entidad, coloque en las

Sistemas digitales. Guía 8 11

-- Stimulus process

stim_proc: process begin -- hold reset state for 10 ns. wait for 10 ns; -- insert stimulus here a <= '0'; b <= '0'; wait for 10 ns;

a <= '0'; b <= '1'; wait for 10 ns; a <= '1'; b <= '0'; wait for 10 ns; a <= '1'; b <= '1';

wait for 10 ns; wait; end process; END;

Código 2: Código VHDL del Test Bench, archivo SDI111_G1_EJ1_tb.vhd, paso 33).

34) De clic izquierdo en el botón de opción Simulation en el cuadro superior izquierdo.

35) Seleccione el nombre del archivo del test bench: SDI111_G1_EJ1_tb.vhd (este es el nombre

del ejemplo que se está realizando) tal como lo indica la figura 18.

36) Luego en el cuadro inferior izquierdo de clic derecho sobre la opción Behavioral Check

Syntax y elija la opción Run tal como se muestra en la figura 18. Si usted no ha guardado el

archivo antes de correr esta opción le pedirá guardar el archivo del test bench tal como se indica

en la figura 19 a lo que deberá contestar en el botón Yes.

Figura 18: Creación de archivo test bench, pasos 34) al 36).

Page 12: INTRODUCCIÓN A SISTEMAS EMBEBIDOS, VHDL, ISE (XILINX ... · 5 Sistemas digitales. Guía 8 11) Como puede observar en la figura 7 ya aparece el nombre de la entidad, coloque en las

Sistemas digitales. Guía 8 12

Figura 19: Creación de archivo test bench, paso 36).

37) En el cuadro inferior izquierdo de clic derecho sobre la opción Simulate Behavioral Model y

elija la opción Process Properties… Esto abrirá una ventana en la que fijaremos el valor de

Simulation Run Time a 50 ns, tal como se indica en la figura 20.

Figura 20: Asignación de tiempo a simular en el Test Bench, paso 37).

38) En el cuadro inferior izquierdo de clic derecho sobre la opción Simulate Behavioral Model y

elija la opción Run. Esto abrirá el software Isim donde podrá corroborar las respuestas en el

diagrama de tiempos de la figura 21.

39) De clic en el icono Zoom to Full View y verifique que a medida que las entradas (a, b) toman

valores cada 10 ns las salidas obtienen el valor correspondiente a la tabla de verdad de las

compuertas programadas en las variables x, y, z.

Figura 21: Creación de archivo test bench, paso 39).

Parte II: Realización de ejemplos guiados.

40) Repita los pasos del 1 al 39 para los siguientes ejemplos.

Page 13: INTRODUCCIÓN A SISTEMAS EMBEBIDOS, VHDL, ISE (XILINX ... · 5 Sistemas digitales. Guía 8 11) Como puede observar en la figura 7 ya aparece el nombre de la entidad, coloque en las

Sistemas digitales. Guía 8 13

h) Función lógica.

F = 1,3,5,7,9,11,13,14,15 =

4

abcd

d ab + c + abc

Figura 22: Función lógica, ejemplo 2.

Figura 23: Declaración de variables, Función lógica, ejemplo 2.

library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity SDI111_G1_EJ2 is Port (a, b, c, d: in std_logic; F: out std_logic); end SDI_G1_EJ2;

architecture Behavioral of SDI_G1_EJ2 is begin F <= (d and (not(a and b) or not(c))) or ((a and b) and c); end Behavioral;

Código 3: Código VHDL, archivo SDI111_G1_EJ2.vhd, ejemplo 2.

41) Verifique la expresión, tabla de verdad, mapa de Karnaugh y circuito esperado con la

herramienta de ISE, pasos 16 al 21.

library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity SDI111_G1_EJ2_tb is

end SDI_G1_EJ2_tb;

Page 14: INTRODUCCIÓN A SISTEMAS EMBEBIDOS, VHDL, ISE (XILINX ... · 5 Sistemas digitales. Guía 8 11) Como puede observar en la figura 7 ya aparece el nombre de la entidad, coloque en las

Sistemas digitales. Guía 8 14

ARCHITECTURE behavior OF SDI111_G1_EJ2_tb IS -- Component Declaration for the Unit Under Test (UUT) COMPONENT SDI111_G1_EJ2 PORT( a : IN std_logic; b : IN std_logic;

c : IN std_logic; d : IN std_logic; F : OUT std_logic ); END COMPONENT; --Inputs signal a : std_logic := '0';

signal b : std_logic := '0'; signal c : std_logic := '0'; signal d : std_logic := '0'; --Outputs signal F : std_logic; BEGIN

-- Instantiate the Unit Under Test (UUT) uut: SDI111_G1_EJ2 PORT MAP ( a => a, b => b, c => c, d => d, F => F );

-- Stimulus process stim_proc: process begin -- hold reset state for 10 ns. wait for 10 ns; -- insert stimulus here a <= '0';

b <= '0'; c <= '0'; d <= '0'; wait for 10 ns; a <= '0'; b <= '0'; c <= '0'; d <= '1';

wait for 10 ns; a <= '0'; b <= '0'; c <= '1'; d <= '0'; wait for 10 ns; a <= '0'; b <= '0';

c <= '1'; d <= '1'; wait for 10 ns; a <= '0'; b <= '1'; c <= '0'; d <= '0';

Page 15: INTRODUCCIÓN A SISTEMAS EMBEBIDOS, VHDL, ISE (XILINX ... · 5 Sistemas digitales. Guía 8 11) Como puede observar en la figura 7 ya aparece el nombre de la entidad, coloque en las

Sistemas digitales. Guía 8 15

wait for 10 ns;

a <= '0'; b <= '1'; c <= '0'; d <= '1'; wait for 10 ns; a <= '0'; b <= '1'; c <= '1';

d <= '0'; wait for 10 ns; a <= '0'; b <= '1'; c <= '1'; d <= '1'; wait for 10 ns; a <= '1';

b <= '0'; c <= '0'; d <= '0'; wait for 10 ns; a <= '1'; b <= '0'; c <= '0'; d <= '1'; wait for 10 ns;

a <= '1'; b <= '0'; c <= '1'; d <= '0'; wait for 10 ns; a <= '1'; b <= '0'; c <= '1';

d <= '1'; wait for 10 ns; a <= '1'; b <= '1'; c <= '0'; d <= '0'; wait for 10 ns; a <= '1';

b <= '1'; c <= '0'; d <= '1'; wait for 10 ns; a <= '1'; b <= '1'; c <= '1'; d <= '0';

wait for 10 ns; a <= '1'; b <= '1'; c <= '1'; d <= '1'; wait for 10 ns; wait; end process; END;

Código 4: Código VHDL del Test Bench, archivo SDI111_G1_EJ2_tb.vhd, ejemplo 2.

Page 16: INTRODUCCIÓN A SISTEMAS EMBEBIDOS, VHDL, ISE (XILINX ... · 5 Sistemas digitales. Guía 8 11) Como puede observar en la figura 7 ya aparece el nombre de la entidad, coloque en las

Sistemas digitales. Guía 8 16

Figura 24: Asignación de tiempo a simular en el Test Bench, Función lógica, ejemplo 2.

Figura 25: Diagrama de tiempo de funcionamiento del circuito, Función lógica, ejemplo 2.

i) Tabla de verdad.

Entradas Salidas

# A B C D M O

0 0 0 0 0 0 1

1 0 0 0 1 0 1

2 0 0 1 0 0 1

3 0 0 1 1 0 1

4 0 1 0 0 0 0

5 0 1 0 1 1 1

6 0 1 1 0 0 0

7 0 1 1 1 1 1

8 1 0 0 0 0 1

9 1 0 0 1 0 1

10 1 0 1 0 1 1

11 1 0 1 1 1 1

12 1 1 0 0 0 0

13 1 1 0 1 1 1

14 1 1 1 0 1 0

15 1 1 1 1 1 1

Tabla 1: Tabla de verdad del ejemplo SDI111_G1_EJ3.vhd.

Page 17: INTRODUCCIÓN A SISTEMAS EMBEBIDOS, VHDL, ISE (XILINX ... · 5 Sistemas digitales. Guía 8 11) Como puede observar en la figura 7 ya aparece el nombre de la entidad, coloque en las

Sistemas digitales. Guía 8 17

42) Para este ejemplo se considerará que las variables se escribirán como vectores de la siguiente

manera:

Dirección de Flujo de datos Variable de la Tabla Variable en el código VHDL

Entrada A Data_In[3]

Entrada B Data_In[2]

Entrada C Data_In[1]

Entrada D Data_In[0]

Salida M Data_Out[1]

Salida O Data_Out[0] Tabla 1: Asignación de variables SDI111_G1_EJ3.vhd.

Figura 26: Declaración de variables, Tabla de verdad, ejemplo 3.

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

entity SDI111_G1_EJ3 is

Port ( Data_In : in STD_LOGIC_VECTOR (3 downto 0);

Data_Out : out STD_LOGIC_VECTOR (1 downto 0));

end SDI111_G1_EJ3;

architecture Comportamiento of SDI111_G1_EJ3 is

begin

with Data_In select

Data_Out <= "00" when "0100" | "0110" | "1100",

"01" when "0000" | "0001" | "0010" | "0011" | "1000" | "1001",

"10" when "1110",

"11" when others;

end Comportamiento;

Código 5: Código VHDL, archivo SDI111_G1_EJ3.vhd, ejemplo 3.

43) Escriba la expresiones del circuito esperado (haciendo uso de mapas de Karnaugh) para la tabla

de verdad de SDI111_G1_EJ3.

44) Dibuje el circuito de las expresiones obtenidas en el punto anterior.

Page 18: INTRODUCCIÓN A SISTEMAS EMBEBIDOS, VHDL, ISE (XILINX ... · 5 Sistemas digitales. Guía 8 11) Como puede observar en la figura 7 ya aparece el nombre de la entidad, coloque en las

Sistemas digitales. Guía 8 18

45) Verifique los mapas de Karnaugh, expresiones y circuito esperado con la herramienta

de ISE, pasos 16 al 21.

LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY SDI111_G1_EJ3_tb IS END SDI111_G1_EJ3_tb; ARCHITECTURE behavior OF SDI111_G1_EJ3_tb IS

-- Component Declaration for the Unit Under Test (UUT) COMPONENT SDI111_G1_EJ3 PORT( Data_In : IN std_logic_vector(3 downto 0); Data_Out : OUT std_logic_vector(1 downto 0) ); END COMPONENT;

--Inputs signal Data_In : std_logic_vector(3 downto 0) := (others => '0'); --Outputs signal Data_Out : std_logic_vector(1 downto 0); BEGIN -- Instantiate the Unit Under Test (UUT)

uut: SDI111_G1_EJ3 PORT MAP ( Data_In => Data_In, Data_Out => Data_Out ); -- Stimulus process

CD 00 01 11 10

AB

00 0 1 3 2

01 4 5 7 6

11 12 13 15 14

10 8 9 11 10

CD 00 01 11 10

AB

00 0 1 3 2

01 4 5 7 6

11 12 13 15 14

10 8 9 11 10

Page 19: INTRODUCCIÓN A SISTEMAS EMBEBIDOS, VHDL, ISE (XILINX ... · 5 Sistemas digitales. Guía 8 11) Como puede observar en la figura 7 ya aparece el nombre de la entidad, coloque en las

Sistemas digitales. Guía 8 19

stim_proc: process

begin -- insert stimulus here

Data_In <= "0000"; wait for 50 ns; Data_In <= "0001"; wait for 50 ns; Data_In <= "0010"; wait for 50 ns; Data_In <= "0011"; wait for 50 ns; Data_In <= "0100"; wait for 50 ns; Data_In <= "0101"; wait for 50 ns;

Data_In <= "0110"; wait for 50 ns; Data_In <= "0111"; wait for 50 ns; Data_In <= "1000"; wait for 50 ns; Data_In <= "1001"; wait for 50 ns; Data_In <= "1010"; wait for 50 ns; Data_In <= "1011"; wait for 50 ns; Data_In <= "1100"; wait for 50 ns; Data_In <= "1101"; wait for 50 ns;

Data_In <= "1110"; wait for 50 ns; Data_In <= "1111"; wait for 50 ns; wait; end process; END;

Código 6: Código VHDL del Test Bench, archivo SDI111_G1_EJ3_tb.vhd, ejemplo 3.

Figura 27: Asignación de tiempo a simular en el Test Bench, Tabla de verdad, ejemplo 3.

𝑀 = 5,7,10,11,13,14,15

1111

𝑎𝑏𝑐𝑑

𝑂 = 0,1,2,3,5,7,8,9,10,11,13,15

1111

𝑎𝑏𝑐𝑑

Page 20: INTRODUCCIÓN A SISTEMAS EMBEBIDOS, VHDL, ISE (XILINX ... · 5 Sistemas digitales. Guía 8 11) Como puede observar en la figura 7 ya aparece el nombre de la entidad, coloque en las

Sistemas digitales. Guía 8 20

Figura 28: Diagrama de tiempo de funcionamiento del circuito, Tabla de verdad, ejemplo 3.

1. http://systemonfpga.blogspot.com/2015_01_01_archive.html

2. http://www.xilinx.com/products/boards-and-kits/1-3i2dfk.html

3. All Programmable Low-End Portfolio Product Selection Guide:

http://www.xilinx.com/publications/prod_mktg/low-end-portfolio-product-selection-

guide.pdf

4. Xilinx® Spartan®-6 FPGA LX9 MicroBoard User Guide:

http://opencores.org/websvn,filedetails?repname=openmsp430&path=%2Fopenmsp430

%2Ftrunk%2Ffpga%2Fxilinx_avnet_lx9microbard%2Fdoc%2FXilinx_Spartan-

6_LX9_MicroBoard_Rev_B2_Hardware_User_Guide.pdf

5. http://www.xilinx.com/products/silicon-devices/fpga/spartan-6.html

6. http://community.em.avnet.com/t5/Spartan-6-LX9-MicroBoard/LX9-Pinout-

Diagram/td-p/3749

7. TE CONNECTIVITY INTERCONNECT SOLUTIONS FOR THE XILINX®

SPARTAN®-6 FPGA LX9 MICROBOARD

http://www.em.avnet.com/en-us/design/drc/Documents/Xilinx/TE-AES-S6MB-LX9-G-

13.2-V2.pdf

8. Configuring the Xilinx Spartan - 6 LX9 MicroBoard:

http://www.em.avnet.com/Support%20And%20Downloads/Avnet_Spartan-

6_LX9_MicroBoard_Configuration_Guide_v1_1.pdf

9. Tutorial 1 Creating an AXI – based Embedded System:

http://www.eeworld.com.cn/uploadfile/Xilinx/uploadfile/201107/20110712024756897.

pdf

10. Spartan-6 Family Overview:

http://www.xilinx.com/support/documentation/data_sheets/ds160.pdf

11. Spartan-6 FPGA Data Sheet: DC and Switching Characteristics:

http://www.xilinx.com/support/documentation/data_sheets/ds162.pdf

12. Spartan6 Product Brief:

http://www.xilinx.com/publications/prod_mktg/Spartan6_Product_Brief.pdf

Bibliografía

Page 21: INTRODUCCIÓN A SISTEMAS EMBEBIDOS, VHDL, ISE (XILINX ... · 5 Sistemas digitales. Guía 8 11) Como puede observar en la figura 7 ya aparece el nombre de la entidad, coloque en las

Sistemas digitales. Guía 8 21

13. Spartan-6 FPGA Packaging and Pinouts: Product Specification:

http://www.xilinx.com/support/documentation/user_guides/ug385.pdf

14. Driver (C:\Xilinx\14.7\ISE_DS\common\bin\nt64\digilent):

http://forums.xilinx.com/t5/General-Technical-Discussion/xilinx-spartan-6-lx9-

microboard-ise-driver/m-p/317679#M13784

15. http://xgoogle.xilinx.com/search?output=xml_no_dtd&ie=UTF-8&oe=UTF-

8&client=support&proxystylesheet=support&site=Answers_Docs&filter=0&resultsVie

w=category&tab=sd&num=1000&sortBy=displayOrder&show_dynamic_navigation=1

&sort=date%3AD%3AR%3Ad1&documentClass=Document&requiredfields=-

Archived%3Atrue&getfields=*&q=+inmeta:Document%2520Type%3DPackage%2520

Specifications+inmeta:Devices%3DSpartan%252D6+inmeta:Document%2520Class%3

DDocument+inmeta:Product%2520Type%3DSilicon%2520Devices&dnavs=inmeta:Do

cument%2520Type%3DPackage%2520Specifications+inmeta:Devices%3DSpartan%2

52D6+inmeta:Document%2520Class%3DDocument+inmeta:Product%2520Type%3D

Silicon%2520Devices

16. http://xgoogle.xilinx.com/search?output=xml_no_dtd&ie=UTF-8&oe=UTF-

8&client=support&proxystylesheet=support&site=Answers_Docs&filter=0&resultsVie

w=category&tab=sd&num=1000&sortBy=date&show_dynamic_navigation=1&sort=d

ate%3AD%3AR%3Ad1&documentClass=Document&requiredfields=-

Archived%3Atrue&getfields=*&q=+inmeta:Document%2520Type%3DApplication%2

520Notes+inmeta:Devices%3DSpartan%252D6+inmeta:Document%2520Class%3DDo

cument+inmeta:Product%2520Type%3DSilicon%2520Devices&dnavs=inmeta:Docum

ent%2520Type%3DApplication%2520Notes+inmeta:Devices%3DSpartan%252D6+in

meta:Document%2520Class%3DDocument+inmeta:Product%2520Type%3DSilicon%

2520Devices

17. http://www.fpga4fun.com/JTAG.html

18. http://linuxzone.es/crear-lanzadores-dentro-de-los-menus-de-gnome/