29
Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia. Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1 Introducción al Diseño, Simulación e Implementación de Sistemas Digitales Mediante el Software ISE® Xilinx 10.1 1. Introducción Un sistema digital es la combinación de dispositivos diseñados para manipular información lógica o cantidades físicas que se representan en forma digital, es decir, las cantidades sólo pueden tener valores discretos. Algunos de los sistemas digitales más comunes son las computadoras y las calculadoras digitales, equipos de audio y video digital, etc. El diseño de sistemas digitales es un área importante en la ingeniería y de frecuente uso en las telecomunicaciones, en la automatización y control de sistemas, hardware computacional, etc. Las aplicaciones de los sistemas digitales se encuentran desde pequeños reproductores de audio hasta en complejos trasbordadores espaciales. Hoy en día existen diversas herramientas que facilitan el diseño, el análisis y la implementación de sistemas digitales una de ellas es el software ISE® Xilinx, en esta práctica guiada se ilustrará la manera de abordar el diseño de sistemas digitales, su simulación y su implementación en un dispositivo programable. 2. Objetivos - Presentar el software ISE Xilinx 10.1 como herramienta de diseño, simulación e implementación de sistemas digitales. - Introducir al manejo básico del software mediante ejemplos ilustrativos. - Crear sistemas digitales haciendo uso de la interfaz grafica y del lenguaje VHDL. - Realizar simulaciones de sistemas digitales mediante el uso de ISE® Simulator. - Presentar las tarjetas FPGA (Field Programmable Gate Array) como dispositivo digital programable. - Implementar en la FPGA algunos sistemas digitales.

Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Embed Size (px)

Citation preview

Page 1: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

Introducción al Diseño, Simulación e Implementación de Sistemas

Digitales Mediante el Software ISE® Xilinx 10.1

1. Introducción

Un sistema digital es la combinación de dispositivos diseñados para manipular información lógica o

cantidades físicas que se representan en forma digital, es decir, las cantidades sólo pueden tener

valores discretos. Algunos de los sistemas digitales más comunes son las computadoras y las

calculadoras digitales, equipos de audio y video digital, etc.

El diseño de sistemas digitales es un área importante en la ingeniería y de frecuente uso en las

telecomunicaciones, en la automatización y control de sistemas, hardware computacional, etc. Las

aplicaciones de los sistemas digitales se encuentran desde pequeños reproductores de audio hasta en

complejos trasbordadores espaciales.

Hoy en día existen diversas herramientas que facilitan el diseño, el análisis y la implementación de

sistemas digitales una de ellas es el software ISE® Xilinx, en esta práctica guiada se ilustrará la

manera de abordar el diseño de sistemas digitales, su simulación y su implementación en un

dispositivo programable.

2. Objetivos

- Presentar el software ISE Xilinx 10.1 como herramienta de diseño, simulación e

implementación de sistemas digitales.

- Introducir al manejo básico del software mediante ejemplos ilustrativos.

- Crear sistemas digitales haciendo uso de la interfaz grafica y del lenguaje VHDL.

- Realizar simulaciones de sistemas digitales mediante el uso de ISE® Simulator.

- Presentar las tarjetas FPGA (Field Programmable Gate Array) como dispositivo digital

programable.

- Implementar en la FPGA algunos sistemas digitales.

Page 2: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

2

3. Descarga e instalación del software ISE® Xilinx 10.1

El software ISE® Xilinx 10.1 puede ser descargado gratuitamente siguiendo los siguientes pasos.

1. Ir al enlace: http://www.xilinx.com/support/download/index.htm

2. Dar clic en sign in.

3. Se debe crear una cuenta de usuario, para ello se da clic en el icono “Create account”.

Luego se deben rellenar los campos; la contraseña debe ser de 7 caracteres mínimo y debe

incluir por lo menos un número.

4. Se envía al correo electrónico un email para la activación de la cuenta.

5. Se ingresa al siguiente enlace http://www.xilinx.com/support/download/index.htm

6. Seleccionar la versión que se desea descargar, para nuestro caso corresponde a la versión

10.1.

7. Damos clic en All platforms debajo del título ISE Foundation Webpack.

8. Para obtener la clave de activación se ingresa al siguiente enlace:

http://www.xilinx.com/support/download/index.htm, se selecciona la versión de la cual se

desea obtener la clave de instalación.

9. Se da clic en “Obtain a v10.1 Registration ID”

10. Se completan los datos requeridos.

11. Se seleccionan los productos a registrar.

Para la instalación se siguen los siguientes pasos.

1. Se descomprimen la carpeta descargada.

2. Se da clic en Setup.

3. Se da clic en next.

4. Se ingresa la clave de activación. Y Se continúa la instalación mediante el asistente.

Nota 1: Cuando la instalación alcanza el 99% pregunta sí se desea descargar las actualizaciones,

es importante aclarar que no es necesario y por lo tanto se puede cancelar.

Nota 2: Se recomienda realizar la instalación por defecto, es decir, sin modificar ninguna de las

opciones que ofrece el asistente de instalación ya que esto podrá afectar el buen funcionamiento

del software.

Page 3: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

3

4. Manejo básico de ISE® Xilinx 10.1

ISE (Integrated Software Enviroment) es un software profesional para el diseño de circuitos y

sistemas digitales, es complementario de las tarjetas FPGA desarrolladas por Xilinx y Digilent; Las

tarjetas FPGA son dispositivos programables que permiten programar desde sistemas digitales tan

simples como una compuerta lógica hasta sistemas complejos como una red neuronal o controlador

digital (dependiendo de la capacidad de la FPGA). Las aplicaciones tanto industriales como

académicas utilizando FPGA han ido incrementando en la última década, por ende es indispensable

para cualquier estudiante de ingeniería en áreas de electrónica, control y sistemas conocer sobre su

programación y adecuado manejo.

4.1. Iniciando ISE® Xilinx 10.1

Para Iniciar el programa se debe seguir la siguiente ruta:

Inicio > Todos los programas > Xilinx ISE Desing 10.1 > ISE > Project Navigator

Nota 3: La ruta sugerida puede ser distinta en cada ordenador, dicha ruta depende de la forma de

instalación.

La pantalla de inicio debe aparecer de la siguiente manera:

Figura 1

Page 4: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

4

4.2. Crear un nuevo proyecto

Un proyecto contiene los archivos creados de diseño, simulación, síntesis y programación; Un

proyecto puede contener diferentes sistemas digitales, múltiples archivos de simulación, etc. El

buen manejo de los proyectos es indispensable para evitar problemas al momento de querer realizar

una simulación o programar una tarjeta FPGA. A continuación se describen los pasos de cómo crear

un proyecto nuevo.

1. Clic File > New Project. Y aparece una nueva ventana con el asistente de creación de

proyectos.

Figura 2

2. En el campo Project name se ingresa el nombre del proyecto. (En este caso practica_1)

3. En el campo Project location se selecciona el directorio donde se almacenará la carpeta del

proyecto.

4. En el campo Top level source type seleccionar schematic, éste indica el tipo de archivo

principal que contendrá los demás subsistemas.

Nota 4: Debe tener en cuenta que la dirección y el nombre del proyecto puede contenes

caracteres alfabéticos desde la „A‟ hasta la „Z‟ (no incluye la „ñ‟), no diferencia entre

mayúsculas y minúsculas, puede contener caracteres numéricos y el carácter „_‟.

5. Clic en next. Luego de ello se abrirá la ventana que nos permite configurar el programa

según el dispositivo programable (FPGA) a utilizar; El laboratorio de electrónica digital

Page 5: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

5

cuenta con dos referencias de FPGA, la Nexys 2 y la Basys 2 creadas por Digilent – Xilix,

las informaciones sobre cada FPGA la puede encontrar en los siguientes enlaces

- http://www.digilentinc.com/Data/Products/NEXYS2/Nexys2_rm.pdf

- http://www.digilentinc.com/Data/Products/BASYS2/Basys2_rm.pdf

En las siguientes dos imágenes se ilustra la manera de cómo se deben configurar el software

para cada tipo de tarjeta, en primer lugar para Nexys 2 y luego para la Basys 2.

Figura 3. Configuración del proyecto para trabajar con la FPGA Nexys 2.

Figura 4. Configuración del proyecto para trabajar con la FPGA Basys 2.

Page 6: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

6

6. Clic en next. Ahora aparece el asistente para crear una nueva fuente (source), éste asistente

permite crear diferentes tipos de archivos para agregar al proyecto desde un inicio dando

clic en new source; más adelante se explicarán los tipos de archivos que van a ser utilizados

en el trascurso del laboratorio. En el momento no se creará ningún archivo.

Figura 5

7. Dando clic en next se accede al asistente add source, ésta venta permite agregar archivos ya

existentes al proyecto que estamos creando, es muy útil cuando se trabaja en diseño

similares y evita realizar varias veces el mismo archivo; la única restricción que se tiene es

que este archivo debe estar ubicado dentro de la carpeta del proyecto para evitar problemas

de compilación.

Figura 6

Page 7: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

7

8. Por último se da clic en next; se abre una nueva ventana donde se presenta un resumen de la

configuración seleccionada para el nuevo proyecto. Damos clic en finish y se creará el

proyecto.

4.3. Crear un sistema digital a partir de la captura de esquemas.

Teniendo en cuenta de que ya se ha creado un proyecto llamado practica_1 se va a ilustrar la forma

de crear un sistema digital simple utilizando símbolos de compuertas lógicas digitales.

Se debe crear un nuevo archivo (o source) tipo esquemático, para ello se tienen diferentes opciones

si se está sobre la siguiente pantalla.

Figura 7.

Al lado izquierdo aparecen dos ventanas llamadas sources y processes; en la ventana sources nos

aparece el nombre del proyecto y debajo de él la señalización de la tarjeta FPGA para la que se ha

configurado el proyecto. A continuación se expone una de las maneras de crear una nueva fuente

tipo esquemático.

1. Inicialmente se señala en la ventana sources la configuración para la FPGA y se da clic

derecho.

2. Luego damos clic en New Source

3. Seleccionamos schematic y en el campo file name se escribe el nombre del archivo; en este

caso se llamará ejemplo_1.

4. Finalizamos con clic en next; Y en la siguiente ventana clic en finish

Page 8: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

8

Figura 8.

Ahora en la ventana sources aparece un nuevo archivo que corresponde al archivo creado, además

luego de terminar la creación del archivo el programa lo abre automáticamente; La vista del

software se puede ver en la Figura 9.

Figura 9.

Es importante mencionar que las ventanas sources y processes se pueden acomodar a su gusto en

cualquier parte del área de trabajo, no necesariamente deben de coincidir con las ilustradas en éste tutorial.

Page 9: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

9

4.3.1. Símbolos de compuertas lógicas

En la ventana sources se encuentran diferentes pestañas ubicadas en la parte inferior de la ventana

llamadas sources, files, snapshots, libraries y symbols; Sin embargo las más utilizadas serán

sources que muestra los archivos creados hasta el momento y su orden jerárquico y symbols que

nos permite seleccionar las compuertas con las que deseamos realizar nuestro diseño; en estas

librerías de símbolos solo se encuentra los más comunes, si se necesita de otro elemento no

contenido allí se debe de crear dicho elemento (más adelante se introducirá a la manera de crear

símbolos).

Figura 10.

Los símbolos están organizados en diferentes categorías, las categorías más usadas a lo largo del

desarrollo serán: Arithmetic, Comparator, Counter, Decoder, Flip-Flop, General, Logic, Mux y

shifter register. Ahora se mostrará los símbolos principales dentro de cada categoría.

En la categoría Arithmetic se puede encontrar operaciones aritméticas como suma, resta y

multiplicación entre números de 4, 8 y 16 bits.

En la categoría Comparator se encuentran comparadores de magnitud y de igualdad, estos

comparadores se pueden usar para números de 2, 4, 8 y 16 bits.

En la categoría counter se encuentra contadores binarios unidireccionales y bidireccionales

y se pueden encontrar desde 2 bits hasta 16 bits.

En la categoría Decoder se pueden encontrar decodificadores binarios.

En la categoría Flip-Flop se encuentran flip- flops tipo D, tipo T, tipo JK.

En la categoría general se encuentran diferentes símbolos entre los más útiles se encuentran

gnd, constant, vcc.

En la categoría logic se pueden encontrar las compuertas lógicas más utilizadas como: and,

nand, not, or, nor, xor y xnor. Estas compuertas se encuentran con y sin entradas.

En la categoría Mux se encuentran diferentes tipos de multiplexores.

En la categoría shift register se encuentran registros de desplazamientos.

Page 10: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

10

Nota 5: Algunos términos pueden sonar algo desconocidos, sin embargo a medida que vaya

avanzando el curso se irán introduciendo y explicando los elementos en el momento oportuno.

4.3.2. Inserción y conexión de símbolos

Ahora se va a realizar un circuito digital simple utilizando las compuertas lógicas más comunes,

para realizar el circuito es necesario tener claro el proceso de inserción y conexión de los diferentes

símbolos.

El circuito digital a realizar debe representar la siguiente ecuación Booleana:

𝐹 = 𝐴 + 𝐵 × (𝐶 + 𝐷)

Donde A, B, C, D son entradas digitales, F es una salida digital; la suma se representa por una

compuerta or y la multiplicación por una compuerta and. Para implementar dicha ecuación es

necesario utilizar dos compuertas or de dos entradas y una compuerta and de dos entradas; es

importante aclarar que las entradas de las compuertas no deben estar negadas, las compuertas con

entradas negadas se reconocen por tener en las entradas un círculo.

Ahora para insertar los símbolos se va a la pestaña symbols de la ventana sources, se selecciona la

categoría logic y se procede a seleccionar la compuerta necesaria, en este caso se selecciona la

compuerta or2, luego de seleccionar la compuerta se dirige el puntero del mouse hacia la ventana

del esquemático y se posiciona el objeto en el lugar deseado dando clic; luego de posicionar las dos

compuertas or2 se procede a insertar la compuerta and2 de igual manera.

En este momento el circuito digital debe lucir como lo ilustra la Figura 11.

Figura 11.

Para unir los símbolos se utiliza la herramienta llamada add wire ubicada en la barra de

herramientas y se puede identificar por el siguiente símbolo . Luego de dar clic sobre el símbolo

el puntero del mouse debe de cambiar, ahora se conecta la salida de cada compuerta or con las

entradas de la compuerta and. El circuito debe lucir como lo ilustra la Figura 12.

Page 11: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

11

Figura 12.

Ahora se debe asociar las entradas A, B, C y D con las entradas de las compuertas, para ello se hace

uso de la herramienta add I/O Marker identificado con el siguiente símbolo , en la ventana

processes se puede seleccionar si la etiqueta será puesta a una señal de entrada, de salida, si es

bidireccional o si el software lo determina automáticamente. Se posiciona el puntero mouse sobre

cada entrada o salida y se da clic. En la Figura 13 se ilustra la forma en que debería lucir el circuito

en este momento.

Figura 13.

Utilizando la herramienta select identificado con el siguiente símbolo se da doble clic sobre

cada etiqueta agregada y se modifica el nombre de cada entrada o cada salida. Recuerde que las

entradas al circuito digital son A, B, C y D y la salida F. El circuito finalmente debe lucir como se

muestra en la Figura 14.

Page 12: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

12

Figura 14.

Cuando se tienen circuitos complejos se pueden cometer errores, para encontrarlos ISE Xilinx 10.1

dispone de una herramienta llamada Check Schematic, ésta herramienta se encuentra en el menú

tolos. Luego de dar clic en Check Schematic en la parte inferior del programa se pude observar el

resultado, en este caso el resultado notifica que no se presenta ningún error o advertencia.

Figura 15.

Nota 6: No olvide guardar sus progresos.

4.3.3. Crear un BUS de datos

Un bus de datos es una línea por la que viajan múltiples bits en serie, el uso de bus de datos es

importante dentro los sistemas digitales para manejar la comunicación y el trasporte de señales

desde y hacia otros sistemas. En este caso se va ilustrar la manera de crear un bus de datos de cuatro

bits.

Page 13: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

13

Para dar comienzo a la creación de un bus de datos primero se crea un nuevo esquemático y en éste

caso lo llamaremos ejemplo_2, luego con la herramienta add wire se realiza una línea sobre el

esquemático, se le agrega una etiqueta y a continuación se da doble clic sobre ella, en el campo

name colocamos A(3:0), esto indica que se está creando una señal de entrada de 4 bits, es decir,

A(0), A(1), A(2) y A(3), donde el bit más significativo corresponde A(3) y el menos significativo a

A(0). La Figura 16 ilustra el bus de datos en el circuito esquemático.

Figura 16

La creación de un Bus de datos es solo una de las tareas que se deben de tener en cuenta a la hora de

realizar un circuito digital, su manejo también es indispensable; a continuación se presentará de

manera breve el manejo de los buses de datos con un ejemplo ilustrativo.

Partiendo del esquema con el bus de datos llamado A(3:0) se crea otro bus de datos de entrada

llamado B(3:0), luego se inserta el símbolo add4 cuya categoría es Arithmetic.

Figura 17

Ahora se debe conectar los dos buses de datos de entrada al sumador de 4 bits, dicha actividad se

realizará de dos maneras diferentes. Para conectar el bus A(3:0) extenderemos las líneas de entrada

del sumador utilizando la herramienta add wire, luego de ello buscamos en la barra de herramientas

el icono correspondiente a la herramienta Add Net Name identificado con el siguiente símbolo ,

en la ventana processes en el campo name se coloca el nombre de la señal que se desea desacoplar

del bus de datos, en este caso A(0), ahora se posiciona el puntero del mouse sobre la línea de

entrada del sumador marcada con A0 y se da clic; se realiza lo mismo para separar del bus las

Page 14: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

14

señales A(1), A(2) y A(3). Luego de completar todas las conexiones del bus de entrada A(3:0) al

sumador de 4 bits el circuito debe lucir como se muestra en la Figura 18.

Figura 18.

Para realizar la conexión del Bus de datos B(3:0) se hará uso de la herramienta Add bus tap

identificada con el siguiente símbolo , inicialmente con la herramienta add wire se extiende de

manera vertical la línea del bus de entrada, luego se selecciona la herramienta Add bus tap y sobre

la línea vertical anteriormente creada se colocan 4 taps, cada salida del tap se une con la entradas

del sumador de 4 bits, por último nos posicionamos sobre cada conexión entre tap y el sumador se

hace doble clic, en el campo name se coloca el nombre de la señal correspondiente, es decir, si la

entrada al sumador está marcada como B0 el nombre de la conexión deberá ser B(0).

Figura 19.

4.4. Crear sistemas digitales usando lenguaje VHDL

No todos los sistemas digitales que deseemos implementar pueden ser diseñados utilizando la

captura de esquemas ya que no todos los símbolos necesarios se encuentran en la librerías del

software. ISE® Xilinx 10.1 permite también el diseño de sistemas digitales utilizando lenguaje

VHDL cuyas siglas provienen de VHSIC (Very High Speed Integrated Circuit) y HDL (Hardware

Description Language); VHDL es un lenguaje definido por la IEEE para la descripción de circuitos

digitales. A continuación se introducirá a la creación de circuitos VHDL de una manera sencilla y

precisa.

Page 15: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

15

1. Se crea una nueva fuente en la pestaña sources, la nueva fuente debe ser de tipo VHDL

Module, en el campo name seleccionamos el nombre del archivo para este caso lo

llamaremos ejemplo_3. Clic en next.

Figura 20.

2. La siguiente ventana nos presenta la posibilidad de definir las señales de entrada y de

salida, es importante tener definido el número y tipo de señales de entrada y de salida que

serán necesarias en nuestro diseño. Como ejemplo programaremos en código VDHL lo

realizado en la captura de esquemas, por lo tanto en la nueva ventana se debe ingresar las

entradas A, B, C y D y la salida F.

Figura 21.

Page 16: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

16

3. Clic en next y luego en finish.

Ahora se tiene abierto un nuevo archivo llamado ejemplo_3.vhd, dicho archivo está dividido en

diferentes partes que se explican a continuación.

4.4.1. Librerías

Antes de empezar a describir el sistema mediante el lenguaje VHDL se deben introducir las

librerías, las librerías son asociaciones de paquetes que contienen definiciones de datos,

componentes, etc. la sintaxis para el ingreso de librerías es la siguiente:

library < Nombre de la librería >

use <Nombre de la librería>.<Nombre del paquete>.ALL;

Algunas librerías y paquetes se presentan en la Tabla 1.

Tabla 1. Librerías y paquetes usadas en el lenguaje VHDL.

Librería Paquete Descripción

Std Standard Tipos básicos de VHDL: bit, bit_vector, boolean

Std Textio Tipos de dato como ‘line’ y ‘text’

Work Librería por defecto

IEEE Std_logic_1164 Tipos std_logic y std_logic_vector

IEEE Std_logic_arith Tipos signed y unsigned

IEEE Std_logic_signed Operaciones aritméticas con signo y de comparación

IEEE Std_logic_unsigned Operaciones aritméticas sin signo y de comparación

IEEE Std_logic_textio Tipo de datos y procedimientos de lectura y escritura

Cuando se crea un archivo VHD en ISE Xilinx 10.1 el sistema agrega automáticamente algunas

librerías por defecto.

4.4.2. Entidad

En la entidad se declaran las entradas y salidas del modulo, la sintaxis del código se ilustra a

continuación.

entity <Nombre de la entidad> is

port ( Nombre de la señal : modo tipo de señal;

Nombre de la señal : modo tipo de señal;

); end <Nombre de la entidad>;

Page 17: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

17

Para la declaración de puertos es importante tener claro que puerto es cualquier señal de entrada o

salida, cada puerto debe estar definido por nombre o identificador, modo y tipo de dato.

Los identificadores son los nombres válidos para nombrar las variables, constantes, señales,

proyectos, procesos, etc. El nombre del identificador puede contener cualquier letra de la „A‟ a la

„Z‟, números de „0‟ al „9‟ y el guión bajo „_‟; debe comenzar por carácter alfabético, no puede

terminar con subrayado, ni puede terminar con dos subrayados seguidos.

Dentro del lenguaje VHDL existen cuatro tipos modos los cuales se describen a continuación:

- IN: Este modo indica que la señal es de entrada.

- OUT: Este modo indica que la es de salida.

- INOUT: Este modo indica que la señal es bidireccional.

- BUFFER: Este modo indica que la señal además de ser una señal de salida puede usarse

como señal realimentada.

Los tipos de datos dentro del lenguaje VHDL son:

- Bit: Las señales solo toman el valor de “1” o “0”

- Boolean: Las señales solo toman el valor de true o false.

- Std_logic: Este tipo de señales puede tomar 9 valores diferentes: “1”, “0”, “Z” (para el tercer estado) y “ – “ (para los estados opcionales).

- Integer: En este tipo las señales toman valores enteros los 1 y 0 se escriben sin comillas.

- Bit_vector: Este tipo de señal es una cadena de 1 y 0. Ejemplo “10010”

- Std_logic_vector: En este tipo los valores de las señales son una cadena de los nueve

valores permisibles para el tipo std_logic.

- Character: Contiene todos los caracteres ISO de 8 bits, donde los primeros 128 son los

caracteres ASCII.

ISE Xilinx por medio del asistente para la creación de un sistema digital usando lenguaje VHDL

realiza automáticamente la definición de los puertos, sin embargo se pueden realizar

modificaciones, es decir, se pueden agregar o eliminar señales de entrada y/o salida.

4.4.3. Arquitectura

La arquitectura describe la operación del modulo, su funcionamiento o estructura interna, su

funcionalidad está asociada a una entidad anteriormente descrita.

En el curso de electrónica digital la programación se realizará básicamente utilizando ecuaciones Booleanas y en algunos casos se utilizarán sentencias como if, for, else, when, etc. Inicialmente se

Page 18: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

18

comenzarán con ejemplos sencillos y simples, a medida que avance el curso se irá ilustrando

conceptos más profundos de programación en VHDL. La sintaxis para la programación de la arquitectura del circuito digital se muestra a continuación:

architecture < nombre_arquitectura> of <nombre_entidad> is

Declaración de señales internas

Declaración de tipos definidos por el usuario

Declaración de componentes en caso de instanciación

begin

Cuerpo de la arquitectura

Se define la funcionalidad del diseño con:

Procesos end <nombre_arquitectura>;

El principal objetivo de este tutorial es poder programar en lenguaje VHDL el sistema digital anteriormente diseñado con la captura de esquemas, la programación se ilustra en las siguientes

líneas de código.

La línea de código 𝐹 <= ( 𝐴 𝑜𝑟 𝐵 𝑎𝑛𝑑 (𝐶 𝑜𝑟 𝐷)), representa la ecuación Booleana 𝐹 =

𝐴 + 𝐵 (𝐶 + 𝐷).

4.4.4. Revisión de la sintaxis

Luego de terminar la programación en VHDL del sistema digital es importante revisar la sintaxis

para verificar que no exista ningún error de programación; los pasos para revisar la sintaxis se

describen a continuación.

1. En la pestaña sources seleccionamos el nombre correspondiente al archivo VHDL al que se

desea revisar la sintaxis.

2. En la pestaña processes se da doble clic sobre el icono Check Syntax. Ver Figura 22.

3. Luego que termine el proceso de chequeo debe aparecer el siguiente símbolo en el icono de

Check Syntax , de lo contrario debe revisar los errores y corregirlos.

4.5. Crear símbolos esquemáticos

En el diseño de sistemas digitales se presentan situaciones donde se requiera de encapsular en un

símbolo algún diseño que se haya creado, ISE Xilinx permite crear símbolos esquemáticos a partir

de circuitos programados con la captura de esquemas o lenguaje VHDL; Está herramienta es de

gran utilidad ya que permite a los usuarios crear sus propias librerías de símbolos, ahorrar espacio

Page 19: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

19

en el área de trabajo, trabajar de manera ordenada, etc. A continuación se presentará la forma en que

se crean símbolos y se introduce a su uso.

Figura 22.

En primer lugar volvemos al archivo ejemplo_1 y verificamos que este archivo esté seleccionado

como modulo principal, esto se realiza en la pestaña sources ,al lado del nombre del archivo se debe

verificar que se encuentre el siguiente símbolo , si no se encuentra se da clic derecho sobre el

nombre del archivo y se selecciona set as top Module.

Para crear el símbolo seleccionamos el nombre del archivo en la ventana sources, luego nos

dirigimos a la pestaña processes y desplegamos el menú desing utilities, por último se da doble clic

sobre Create schematic symbol y se espera a que el software confirme la creación del símbolo;

Figura 23.

Page 20: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

20

Para visualizar los símbolos creados se debe actualizar el programa pulsando varias veces la tecla

F5, luego nos dirigimos hacia la pestaña symbols en la venta sources y se debe encontrar una nueva

categoría que tiene como nombre el directorio donde se tiene almacenado el proyecto, dando clic en

dicha categoría se pueden encontrar los símbolos e insértalos en cualquier esquemático. Ver Figura

24.

Figura 24.

Nota 6: También posible crear símbolos esquemáticos a partir de archivos VHDL siguiendo los

mismos pasos.

4.6. Simulación de sistema digitales

Antes de crear el archivo que nos permitirá realizar la simulación de nuestro sistema digital es de

vital importancia comprobar que el circuito esté libre de errores ya que el resultado de la simulación

depende de ello. A continuación se describen los pasos necesarios para realizar la simulación de un

sistema digital.

1. En la pestaña sources se crea una nueva fuente dando clic derecho en cualquier parte de la

ventana y luego en new source.

2. En la ventana que nos aparece a continuación seleccionamos Test Bench Waveform (Banco de

pruebas).

3. En el campo name se coloca el nombre que se desea poner a la simulación, en este caso

simulación_1.

Figura 25

Page 21: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

21

4. Clic en next. Luego en la siguiente ventana nos presentan la posibilidad de seleccionar el

sistema que se desea simular, se selecciona ejemplo_1.

5. Clic en next. Se abre una nueva ventana con el resumen de la creación del archivo de

simulación. Clic en Finish.

6. Si el circuito no presenta ningún error se abre la siguiente ventana

En ésta ventana de dialogo se tienen diferentes opciones para la simulación, a continuación se

explicarán las diferentes opciones que se deben tener presentes al momento de realizar las

simulaciones.

Cuando el circuito que se desea simular es combinacional, es decir, solo contiene elementos como

multiplexores, compuertas and, or, xor, etc, decodificadores, sumadores, codificadores y en general

elementos que no depende de una señal de control se deben seleccionar en la opción clock

information y se habilita el ítem combinatorial (or internal clock ). Las demás opciones se por

defecto, tenga en cuenta que un tiempo de simulación muy grande tomará demasiado tiempo en

concretar el resultado.

Cuando el sistema que se desea simular es secuencial, es decir, contiene flip-flops, registros de

desplazamientos, contadores, etc. Se debe seleccionar en la opción clock information el ítem single

clock y posteriormente seleccionar la entrada que corresponde al reloj, en la opción clock timing

Page 22: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

22

information se selecciona las características del reloj como tiempo en alto, tiempo en bajo, retardo,

etc. Igualmente se recomienda dejar las demás opciones por defecto.

Para éste caso es evidente que el circuito con el que se trabaja es combinacional, luego de

configurar la ventana se da clic en finish. Se abre un nuevo archivo y nuestro software debe lucir

como se muestra en la Figura 26.

Figura 26.

7. En esta ventana nos aparecen todas las señales de entrada y de salida; recordemos que las

entradas de nuestro circuito son A, B, C y D y la salida es F. Las entradas y salidas son

señales digitales o discretas, es decir, pueden tomar el valor de 1 o de 0 a lo largo del

periodo de simulación, un valor de 1 significa que la entrada esta actividad y un valor de 0

significan lo contrario; las entradas se pueden modificar a nuestro gusto o según la

necesidad.

Figura 27.

8. Luego de modificar las diferentes señales de entrada se procede a guardar el proyecto, luego

de que el proyecto se haya guardado nos dirigimos a la pestaña sources de la ventana

Page 23: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

23

sources, allí se encuentra un menú desplegable en dicho menú seleccionamos Behavioral

Simulation.

Figura 28

9. Ahora se señala el nombre de la simulación creada, en este caso simulacion_1

10. En la pestaña processes de la ventana processes se despliega el menú de la herramienta ISE

simulator.

Figura 29.

11. Se da doble clic sobre simúlate Behavoral Model. Y finalmente se abre otra pantalla con el

resultado de la simulación.

Nota 7: Si su sistema operativo es Windows Vista o Windows 7 debe activar el cliente web para

poder realizar las simulaciones. La activación del cliente web se realiza siguiendo los pasos que se

presentan a continuación: inicio > panel de control > Herramientas Administrativas > Servicios.

En cliente web damos clic derecho y seleccionamos iniciar. Recuerde luego de terminar las

diferentes simulaciones terminar el servicio cliente web.

Nota 8: También se pueden realizar simulaciones de sistemas digitales creados usando lenguaje

VHDL siguiendo los mismos pasos.

Page 24: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

24

4.7. Crear restricciones de diseño

Las restricciones del diseño deben ser creadas antes de que el sistema sea implementado en la

tarjeta FPGA, las restricciones dependen básicamente de la tarjeta FPGA con la que se trabaje.

Existen diferentes métodos para la creación de restricciones físicas y de tiempo, sin embargo solo se

ilustrará la manera más directa y sencilla.

1. En la pestaña sources desplegamos el menú sources for y seleccionamos la opción

implementation.

2. Seleccionamos el archivo al que se desea crear las restricciones de diseño, éste debe estar

seleccionado como modulo principal.

3. En la pestaña Processes desplegamos el menú correspondiente a User Constraints.

4. Doble clic sobre Floorplan Area, el software verifica automáticamente la síntesis del diseño

y luego abre el Xilinx PACE.

Figura 30.

En Xilinx PACE se imponen las restricciones físicas, para ello se va exponer los componentes

físicos de cada una de las FPGA con las que se trabajará en el laboratorio de electrónica digital. Las

tarjetas FPGA Nexys 2 y Basys 2 cuentan básicamente con 8 switchs, 4 pulsadores, 8 LEDs y 4

Display 7 segmentos.

Page 25: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

25

Figura 31.

Para la programación de los pines es necesario conocer la distribución y su nombre en la respectiva

FPGA, en las Figuras 32 y 33 se ilustran la distribución de los pines y su nombramiento para tarjeta

Nexys 2 y Basys 2 respectivamente.

Figura 32. Pines de entradas y salidas de la FPGA Nexys 2

Page 26: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

26

Figura 33. Pines de entrada y salida para la FPGA Basys 2.

El circuito al que se le desea implementar las restricciones físicas tiene 4 entradas y una salida, las

entradas son digitales por lo tanto pueden ser asignadas a 4 de los 8 switchs que tiene la FPGA, la

salida también es digital y puede ser asignada a un LED. En el software Xilinx PACE al frente de

cada entrada o salida aparece un campo llamado loc allí se ingresará el nombre del pin que se desea

asignar. En las Figuras 29 y 30 se muestran la asignación de pines para las FPGA Nexys 2 y Basys

2 respectivamente.

Figura 34. Asignación de pines en la FPGA Nexys 2.

Page 27: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

27

Figura 35. Asignación de pines para la FPGA Basys 2.

Nota 8: La asignación de pines debe hacerse de acuerdo a la configuración del proyecto realizada al

inicio, es decir, no se pueden asignar pines de la FPGA Nexys 2 a la FPGA Basys 2, esto conllevará

a que se presenten diferentes errores y la asignación de pines no se lleve a cabo.

5. Guardar el archivo de Xilinx PACE dando clic en el icono ; tenga cuidado en no dar

clic en guardar como. Luego cierre el Xilinx PACE

4.8. Implementación de diseño en la FPGA

A continuación se describirán los pasos para realizar la implementación en la FPGA, tenga en

cuenta que antes de realizar la implementación se debe realizar la asignación de pines. Para llevar a

cabo la implementación es necesario otro software llamado Adept, puede ser descargado de:

http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,828&Prod=ADEPT2

La versión con la que se trabajará es: Adept System 2.6.1. Luego de culminar la instalación del

Adept, se puede continuar con la implementación del circuito a FPGA.

1. En la pestaña processes dar doble clic sobre Generate programming File.

2. Cuando culmine la creación del archivo de programación se deben encontrar tres chulos

sobre la ventana processes.

3. Se conecta la tarjeta FPGA mediante el cable USB a la computadora. Debe asegurase de

que los drivers de la tarjeta se han correctamente instalados, de lo contrario no se

reconocerá la tarjeta FPGA.

4. Se prende la tarjeta FPGA y verificamos que el programa inicial de testeo funcione

correctamente.

5. Se abre el software Adept. Si la tarjeta ha sido correctamente instalada el software

reconocerá el dispositivo automáticamente. En la Figura 36 se muestra la pantalla del

software cuando tiene conectado la FPGA Nexys2, en la Figura 37 se muestra para la FPGA

Basys2.

6. Las tarjetas FPGA siempre se van a programar en la memoria que contenga el nombre del

dispositivo, si se programa la memoria PROM se borrara el programa de testeo inicial, para

buscar el archivo de programación se da clic en browse, luego se busca en la carpeta del

proyecto; la extensión es .bit

Page 28: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

28

Figura 36.

Figura 37.

Page 29: Introducción Al Diseño, Simulación e Implementación de Sistemas Digitales Usando ISE Xilinx 10.1

Laboratorio de Electrónica Digital, Facultad de Minas, Universidad Nacional de Colombia.

Introducción al diseño, simulación e implantación de sistemas digitales mediante el software ISE® Xilinx 10.1

29

7. Por último se da clic en program. Inmediatamente después de culminar la programación el

programa se ejecuta en la tarjeta FPGA. Tenga en cuenta que al apagar la tarjeta el

programa se borrará.

Algunas recomendaciones para la programación de la tarjeta FPGA son:

- Toda manipulación de la tarjeta FPGA debe realizarse con una manilla antiestática para

evitar descargas en el circuito de la tarjeta.

- Evite tocar los componentes electrónicos de la tarjeta FPGA.

- No coloque la tarjeta FPGA sobre mesas o soportes metálicos.

- Antes de iniciar su trabajo con la tarjeta verifique que sus entradas y salidas se encuentran

en buen estado, esta tarea se realiza con ayuda del programa de testo que se inicia cuando

enciende la tarjeta.

5. Referencias

Barragan, D. (s.f.). VHDL, su organización y arquitectura. Recuperado el 10 de Enero de 2011, de

MATPIC:

http://www.matpic.com/esp/descargas/1_VHDL_Su%20organizacion%20y%20aquitectura..zip

Borromeo López, S. (s.f.). VHDL. Recuperado el 10 de Enero de 2011, de Universidad Rey Juan

Carlos, Dpto. Tecnología Electrónica:

http://laimbio08.escet.urjc.es/assets/files/docencia/EDII/Tema4VHDL.pdf

Vallejo, M. (21 de Julio de 2010). Tutorial Xilinx. Recuperado el 10 de Enero de 2011, de

Laboratorio de Electrónica Digital:

http://www.docentes.unal.edu.co/mavallejov/docs/Electronica_Digital/Laboratorio/tutorial_Xilinx.p

df