You are on page 1of 2

Proceso de diseño VHDL en Xilinx

Tradicionalmente el flujo de diseño lógico consiste en :


1. Obtener especificaciones
2. Definir entradas y salidas
3. Definir tabla de verdad
4. Derivar ecuaciones booleanas (simplificación)
5. Especificar circuitos mediante puertas lógicas
6. Implementar (‘unir’ puertas)

Con VHDL :
1. Obtener especificaciones
2. Definir entradas y salidas
3. Describir el circuito (‘programa’ VHDL)
4. Simulación funcional (para poder realizarla primero abr que sintetizar
(generar la ‘netlist’ ))
5. [Si se detectan errores volver a 4]
... ‘Descargar’ el diseño en un dispositivo lógico programable (PLD)

Xilinx : entorno profesional para crear programas que describen diseños


lógicos.

Proyecto : diseño de un sistema (conjunto de módulos)


Módulo = componente = entidad (‘entity’) de diseño
Al principio , proyecto = 1 módulo

• Para realizar el diseño VHDL en Xilinx los pasos son :


1. Crear nuevo proyecto (PROJECT MANAGER)
2. Crear programa VHDL (DESIGN ENTRY)
3. Sintetizar la netlist (SYNTHESIS)
4. Simulación funcional

Veamos cada uno de los pasos en detalle :

(I) Crear nuevo proyecto [PROJECT MANAGER]

1.1. Ejecutar PROJECT MANAGER


1.2. Ejecutar ‘File / New project’ : nombre proyecto
Carpeta (creada previamente)
Indicar flujo : VHDL (no esquemático)
Descripción de la ventana del PROJECT MANAGER :

1 2

Diseño lógico José Torres 1 de 2


1. Ficheros fuente (.VHDL) y librerías
2. Para activar las herramientas usadas en las distintas fases del flujo de
diseño
3. Listado de mensajes de diagnosis de los distintos procesos que se van
realizando

(II) Introducir el diseño (programa VHDL) [DESIGN ENTRY]

1. Se puede usar el asistente de diseño vhdl (HDL Design Wizard) para


definir las entradas y salidas del módulo , con lo que cuando pasemos al
editor de vhdl aparecerá el ‘esqueleto’ del programa con las definiciones
de entidad (entity) y arquitectura (arquitecture).
2. HDL Editor : para escribir el programa , con todo tipo de facilidades :
indentación , cambio color palabras clave...

(III) Sintetizar (obtener la netlist) [SYNTHESIS]

Habrá que indicar el proyecto , el dispositivo (PLD) al que va dirigido y en el


que caso de que haya varios módulos definidos , cual de ellos es el de nivel
superior en la jerarquía de diseño.

(IV) Simulación funcional del diseño [SIMULATION]

Ventanas : ‘Waveform Viewer’ dentro de ‘Logic Simulator’

1. Añadir entradas y salidas :


Comando ‘Signal / Add signals...’
=> Component Selection for Waveform Viewer :
Seleccionar señal y botón ‘Add’ .

2. Aplicar estímulos al circuito :


Comando ‘Signal / Add Stimulators...’ :
- En principio nos interesa el contador de 16 bits ‘Bc’ (Binary
counter) , lo que me permitirá generar todas las combinaciones de
las variables de entrada.
- Asociamos las entradas con los bits menos significativos del
contador haciendo clic en la señal de entrada y clic en el bit del
contador correspondiente.
Comando ‘Close’ .

3. Establecer los parámetros de la simulación : período de la ‘señal de reloj’


(inversa de la frecuencia de B0 , el bit menos significativo del contador) y
duración de la simulación (cuanto tiempo funciona el contador) .
Comando ‘Options / Preferences...’

4. Ejecutar la simulación :
Elegir modo ‘Functional’ (en la barra de herramientas) , en el cual se
ignoran los detalles de tiempo propios de la implementación física.
Botón ‘del paso’ (2 suelas de zapatos) para iniciar un período de
simulación ; puedo hacer tantos como quiera.

5. Guardar simulación : ‘File / Save Simulation State...’


6. Salir : ‘File / Exit’
Diseño lógico José Torres 2 de 2

You might also like