You are on page 1of 10

Usando Xilinx ISE Simulator 19/08/17 22)56

Usando Xilinx ISE Simulator MINICURSO DE RELOJ DIGITAL

2012/12/04 por Carlos Ramos 2 comentarios Crea un reloj digital en VHDL,


con ajuste manual, con este
mini-curso gratuito!

Nombre

Esta pequea gua detalla los pasos necesarios para realizar una simulacin con ISim (o Xilinx ISE
Simulator) para la versin 13.4 del software Xilinx ISE Design Suite. Correo electrnico

1. Inicia Project Navigator ESTOY LISTO!

Para este tutorial, se asume que crearemos un divisor de frecuencia. Primero que nada, inicia el
programa Project Navigator, disponible en Inicio > Todos los programas > Xilinx ISE Design Suite
13.4 > ISE Design Tools > Project Navigator. Buscar en este sitio

2. Crea un nuevo proyecto


ACERCA DEL AUTOR
En la ventana del navegador de proyectos, ve a File > New Project. Introduce un nombre para el
proyecto y una descripcin y presiona Next. En la ventana de Project Settings es necesario
ajustar los parmetros para el FPGA en cuestin. Para los propsitos de este tutorial, se
establecen los valores para una tarjeta Basys2 (figura 1).

Es importante asegurarnos de que el simulador es ISim (VHDL / Verilog).


Mi nombre es Carlos Ramos, y
soy M. en C. en ingeniera
elctrica. En mi tiempo libre
escribo sobre el desarrollo de
sistemas digitales, o cualquier
cosa relacionada a VHDL o FPGA.
Ms.

http://www.estadofinito.com/usando-xilinx-ise-simulator/ Pgina 1 de 10
Usando Xilinx ISE Simulator 19/08/17 22)56

ENTRADAS RECIENTES

Figura 1: Propiedades del proyecto. Un LED parpadeando, en VHDL

3. Agrega una nueva fuente


Contadores en VHDL

Metrnomo en VHDL (3 de 3):


Creamos la fuente del divisor de frecuencia, mostrada en el listado 1.
Ahora me ves

?
Listado 1: Divisor de frecuencia. De binario a siete segmentos: la
conversin
1 library IEEE;
2 use IEEE.STD_LOGIC_1164.ALL
ALL;
3 Metrnomo en VHDL (2 de 3):
4 entity clk200Hz is Alguien dijo variable?
5 Port (
6 entrada: in STD_LOGIC;
7 reset : in STD_LOGIC;
8 salida : out STD_LOGIC
9 );
10 end clk200Hz;
11
12 architecture Behavioral of clk200Hz is
13 signal temporal: STD_LOGIC;
14 signal contador: integer range 0 to 124999 := 0;
15 begin
16 divisor_frecuencia: process (reset, entrada) begin
17 if (reset = '1') then
18 temporal <= '0';
19 contador <= 0;
20 elsif rising_edge
rising_edge(entrada) then
21 if (contador = 124999) then
22 temporal <= NOT
NOT(temporal);
23 contador <= 0;
24 else
25 contador <= contador+1;
26 end if
if;
27 end if
if;
28 end process
process;
29
30 salida <= temporal;

http://www.estadofinito.com/usando-xilinx-ise-simulator/ Pgina 2 de 10
Usando Xilinx ISE Simulator 19/08/17 22)56

31 end Behavioral;

Figura 2: Insertando un mdulo VHDL.

4. Sintetiza el componente
Se realiza la sntesis del diseo para verificar que la sintaxis es correcta. Para esto, es necesario
realizar tres acciones (mostrado en la figura 3):

1. Seleccionar la vista de implementacin.


2. Elegir el mdulo a ser sintetizado.
3. Seleccionar la opcin Synthetize - XST.

ESTADO FINITO EMPIEZA AQU! BLOG PROYECTOS CONTACTO ACERCA DE

http://www.estadofinito.com/usando-xilinx-ise-simulator/ Pgina 3 de 10
Usando Xilinx ISE Simulator 19/08/17 22)56

Figura 3: Realizando la sntesis.

5. Crea el banco de pruebas


Tras terminar la sntesis de manera satisfactoria, agregamos un nuevo banco de pruebas VHDL
(figura 4) con el cdigo del listado 2.

?
Listado 2: Banco de pruebas del divisor de frecuencia.
1 LIBRARY ieee;
2 USE ieee.std_logic_1164.ALL
ALL;
3
4 ENTITY clk200Hz_tb IS
5 END clk200Hz_tb;
6
7 ARCHITECTURE behavior OF clk200Hz_tb IS
8 COMPONENT clk200Hz
9 PORT
PORT(
10 entrada : IN std_logic;
11 reset : IN std_logic;
12 salida : OUT std_logic
13 );
14 END COMPONENT
COMPONENT;
15
16 -- Entradas
17 signal entrada : std_logic := '0';
18 signal reset : std_logic := '0';
19 -- Salidas
20 signal salida : std_logic;
21 constant entrada_t : time := 20 ns;
22 BEGIN
23 -- Instancia de la unidad bajo prueba.
24 uut: clk200Hz PORT MAP (
25 entrada => entrada,
26 reset => reset,
27 salida => salida
28 );

http://www.estadofinito.com/usando-xilinx-ise-simulator/ Pgina 4 de 10
Usando Xilinx ISE Simulator 19/08/17 22)56

29
30 -- Definicin del reloj.
31 entrada_process :process
process
32 begin
33 entrada <= '0';
34 wait for entrada_t / 2;
35 entrada <= '1';
36 wait for entrada_t / 2;
37 end process
process;
38
39 -- Procesamiento de estmulos.
40 estimulos: process
41 begin
42 reset <= '1'; -- Condiciones iniciales.
43 wait for 100 ns;
44 reset <= '0'; -- A trabajar!
45 wait
wait;
46 end process
process;
47 END
END;

Figura 4: Insertando un banco de pruebas.

6. Simula el comportamiento
Para realizar la simulacin del banco de pruebas recin desarrollado, es necesario:

1. Seleccionar la vista de Simulation.


2. Elegir el banco de pruebas a ser simulado.
3. Seleecionar la opcin Simulate Behavioral Model.

http://www.estadofinito.com/usando-xilinx-ise-simulator/ Pgina 5 de 10
Usando Xilinx ISE Simulator 19/08/17 22)56

Figura 5: Eligiendo el modo de simulacin.

7. Modifica los propiedades


Si realizaste la simulacin del divisor de frecuencia siguiendo todos los pasos anteriores, lo ms
probable es que no hayas obtenido la seal de salida. La razn es simple: la simulacin abarc un
total de 1000 ns pero el nuevo reloj necesita de un periodo de 5 ms para poder ser observado.

Para modificar el tiempo, es necesario dar click con el botn derecho del ratn sobre Simulate
Behavioral Model (vase figura 5). Esto nos mostrar una nueva pantalla (figura 6) que nos
permite modificar el tiempo de la simulacin.

http://www.estadofinito.com/usando-xilinx-ise-simulator/ Pgina 6 de 10
Usando Xilinx ISE Simulator 19/08/17 22)56

Figura 6: Modificando las propiedades de simulacin.

Modificamos el tiempo de 1000 ns a 100 ms y volvemos a simular. El resultado se muestra en la


figura 7.

Figura 7: Resultado de la simulacin.

8. Repetir
Algunas veces es necesario cambiar los estmulos del banco de pruebas o modificar el tiempo de
la simulacin. En cualquier caso, slo es necesario cerrar la ventana de la simulacin actual, si
alguna se encuentra abierta, y volver a ejecutar el proceso de simulacin para ver reflejados los
nuevos cambios.

En caso de dudas, favor de comentar :).

Entradas Relacionadas

http://www.estadofinito.com/usando-xilinx-ise-simulator/ Pgina 7 de 10
Usando Xilinx ISE Simulator 19/08/17 22)56

1. Divisor de frecuencia con VHDL


2. Seal de control para motor DC mediante PWM y VHDL
3. Seal de Control para Servomotores con VHDL
4. Reloj digital con VHDL
5. Multiplexores y visualizadores de siete segmentos

Archivada en: Teora


Etiquetada con: Xilinx

Comentarios

SERGIO LEAL PEREZ dice


2015/03/25 en 17:11

Disculpa, quiero simular un contador... un simple contador...


library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;

entity Contador is
Generic (width:POSITIVE:=8);
Port ( CLK : IN STD_LOGIC;
RESET : IN STD_LOGIC;
ENAMBLE : IN STD_LOGIC;
SALIDA : OUT STD_LOGIC_VECTOR (WIDTH-1 downto 0));
end Contador;

architecture Behavioral of Contador is SIGNAL cnt : UNSIGNED(width-1 DOWNTO 0);


begin
pSeq : process (CLK, RESET)
begin if RESET = '1' then
cnt '0');
elsif (CLK'event and CLK='1') then
if enamble = '1' then
cnt <= cnt + 1;
end if;
end if;
end process;
SALIDA <= std_logic_vector(cnt);
end Behavioral;

supuesamente ese contador ya cuenta con reset y ensamblado, y no tiene error de


syntax... entonces en el emulador que pasa que le forzo el relog y las constantes... que le
hago a mis valores Salida y cnt para que empiecen a funcionar??? a mi me marcan ROJO
y con XXXXXXXX

http://www.estadofinito.com/usando-xilinx-ise-simulator/ Pgina 8 de 10
Usando Xilinx ISE Simulator 19/08/17 22)56

Alguna idea???

Responder

Carlos Ramos dice


2015/03/27 en 22:45

Sergio, cuentas con el archivo de simulacin? Saludos.

Responder

Deja un comentario
Tu direccin de correo electrnico no ser publicada. Los campos obligatorios estn marcados
con *

Comentario

Nombre *

Correo electrnico *

Web

PUBLICAR COMENTARIO

Recibir un email con los siguientes comentarios a esta entrada.

Recibir un email con cada nueva entrada.

http://www.estadofinito.com/usando-xilinx-ise-simulator/ Pgina 9 de 10
Usando Xilinx ISE Simulator 19/08/17 22)56

LO MS POPULAR ETIQUETAS CONECTA CON ESTADO FINITO

De binario a siete segmentos: la conversin 24


Alliance Basys2 C# Fedora Linux Pygame Python
comentarios

Divisor de frecuencia con VHDL 77 comentarios


Serial VHDL WordPress Xilinx

Reloj digital con VHDL 97 comentarios

Estado Finito

http://www.estadofinito.com/usando-xilinx-ise-simulator/ Pgina 10 de 10

You might also like