CONTADOR BCD DECODIFICADO A DECIMAL


CONTADOR BCD DECODIFICADO A DECIMAL

En esta práctica vamos realizar un contador bcd decodificado a decimal que consta de permiso de reloj y borrado asíncrono.

En este ejercicio realizaremos el diseño del contador mediante un decodificador de 4 bits implementado por XILINX, una puerta AND de dos entradas implementada también , un buffer de entrada para establecer una entrada de reloj (BUFGTS) y finalmente un decodificador que implementaremos nosotros mediante puertas lógicas contenidas en el software.

  1. Creación del esquemático:

Para la creación del esquemático debemos hacer como en el ejercicio anterior, cuyos pasos ya hemos definido previamente. Entrando en File/New Project crearemos el proyecto el cual en este caso llamaremos contabin2 y de tipo esquemático.

2.

Una vez creado seleccionamos New Source , elegiremos  Schematic y le pondremos el nombre contador. Posteriormente iremos a la inserción de símbolos implementados (symbol), representados en el cuadro de fuentes Sources. Ahora en lugar de elegir un símbolo lógico, elegiremos un contador embebido de 4 bits con chip enable y clear (CB4CE).

                                               3.

 

Seleccionando el símbolo esquemático del mismo (se pondrá en rojo) y con el botón derecho del ratón iremos a: object properties>>symbol info y ahí nos aparecerá un cuadro de información del dispositivo.

                                   4.

 

  1. 2.     CREACIÓN DEL SÍMBOLO DEL DECODIFICADOR:

El matiz de aprendizaje y novedad viene ahora, aquí se creará el símbolo , mediante puertas lógicas, un embebido del decodificador que constará de cuatro entradas y 10 salidas y que llamaremos decodificador.  Para hacer esto deberemos ir a New source y en el cuadro crear un tipo esquemático (Schematic) y con el nombre citado previamente, ahí se nos abrirá un cuadro vacío en el cual crearemos el diseño tal y como se ve en la siguiente imagen:

                                                           5

Los pasos para la creación son los siguientes:

  • ·         Crearemos un cable mediante add wire (marcado en rojo en la imagen).
  • ·         Le daremos un nombre en add net  name (marcado en azulen la imagen).

 

6.

 

Con estos dos pasos ya hemos creado una línea de bus, ahora tenemos que crearle un etiquetado de interconexión.

Mediante Add bus tap iremos insertando las líneas de salida del bus, en este caso irán posicionados en left  y se colocarán como vemos en la imagen:

 

                                               7.

 

 

  • ·         MONTAJE DEL DISEÑO ESQUEMÁTICO:

Posteriormente ya iremos creando el diseño tal y como hemos visto previamente, mediante interconexiones, cabe destacar que hemos insertado como novedad unos inversores en la entrada del decodificador que vienen en los símbolos creados por XILINX.

                                   8.

 

 

Una vez hallamos creado las líneas de salida del buffer de entrada del decodificador, crearemos un etiquetado de las mismas. Para ello seleccionamos add net  name  de nuevo y creamos el etiquetado posicionándonos en la primera línea, llendo al cuadro izquierdo de processes y nombrándolo esta vez como Q(3). Debajo tenemos la opción de decrementación del nombre (Decrease the name), mediante la cual  iremos insertando línea a línea los nombres sin necesidad de escribirlos uno a uno (opcional).

                                   9.

Finalmente etiquetaremos las salidas con el nombre led, como ya hemos aprendido y como vemos en el diseño general (led 0 a led 9).

Con todo esto ya hemos creado nuestro símbolo esquemático, ahora solo queda guardarlo y en processes, seleccionando previamente en sources en modo implementación el decodificador.sch, daremos doble click sobre create schematic symbol. ¡ya hemos creado el símbolo finalmente!

10.

 

Ahora dentro de contador.sch crearemos el conexionado entre el contador y el decodificador como y su etiquetado mediante taps y add net name, la única diferencia es que ahora los taps en lugar de ser de tipo left serán de tipo right por la orientación del esquema.

                        11.

 

Las adiciones a destacar en el circuito se muestran en la siguiente imagen:

                        12.   

  • ·         Bufgts: es un símbolo proporcionado por XILINX que usamos para la entrada de reloj, buferizamos mediante esto una entrada de reloj en la macrocelda.
  • ·         AND de dos entradas nos hará un clear dando 1 lógico en su salida en la secuencia 1010.
  • ·         TC se pondría a 1 lógico si todas las salidas se pusieran a 1 (conteo hasta 16 decimal), en este caso solo pasaría si hubiera un error.
  • ·         Las etiquetas S0 a S9 son las de salida final a  los pines que conectaremos  a la salida con el mundo real.

 

 

  • ·         CREACIÓN DEL TEST BENCH:

Para crear el test bench debemos hacer los mismos pasos del ejercicio anterior  con la diferencia de que este es un circuito que tendrá un sistema secuencial. Seleccionaremos la entrada de reloj single CLOCK, en flanco ascendente de 100ns por ciclo y un inicio a los 15ns y un delay en la salida de 15ns. Lo inicializaremos a los 2500ns.

13.   

 

                             14.            

15.   

16.     

En las siguientes imágenes podemos ver el proceso de simulación. Primero abrimos el archivo test bench y después ejectuamos la simulación del mismo. Asignamos el chip enable en los primeros 100-15 ns, permitido según configuración. Podemos ver como el periodo está representado en femtoms que es el equivalente a 0,001 ps. En este caso son 20000000000. El duty cicle equivale a 0.5 lo que equivale  al 50% de trabajo de ciclo de servicio. En la imagen 16 podemos ver ampliado el diagrama de simulación y creamos un segmento de medida de tiempos para observar los previsto: 15ns.

En la siguiente imagen(17) podemos ver la simulación real, simulación post-fit seleccionado en las opciones de fuentes>> sources for:

17.   

  • CREAMOS EL ARCHIVO DE RESTRICCIONES:
  • HACEMOS LA SÍNTESIS TRANSLATE  FITTING Y GENERAMOS EL ARCHIVO DE PROGRAMA :
  • CONFIGURAMOS, GENERAMOS EL ARCHIVO .JED Y EJECUTAMOS CON EL DISPOSITIVO

 

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s