Práctica 6. Implementación de descripciones VHDL en dispositivos

Anuncio
Lab. de Diseño de Circuitos y Sistemas Electrónicos. Ing. Electrónica
Práctica 6. Implementación de descripciones VHDL en dispositivos Xilinx
1. Introducción.
En esta sesión de laboratorio se pretende realizar un diseño VHDL capaz de ser sintetizado sobre un
dispositivos físico de Xilinx. Para ello, basta con acceder al entorno de Xilinx Foundation, crear un proyecto
nuevo donde se indique que el tipo de descripción está basado en HDL en lugar de “schematic ”, y comenzar
la descripción utilizando el editor HDL del mismo modo que se hacía en el caso de ABEL. Así, será posible
sintetizar y simular el diseño de la forma habitual a través del simulador incorporado (sin necesidad de banco
de pruebas). El único problema que esto plantea es que además de disponer de un código VHDL correcto,
éste debe ser sintetizable y adaptarse a las normas de síntesis para Xilinx, con lo que la obtención de un
código VHDL correcto hasta poder realizar la simulación puede ser más laboriosa.
2. Objetivo de la práctica.
Diseñar en VHDL e implementar sobre FPGA, un cronómetro digital que muestre décimas de segundo,
segundos, y minutos.
Esta implementación se realiza sobre el dispositivo XC4010E-3PC84.
Las décimas de segundo se muestran en los LED que la placa de pruebas posee (la misma placa ya
empleada en la práctica primera de Xilinx), de tal modo que se enciende un LED diferente por cada décima
de
segundo
que
pasa,
realizando
desplazamiento
del
LED
iluminado.
Nombre :
decimas_led<9>..decimas_led<0>.
Los segundos se muestran en los dos display de 7 segmentos que están conectados a la placa (Nombre :
seg7seg1<6>..seg7seg1<0> y seg7seg2<6>..seg7seg2<0>). En cuanto a los minutos, éstos
se muestran como 14 salidas que en principio no se puede acceder con los recursos de visualización que la
placa proporciona, pero que debemos ser capaces de simular (Nombre : seg7min1<6>..seg7min1<0> y
seg7min2<6>..seg7min2<0>). El patillaje se indica en el apéndice de la memoria.
Se dispone de dos botones tipo pulsador, uno de inicio/paro de cuenta (Nombre : ini_paro), y otro de
reset de cuenta (Nombre : clear). Suponemos que tenemos un reloj externo de frecuencia 10Hz (Nombre :
clock. Existe una salida de fin de cuenta (Nombre: TC) que indica si el contador de minutos ha llegado al
final. El patillaje de las entradas se indica en el apéndice de la memoria. La representación de la salida sería:
MINUTOS
SEGUNDOS
décimas
2.1. Pasos a seguir.
El diseño es altamente modular, con lo que se puede hacer uso de un mismo módulo en varias ocasiones.
Los pasos a seguir son los siguientes:
1. Especific ar el funcionamiento del diseño.
2. Describir los diversos módulos en VHDL. Recordar que las salidas a display 7 segmentos y a LED
son activas a nivel bajo.
3. Unir todos los módulos para conformar el sistema completo.
4. Generar un banco de pruebas y simular el diseño en ModelSim. Puede resultar aconsejable simular
por separado cada módulo antes de simular el diseño completo.
Profesores: Alfredo Rosado. Manuel Bataller.
1
Lab. de Diseño de Circuitos y Sistemas Electrónicos. Ing. Electrónica
5. Una vez que el diseño es correcto en simulación, crear un proyecto en Xilinx Foundation al que se le
dice que es de tipo HDL, y en el que se incluyen todos los ficheros VHDL que intervienen en el
diseño (excepto el banco de pruebas).
6. Sintetizar el diseño y comprobar que no hay errores de síntesis, si los hubiera, probablemente sería
necesario modificar el código VHDL para que éste sea sintetizable.
7. Implementar en el dispositivo XC4010E-3PC84.
8. Si la implementación se realiza con éxito, descargar el programa en la placa de pruebas (la misma
placa que en la primera práctica de Xilinx) y chequear el correcto funcionamiento conectando un
generador de señal cuadrada de 10Hz de frecuencia a la entrada de reloj.
3. Documentación a entregar.
En las dos semanas siguientes a la realización de la práctica, se entregará un pequeño dossier que incluya
el código VHDL del diseño propuesto, los resultados de la simulación, y los resultados de la implementación
(lógica necesaria à CLB ocupados, velocidad máxima de funcionamiento, y aquellos datos que se
consideren relevantes en el diseño), así como la opinión personal acerca de la práctica realizada y
dificultades encontradas en el desarrollo de la misma.
4. Apéndice. Asignación de patillas para las entradas y salidas.
Los elementos de entrada/salida se encuentran marcados con colores en la figura de la placa. De todos
modos, el número de patilla es posible conocerlo mediante los números situados en las puntas de prueba
alrededor de la FPGA.
Azul oscuro y rojo: Entradas de reloj, reset e inicio/paro (aproximadamente).
Amarillo, verde: Salidas de los display de 7 segmentos y no visibles para minutos y segundos
Azul claro: Salidas para las décimas de segundo (sólo hay ocho, por lo que las dos últimas se aplican sobre
el punto decimal de los display 7 segmentos).
Profesores: Alfredo Rosado. Manuel Bataller.
2
Lab. de Diseño de Circuitos y Sistemas Electrónicos. Ing. Electrónica
#
#
#
#
Fichero de restricciones para CRONO, XC4010E-PC84
Para realizar la asignación de las entradas/salidas a patillas en concreto
basta con copiar este apéndice en un fichero con extensión .UCF e indicar
su utilización a través de las opciones de implementación
NET INI_PARO LOC=P78 ; # Entrada cercana a Vcc para un interruptor
NET CLOCK
LOC=P13 ; # Entrada reloj de la placa con oscilador externo ahi
NET CLEAR
NET TC
LOC=P56 ; # Boton RESET (SW4) de la placa (AZUL OSCURO)
LOC=P77 ; # el indicador de fin de cuenta de minutos (minuto 59)
# LINEA DE LED INFERIOR D9..D16
NET DECIMAS_LED<9> LOC=P61;
NET DECIMAS_LED<8> LOC=P62;
NET DECIMAS_LED<7> LOC=P65;
NET DECIMAS_LED<6> LOC=P66;
NET DECIMAS_LED<5> LOC=P57;
NET DECIMAS_LED<4> LOC=P58;
NET DECIMAS_LED<3> LOC=P59;
NET DECIMAS_LED<2> LOC=P60;
NET DECIMAS_LED<1> LOC=P37; # LED del punto decimal del display 7 segmentos
NET DECIMAS_LED<0> LOC=P41; # LED del punto decimal del display 7 segmentos
# DISPLAY U7 (La asignación de letras es la estándar)
NET SEG7_SEG1<6> LOC=P39; # LED a
NET SEG7_SEG1<5> LOC=P38;
NET SEG7_SEG1<4> LOC=P36;
NET SEG7_SEG1<3> LOC=P35;
NET SEG7_SEG1<2> LOC=P29;
NET SEG7_SEG1<1> LOC=P40;
NET SEG7_SEG1<0> LOC=P44; # LED g
# DISPLAY U8
NET SEG7_SEG2<6>
NET SEG7_SEG2<5>
NET SEG7_SEG2<4>
NET SEG7_SEG2<3>
NET SEG7_SEG2<2>
NET SEG7_SEG2<1>
NET SEG7_SEG2<0>
LOC=P49; # LED a
LOC=P48;
LOC=P47;
LOC=P46;
LOC=P45;
LOC=P50;
LOC=P51; # LED g
# SALIDAS NO VISIBLES
NET SEG7_MIN1<6> LOC=P10;
NET SEG7_MIN1<5> LOC=P9;
NET SEG7_MIN1<4> LOC=P8;
NET SEG7_MIN1<3> LOC=P7;
NET SEG7_MIN1<2> LOC=P6;
NET SEG7_MIN1<1> LOC=P5;
NET SEG7_MIN1<0> LOC=P4;
NET
NET
NET
NET
NET
NET
NET
SEG7_MIN2<6>
SEG7_MIN2<5>
SEG7_MIN2<4>
SEG7_MIN2<3>
SEG7_MIN2<2>
SEG7_MIN2<1>
SEG7_MIN2<0>
LOC=P3;
LOC=P84;
LOC=P83;
LOC=P82;
LOC=P81;
LOC=P80;
LOC=P79;
Profesores: Alfredo Rosado. Manuel Bataller.
3
Descargar