Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1
Descripción y Simulación de un Contador Bidireccional de 4 Bits
Primera Parte
Ing. Arturo J. Miguel de Priego Paz Soldán
www.tourdigital.net
amiguel@pucp.edu.pe
Chincha – Perú
27 de agosto de 2008
El contador de este tutorial consta de dos entradas (reloj, direccion) y una salida (cuenta). La
señal reloj es el reloj del contador, la señal direccion indica la dirección de la cuenta (0 para
descendente y 1 para ascendente). La señal cuenta indica el número actual en la salida del
contador. Esta señal está compuesta de 4 bits. En una cuenta ascendente de 1111 el contador
continúa con 0000 y en una cuenta descendente de 0000 pasa a 1111.
En este tutorial se describirá al contador utilizando VHDL a partir del algoritmo siguiente:
1. Declarar la entidad con señales reloj y direccion como entradas de un bit, y cuenta
como salida de cuatro bits.
2. Declarar en la arquitectura la señal n como un número binario de cuatro bits
inicializado en 0.
3. Definir el comportamiento del contador en un proceso:
Si ocurre un flanco positivo de reloj
Si direccion es ascendente
n=n+1
Sino
n=n–1
4. Asignar la salida:
cuenta = n
Los pasos 3 y 4 son concurrentes, es decir, sus sentencias tienen efecto al mismo tiempo. El
orden en el que aparecen en la descripción no determina el orden de ejecución. En cambio,
dentro del proceso el orden sí es importante. En este caso las asignaciones se realizan de
acuerdo a las condiciones cumplidas.
En ISE 10.1 existen plantillas de VHDL para varias construcciones típicas de circuitos lógicos.
Las plantillas se eligen de un menú y luego se editan para ajustar la descripción al diseño
lógico.
Tutorial de Xilinx ISE 10.1 – Primera Parte Chincha – Perú, Agosto 27, 2008
METODOLOGÍA DE DISEÑO
1. Seleccione File > New Project… Aparece una ventana que lleva el título New Project
Wizard – Create New Project (figura 1). Haga lo siguiente:
• En el campo Project name escriba Contador como nombre del proyecto.
• En el campo Project location ingrese un nombre de directorio (carpeta) o busque un
directorio para el proyecto. Si el nombre no existe se creará un nuevo directorio (o
subdirectorio) automáticamente.
• En la lista desplegable Top-level source type verifique que esté activa la opción HDL.
Figura 1
2. Presione el botón Next. Aparece una ventana para definir las propiedades del dispositivo.
Establezca las propiedades siguientes y deje las demás tal como están (figura 2):
Figura 2
3. Click Next. Aparece una ventana para crear un nuevo archivo fuente (figura 3).
Figura 3
4. Pulse sobre el botón New Source…. Aparece una ventana para seleccionar el tipo de
archivo (figura 4):
• Seleccione VHDL Module como el tipo de archivo fuente.
• En File name escriba Contador como el nombre del archivo (en este tutorial coincide
con el nombre del proyecto, mas puede ser otro nombre cualquiera).
• Verifique que la casilla Add to project esté seleccionada.
Figura 4
5. Pulse en Next. Aparece una ventana para definir la interfaz del módulo. Establezca los
puertos de entrada y salida tal como se muestra en la figura 5:
• Las señales reloj y direccion son entradas de un bit.
• La señal cuenta es un bus de salida de cuatro bits. Su MSB está indexado con 3 y su
LSB con 0, es decir, el bit de cuenta de mayor peso es cuenta(3) y el de menor peso es
cuenta(0).
Figura 5
Figura 6
Figura 8
9. Pulse en el botón Finish. En el entorno de trabajo aparece el archivo fuente (figura 9).
Algunas líneas de comentarios han sido removidas del archivo original.
Figura 9
10. La edición del circuito puede hacerse a partir de una plantilla para acelerar el tiempo de
escritura y evitar errores comunes de sintaxis:
a) Sitúe el cursor después de la línea de begin y antes de la última línea de texto (después
de la línea 34 y antes de la línea 37 de la figura 9).
b) Abra las plantillas del lenguaje seleccionando Edit > Language Templates…
Si prefiere, seleccione Window > Tile Vertically para hacer visible las ventanas
de plantillas y de diseño.
c) Pulse sobre los símbolos "+" siguiendo la secuencia VHDL > Synthesis Constructs >
Coding Examples > Counters > Binary > Up/Down Counters > Simple Counter.
d) Con Simple Counter seleccionado, elija Edit > Use in File, o pulse sobre el botón Use
Template in File de la barra de herramientas. Esta acción copia la plantilla seleccionada
en el archivo de texto VHDL
e) Cierre la ventana de las plantillas.
Figura 10
C. REVISIÓN DE LA SINTAXIS.
* HDL Compilation *
=======================================================
ERROR:HDLParsers - Cannot reanme dependency database for library
"work", file is "xst/work/hdpdeps.ref". Temporary database file
"D:\\VHDL\Xilinx\ISE10.1\Tutorial\xst\work\xil_2552_6" will remain.
System error message is: No such file or directory
16. Para crear las ondas de las señales de entrada, que servirán como estímulos para validar el
funcionamiento del diseño a través de las respuestas en la onda de la señal de salida, realice
los siguientes pasos:
a) Seleccione el archivo Contador en la ventana Sources.
b) Seleccione Project > New Source.
c) En New Source Wizard elija Test Bench WaveForm y escriba Contador_tbw en el
campo File Name.
Figura 12
17. Pulse en Next. Aparece la página Associated Source donde se indica que está asociándose
la forma de onda con el archivo Contador.
18. Pulse en Next. La página Summary muestra que el archivo fuente será agregado al
proyecto, y muestra el directorio, tipo y nombre.
19. Pulse en Finish. Aparece una ventana para inicializar y configurar la temporización del
diseño. Para este diseño la frecuencia de reloj es 25 MHz, la entrada direccion debe ser
válida 10 ns antes del flanco de subida del reloj y la salida cuenta debe ser válida 10 ns
después del flanco positivo del reloj. Complete los datos siguientes (figura 13):
Figura 13
20. Pulse en Finish. Aparecerá una ventana con las formas de las ondas. Si prefiere, edite la
onda de direccion para realizar una cuenta ascendente o mixta.
Figura 16