Sobre mi.

Mi foto
Santander, CANTABRIA, Spain
Bienvenido a mi Blog, soy César Zazo Serrano y os mostraré las actividades realizadas durante el curso 2012/2013 en la asignatura de desarrollo y construcción de prototipos electrónicos que imparte nuestro profesor Don José Luis Del Val en el Centro Integrado De Formación Profesional Nº1 situado en Peñacastillo.

miércoles, 5 de diciembre de 2012

Contador de 4 bits.


En la siguiente práctica vamos a realizar el estudio de la creación de un símbolo a partir de un esquema a través del siguiente ejercicio:
Implementar un Contador Binario de 4 bit’s con permiso de reloj y borrado asíncrono. Su salida será decodificada (binario a decimal) sobre una barra de 10 LED’s, los cuales nos mostrarán la cuenta a razón de su peso, tal como indica la tabla de verdad del decodificador.

Tabla de la verdad:



Las salidas corresponden a:
Led9 = Q3 /Q2 /Q1 Q0
Led8 = Q3 /Q2 /Q1 /Q0
Led7 = /Q3 Q2 Q1 Q0
Led6 = /Q3 Q2 Q1 /Q0
Led5 = /Q3 Q2 /Q1 Q0
Led4 = /Q3 Q2 /Q1 /Q0
Led3 = /Q3 /Q2 Q1 Q0
Led2 = /Q3 /Q2 Q1 /Q0
Led1 = /Q3 /Q2 /Q1 Q0
Led0 = /Q3 /Q2 /Q1 /Q0

Para la realización del presente ejercicio  utilizaremos la herramienta grafica de captura del programa ISE que se llama ECS.
Para realizar el diseño utilizaremos la herramienta que gestiona los diseños:
Project Navigator/Design manager.

Comenzaremos creando un nuevo proyecto (FileàNew Project…) una vez abierto el programa ISE y le daremos un nombre, en este caso CONTBIN siendo de un tipo esquemático.


Pulsaremos el botón siguiente y procederemos a configurar la Familia, Dispositivo, Encapsulado, Velocidad, Sintetizador, Simulador y Lenguaje de simulación.


Una vez configurado, seguiremos al próximo paso que consistirá en crear una nueva fuente, que nombraremos Contbin y que será de tipo esquemático.


Ahora procederemos a diseñar el esquema del contador añadiendo los componentes del mismo, el diseño del contador binario de 4bits con permiso de reloj y borrado asíncrono, queda resuelto al seleccionar la primitiva desarrollada por Xilinx ‘CB4CE’, para obtener los datos de esta, deberemos pulsar con el botón izquierdo y seleccionar sus propiedades, y en el panel que nos muestra las mismas, pulsaremos “Symbol info”:



Para los no angloparlantes, más o menos lo que nos explica son las siguientes características:

El  elemento esta diseñado de una forma asíncrona, siendo un contador binario.
 El clear asincrónico (CLR) de entrada, cuando está en alto, anula todas las demás entradas y las salidas de las Q, el contador (TC) y la habilitación del reloj a un nivel lógico cero, independiente de las transiciones de reloj.
Las salidas Q incrementan cuando el reloj de entrada (CE) esta en alto
El contador ignora transiciones del reloj cuando CE esta en bajo.
La salida TC es alta cuando todas las salidas Q son altos.
 La longitud máxima de la barra está determinada por los retardos de propagación acumulados CE-a-TC en comparación con el período de reloj.
El período de reloj debe ser mayor que n (TCE-TC), donde n es el número de etapas y el tiempo de tec-TC es el retardo de propagación CE-a-TC de cada etapa.

A lo largo del CPLD existen unas rutas dedicadas tales como:
Las líneas que van a los pines de 3-state en los IOB’s.
Las líneas que van a los pines de set/reset en los flip-flop’s.
Las líneas que van a los pines de reloj en lso flip-flop’s.
Estas rutas tienen características especiales con bajos retardos y minimización del skew. Para hacer uso de estos
recursos deberemos utilizar en el esquema unas primitivas especiales preparadas para ello como, por ejemplo,
BUFGSR, BUFGTS ó BUFG.
En nuestro ejercicio, para minimizar el skew, vamos a utilizar BUFG.



Con la ayuda de la tabla superior vamos a realizar el diseño del decodificador “binario-decimal”. Para ello crearemos un nuevo archivo fuente de tipo esquemático que llamaremos decod.sch
Resolvemos las ecuaciones de salida con puertas ‘and’.



Las entradas del decodificador las vamos a integrar en un bus, para lo cual, en ECS realizaremos el dibujo del bus como una NET que nombraremos BUS Q(3:0).
Además habrá que añadir la opción de que el nombre sea visible.



Procederemos a conectar las líneas de entrada al BUS utilizando el icono Bus Tap.: 



Añadimos también los nombres de las net´s (led1 --- Led9)



Añadimos además las marcas Imput/Output : 



Ahora desde el Project navigator generamos el símbolo del decodificador para utilizarlo en el esquema general.


Una vez creado el símbolo, vamos a poder llamarlo e introducirlo en el esquemático contbin original, añadiremos el bus y los nombres de las líneas, así como los I/O. Una vez realizado esto observaremos en el esquema que el decodificador forma en la parte inferior del esquema general.



Una vez finalizado el diseño debemos realizar la simulación del mismo. Para ello vamos a crear el fichero de test bench waveform, el cual es un fichero VHDL que nos permite probarlo denomidado “uut” (uni under test).

Pulsando el botón derecho sobre el fichero ‘contabin.sch’ seleccionamos la opción de nueva fuente.
 En la siguiente pantalla elegimos la opción de ‘Test Bench Waveform’, y le llamamos ‘tb_contbin’.



Nos aparecerá la siguiente ventana desde la que configuraremos los parámetros de simulación.
Esta ventana de configuración la dejamos por defecto.
Podemos ver que el tiempo del reloj en estado alto es de 100ns, al igual que en el estado bajo. Por otra parte el ‘setup time’ y el ‘hold time’ es de 15 ns.
También se define la entrada de reloj (elegimos el pin ‘CLOCK’).
 El tiempo de test es 2500ns para que podamos observar toda la cuenta.



Una vez pulsado finsih nos aparecerá una pantalla donde podemos ver las formas de la onda del simulador.



Introduciremos en las entradas para ver cuál es la respuesta pulsando con el botón izquierdo encima del fondo azul de las entradas

No hay comentarios:

Publicar un comentario