SISTEMAS DIGITALES

LABOROTORIO IV

CONTADOR

Un contador binario es un circuito lógico secuencial que se utiliza para contar, el número de pulsos binarios aplicados a su entrada de clock.
Normalmente posee solo una entrada, sin embargo posee un número diferente de salidas que, generalmente, se incrementan un valor numérico por incrementos binarios.
Un contador binario con 4 salidas puede producir patrones de salida representando a los números binarios desde 0000 al 1111.
Ahora con la ayuda de la tarjeta Basys 2 y programación elaboraremos este contador.


Descripción general de la tarjeta BASYS 2


                                                                                         Tarjeta Basys 2 

La tarjeta BASYS 2 es una tarjeta de desarrollo fabricada por la cmpanía DIGILENT que contiene una FPGA modelo Spartan 3E de XILINX. Está diseñada para el aprendizaje de la síntesis de circuitos de complejidad media utilizando un entorno de desarrollo profesional. Además de la citada FPGA, esta tarjeta contiene una serie de recursos que pueden ser utilizadas en los diseños de los circuitos. Concretamente contiene:
  •  4 pulsadores
  •  8 conmutadores
  •  8 LEDS
  •  4 displays de 7 segmentos
  •  Un conector de teclado de PC
  •  Una salida de vídeo VGA
Todos estos recursos se encuentran conectados a las plantillas de la FPGA de la forma que se indica en la siguiente figura:
Además de los recursos integrados en la tarjeta, existe la posibilidad de utilizar entradas y
salidas externas, las cuales también se encuentran conectadas a las patillas de la FPGA y que se encuentran disponibles en los conectores externos del entrenador presente en cada puesto
del laboratorio (conectores marcados como ENTRADAS DIGITALES y SALIDAS DIGITALES). En el enunciado de cada práctica se indicarán las patillas concretas de la FPGA que se corresponden con estas entradas y salidas.

Síntesis de circuitos mediante la tarjeta BASYS 2

La síntesis de circuitos se realizará mediante el lenguaje de descripción hardware VHDL. Se
compilará utilizando el entorno ISE de XILINX que se encontrará disponible en el ordenador de cada puesto del laboratorio. Este entorno es capaz de crear un archivo para la configuración de la FPGA a partir del código VHDL que se escriba (archivo de “bit stream” con extensión .bit). Dicho archivo debe ser cargado en la tarjeta BASYS 2. Esto hace que el hardware interno de la FPGA se configure para seguir las especificaciones hardware descritas. Para volcar el contenido del archivo en la FPGA y configurarla es necesario utilizar el programa ADEPT de DIGILENT, el cual también estará disponible en el ordenador de cada puesto. 
La estructura básica de un diseño VHDL

Un diseño VHDL consiste en la especificación de un hardware concreto que se quiere sintetizar en el interior de la FPGA. Para escribir el código VHDL se utilizará el editor del entorno ISE, y serán necesarios obligatoriamente los siguientes archivos:

1. Uno o varios archivos conteniendo el código VHDL, (dependiendo de su complejidad aveces es más sencillo separar el código en varios ficheros independientes). En estos archivos se declararán entidades (“entity”) cuyas entradas y salidas tendrán nombres arbitrarios elegidos por el desarrollador.

2. Un archivo de asociaciones donde se le dice al compilador qué patillas de la FPGA se corresponden con cada entrada y salida declaradas en las entidades que componen el circuito. Este fichero es IMPRESCINDIBLE para generar el “bit stream”. La sintaxis empleada en este fichero es muy sencilla y se describe en el ejemplo siguiente:

Encendido de un LED mediante un conmutador.

El objetivo de este ejemplo es demostrar cómo se sintetiza un circuito que sea capaz de reflejar en un LED el valor lógico proporcionado por un conmutador. Se utilizarán los recursos de la tarjeta BASYS 2.
Se realizará con dos ficheros: uno de código VHDL y otro de asociaciones.

FICHERO PRUEBA_LED.VHD (fichero de código VHDL)

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity circuito is
port (
CONMUT : in STD_LOGIC; -- Conmutador conectado a una entrada
LED : out STD_LOGIC -- LED conectado a una salida
);
end circuito;
architecture a_circuito of circuito is
begin
LED<=CONMUT;

end a_circuito;


FICHERO DE ASOCIACIONES: ASOCIACIONES.UCF

NET "CONMUT" LOC = "P11"; # Conmutador 0
NET "LED" LOC = "M5"; # LED0

Con estos dos ficheros se puede ya compilar el código y obtener un “bit stream”. En el fichero

VHDL declaramos una entidad llamada “circuito” con una entrada llamada CONMUT y una
salida llamada LED. En su descripción funcional, decimos que dicha salida se corresponde con
la entrada (de esta manera el valor del LED variará según el valor digital del conmutador). Es
por tanto un circuito combinacional. En el fichero de asociaciones indicamos cuáles son las
patillas de la FPGA que se asocian físicamente con la entrada y la salida de la entidad. Fíjese
que se asocian exactamente con las patillas donde se encuentran conectados los recursos de la tarjeta BASYS 2.

                                                                                                                         Diagrama Contador en ISE


                                                                                                                                               Archivo .UCF



                                                                                                    Montaje Contador con pulsador de"0" a "9" y de "a" a "f" .