Hola a todos, en esta
entrada os voy a explicar cómo se crea un contador que consta de 4 bits, sin
embargo, para hacerlo funcionar vamos a tener que crear nosotros un
decodificador, que también os diré como
hacerlo.
Como siempre nuestro primer paso va a ser crear un nuevo
proyecto en el Xilinx, y después de eso, pondremos el nombre, en mi caso se va
a llamar “contador4bits”, pondré que quiero crear un “esquemático” y usaré
estos parámetros predefinidos que os pongo a continuación.
Y aquí os dejo los parámetros predefinidos.
Una vez aceptemos esta ventana, tendremos que añadir una
nueva fuente “new source”, que tendremos que declarar como “esquemático” y
ponerla un nombre, yo prefiero no complicarme, por eso la llamo como el
proyecto en sí, es decir “contador4bits”.
Una vez establecido todo esto, procederemos a empezar con el
proyecto, por lo que deberemos buscar el componente CB4CE.
En algunos casos he tenido la necesidad de saber de algunos
componentes, a veces resultaba un suplicio porque no encontrabas sus datos y
era un tiempo que perdías, en vez de estar haciendo otras cosas, por eso,
xilinx ha desarrollado una aplicación que nos informa acerca del componente, en
mi caso, para revisar el que acabo de introducir, basta con dar doble clic sobre
el componente y darle a “symbol info”, y ahí nos saldrá información que tal vez
estemos buscando en otra parte. Fijaros en la ventana. Gracias a esto encontré
la tabla lógica del componente, y en cuestión de unos segundos, por eso, os
aconsejo que primero busquéis aquí, que siempre suele estar lo que necesitas.
Ya está metido nuestro contador, ahora toca hacer el
decodificador, para eso, tenemos que crear una nueva fuente y trabajar en esa,
como os digo siempre, vamos a Project “new
source” , declaramos como “esquemático” y lo nombramos, yo lo he llamado
“decodificador”.
Nos saldrá una nueva página. Será en esta en la que creemos
nuestro decodificador, lo primero que vamos a hacer es crear un bus de
entradas, es muy sencillo, el primer paso es crear una línea normal, y después
en la parte de la izquierda, donde pone “name”, nombrarla como “Q(0:3)”, para
que automáticamente se refleje como bus.
Para añadir entradas utilizamos esta opción que aparece en
la barra de herramientas superior.
Y nos quedará más o menos así.
Como veis, el bus consta de 4 entradas, ahora tenemos que ir
introduciendo las respectivas puertas and4 y las inversoras.
Este es más o menos el proyecto resultante. Es algo
complicado de interpretar, pero con paciencia se va haciendo, es importante que
os fijéis que esté bien conectado, porque sino no irá bien la simulación.
Bien, el siguiente paso es poner el nombre a las entradas
del bus. No tenemos más que coger y nombrar a cada entrada, por ejemplo, una de
ellas va a ser Q(3). Como es de 4 bits, tendremos que poner cuatro entradas,
del 0 al 3.
Una vez nombradas las entradas, tocará hacer lo mismo con
las salidas, para eso cogemos la función “add I/O marker”.
Una vez seleccionado, iremos marcando casa salida y
nombrándola, son 10 salidas, yo las voy nombrando “led”, y comenzando en la 0 y
acabando en la 9.
Ya tenemos acabado nuestro decodificador, una vez hecho esto
tenemos que crear el símbolo que representa a este esquemático, para eso
tenemos que darle a la opción “create schematic symbol” que nos saldrá al
seleccionar la fuente del “decodificador”.
Una vez creado, abrimos el proyecto del contador y, en
symbols, buscamos nuestro componente, como recordaremos, lo llamábamos “decodificador”, una vez encontrado, lo
introduciremos en el proyecto y lo colocaremos como os muestro en la imagen.
Como veis, creamos un bus de 4 entradas, que serán las que
utilice el contador, después nombramos cada uno de los cables así como el bus y
demás.
El siguiente paso será añadir un buffer, una puerta and de 2
entradas y las respectivas salidas del decodificador y el contador. Nos quedará
algo parecido a esto.
Esto es lo que nos debería quedar, más o menos. Una vez hecho
esto, empezaremos con el proceso de simulación. Para eso tendremos que crear
una nueva fuente y esta vez, en vez de seleccionar esquemático, seleccionaremos “test bench
waveform”.
Una vez demos a la opción, nos saldrá qué nombre queremos
ponerla así como ruta y demás. Cuando lo tengamos decidido, daremos a next,
aparecerán las partes del proyecto, es decir, en teoría, deberían aparecernos
2, una sería la de “contador4bits” y la otra sería la del “decodificador”.
Seleccionaremos la de “contador 4 bits” y le daremos a siguiente, una vez
hayamos hecho eso, nos saldrá esta venta.
Procurar
ser fieles a la imagen, para que no haya problemas inesperados. Una vez esté
esto, daremos a continuar. Una vez le pulsemos a continuar, tendremos que
configurar el comportamiento de las entradas para la simulación. Lo que nos
tiene que aparecer tiene que ser algo así.
Ya casi estamos preparados para simular, solo nos falta
configurarlo a 2500 ns. Os lo pongo de manera gráfica para que se entienda
mejor.
1.- Marcamos esa opción.
2.-Seleccionamos “simulate behabioral model”, damos botón
derecho y “properties”.
3.- Cambiamos los ns a 2500. Damos a ok y listo.
Una vez le demos a eso habremos configurado la velocidad de
simulación a 2500 ns, entonces le podremos dar doble clic a “simulate
behabioral model” y nos iniciará la simulación, si todo está bien, deberá
salirnos algo parecido a esta imagen.
Sí que es verdad que me dio un problema, por lo visto, tenía
un problema en una de las salidas, y por lo tanto, uno de los pulsos,
concretamente S4, se activaba a la par que el pulso 6.
Una vez tengamos la simulación bien hecha, será el momento
de generar el archivo “.ucf” y configurarlo para entrar en el entorno “PACE”
para poner los pines. Para ello tenemos que ir, en implementación, a
seleccionar nuestro archivo “contador4bits” y, en la parte de los procesos, a
la opción que pone “user contraints” y le damos a “create timing contraints”,
entonces se nos generará el archivo. Una vez generado basta con marcarlo, irnos
a “edit”, “preferences”, después daremos a “editors” y nos saldrá esta imagen.
Importante, hay que colocar el ticket done pone “floorplan
editor”, una vez hecho eso, daremos a Ok, y ya podremos pasar a meternos en el
entorno “pace”, para eso solo basta dar doble clic en el archivo “ucf”. Con eso
nos saldrá el entorno, como os muestro en la imagen.
Entonces procedemos a poner las entradas y las salidas, el
proceso es sencillo, basta con seleccionar lo que queremos en la parte de la
izquierda e irlo arrastrando hacia el pin que deseemos, en este caso, si sois
puntillosos, o bien vuestro diseño así lo precisa, podéis colocar los pines
según mejor os convengan.
Una vez seleccionados los lugares, basta con darle a guardar
y cerrar. En mi caso quedó de la siguiente manera.
Una vez hecho esto, pasaremos a generar los archivos “.fit “
y el tipo “.jed”, para eso haremos lo siguiente. Marcando la opción de
“contador4bits”, iremos en la ventana de procesos a la parte que dice
“implement design” y ahí le daremos a “fit”, entonces nos generará el archivo.
Obviamente, nos tiene que salir un ticket en verde cuando le
demos, de otra manera no nos lo generará por alguna causa desconocida.
Y para acabar solo nos queda generar el tipo “JED” para eso
tenemos que darle “generate programming file” que se encuentra justo debajo que
la opción para generar el tipo “fit “ que os muestro arriba, le daremos doble
clic, y ya estará generado nuestro archivo.
Y eso es todo, ahora solo nos quedaría emularlo en la
realidad, espero que os haya servido de ayuda a todos, un saludo!.
DESCARGAR PROYECTO AQUÍ
No hay comentarios:
Publicar un comentario