P. 1
DISEÑO DIGITAL CON LOGICA

DISEÑO DIGITAL CON LOGICA

|Views: 221|Likes:
Publicado porJuan Rmos

More info:

Published by: Juan Rmos on Nov 22, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

11/24/2012

pdf

text

original

Sections

  • 1.- INTRODUCCIÓN
  • 1.1.- ENTORNO MAX+PLUS II
  • 1.2.- TARJETA PARA EL DESARROLLO DE PROTOTIPOS
  • 1.2.1.- PLD’S
  • 1.2.2.- OSCILADOR
  • 1.2.3.- PULSADORES
  • 1.2.4.- MICROINTERRUPTORES
  • 1.2.5.-DISPOSITIVOS LUMINOSOS
  • 1.2.6.- MEMORIA RAM
  • 1.2.7.- CONECTOR DE ACCESO A TERMINALES DE USUARIO
  • 1.2.8.- ZONA DE WRAPPING
  • 1.2.9.- ACCESO A LOS TERMINALES DE LA TARJETA
  • 2.- DEFINICIÓN DE UN PROYECTO
  • 2.1.- JERARQUÍA DE UN PROYECTO
  • 3.- EJEMPLO BÁSICO DE OPERACIÓN
  • 3.1.- CREACIÓN DEL PROYECTO
  • 3.1.1.- CAPTURA DE ESQUEMAS
  • 3.1.1.1.- CAPTURA POR ORCAD
  • 3.1.1.2.- CAPTURA DE ESQUEMAS EN EL ENTORNO ALTERA
  • 3.1.1.4.- ASIGNACIÓN DEL PATILLAJE DE LA FPGA
  • 3.2.- VERIFICAR LAS REGLAS DE DISEÑO
  • 3.3.- COMPILAR, COMPLETAR Y ENSAMBLAR
  • 3.4.- PROGRAMAR LA TARJETA DE DESARROLLO CON EL EJEMPLO
  • 3.6.- VERIFICACIÓN DEL FUNCIONAMIENTO
  • 4.- SIMULACIÓN LOGICA
  • 4.1.- SIMULACIÓN LÓGICA CON HERRAMIENTAS DE ALTERA
  • 4.2.- FICHEROS GRÁFICOS PARA SIMULACIÓN
  • 4.3.- DEFINICIÓN DE ESTÍMULOS
  • 4.3.1.- DEFINICIÓN DE SEÑALES
  • 4.4.- PUESTA EN MARCHA DE LA SIMULACIÓN
  • 5.- LENGUAJES HDL
  • 5.1.- REALIZACIÓN PRÁCTICA DE CIRCUITOS MEDIANTE EL LENGUAJE HDL
  • 5.1.2.- CREAR UN FICHERO DE DISEÑO
  • 5.1.2.1.- INTERFACE DEL DISPOSITIVO Y DECLARACIÓN DE ENTIDAD
  • 5.2.- LIBRERIAS VHDL DE USUARIO
  • 5.3.- INTEGRACIÓN DE MÓDULOS VHDL EN ESQUEMAS

DISEÑO DIGITAL CON LOGICA PROGRAMABLE MANUAL MAX+PLUS II

Sadot Alexandres F.

DISEÑO DE SISTEMAS DIGITALES

INDICE: 1.- INTRODUCCIÓN. ......................................................................................... 2
1.1.- ENTORNO MAX+PLUS II. ........................................................................................................3 1.2.- TARJETA PARA EL DESARROLLO DE PROTOTIPOS........................................................................4 1.2.1.- PLD’S .....................................................................................................................................5 1.2.2.- OSCILADOR.............................................................................................................................5 1.2.3.- PULSADORES ...........................................................................................................................5 1.2.4.- MICROINTERRUPTORES ...........................................................................................................6 1.2.5.- DISPOSITIVOS LUMINOSOS. .....................................................................................................7 1.2.6.- MEMORIA RAM......................................................................................................................9 1.2.7.- CONECTOR DE ACCESO A TERMINALES DE USUARIO..............................................................11 1.2.8.- ZONA DE WRAPPING..............................................................................................................12 1.2.9.- ACCESO A LOS TERMINALES DE LA TARJETA ......................................................................12

2.- DEFINICIÓN DE UN PROYECTO. ............................................................ 13
2.1.- JERARQUÍA DE UN PROYECTO...................................................................................................15

3.- EJEMPLO BÁSICO DE OPERACIÓN. ...................................................... 15
3.1.- CREACIÓN DEL PROYECTO......................................................................................................16 3.1.1.- CAPTURA DE ESQUEMAS......................................................................................................16 3.1.1.1.- CAPTURA POR OR CAD. ...................................................................................................18 3.1.1.2.- CAPTURA DE ESQUEMAS EN EL ENTORNO ALTERA . .....................................................19 3.1.1.4.- ASIGNACIÓN DEL PATILLAJE DE LA FPGA .....................................................................19 3.2.- VERIFICAR LAS REGLAS DE DISEÑO.............................................................................................21 3.3.- COMPILAR, COMPLETAR Y ENSAMBLAR. .............................................................................23 3.4.- PROGRAMAR LA TARJETA DE DESARROLLO CON EL EJEMPLO. ...................................28 3.6.- VERIFICACIÓN DEL FUNCIONAMIENTO. ...........................................................................32

4.- SIMULACIÓN LOGICA.............................................................................. 33
4.1.- SIMULACIÓN LÓGICA CON HERRAMIENTAS DE ALTERA...............................................33 4.2.- FICHEROS GRÁFICOS PARA SIMULACIÓN. .................................................................................34 4.3.- DEFINICIÓN DE ESTÍMULOS .......................................................................................................38 4.3.1.- DEFINICIÓN DE SEÑALES ....................................................................................................39 4.4.- PUESTA EN MARCHA DE LA SIMULACIÓN ........................................................................42

5.- LENGUAJES HDL. ...................................................................................... 44
5.1.- REALIZACIÓN PRÁCTICA DE CIRCUITOS MEDIANTE EL LENGUAJE HDL. ........................44 5.1.2.- CREAR UN FICHERO DE DISEÑO..........................................................................................46 5.1.2.1.- INTERFACE DEL DISPOSITIVO Y DECLARACIÓN DE ENTIDAD. .......................................47 5.2.- LIBRERIAS VHDL DE USUARIO...........................................................................................56 5.3.- INTEGRACIÓN DE MÓDULOS VHDL EN ESQUEMAS.........................................................57

1

DISEÑO DE SISTEMAS DIGITALES

1.- INTRODUCCIÓN.
Los entornos EDA (Electronic Design Automation) son las herramientas de trabajo más comúnmente empleadas en el diseño e implantación de circuitos lógicos. Permiten una gran versatilidad a la hora de simular cualquier posible situación en el funcionamiento de los diseños efectuados por el profesional que emplea esta herramienta, además son sencillos de manejar gracias a las interfaces gráficas que incorporan las plataformas de diseño como: ALTERA, OrCAD, XILINX, que permiten la instrumentación de dichos diseños y su implantación en los PLD’s y FPGA`s. Dichas herramientas de trabajo son puestas al alcance del alumno en esta obra con el fin de dar a conocer las últimas técnicas de diseño con una formación integral en todas ellas. Para ello, a lo largo de los diferentes capítulos del tutorial y de las prácticas que en este libro se proponen, el alumno adquirirá los conocimientos que le permitirán manejar los dispositivos fabricados por ALTERA , junto con el soporte de software Max+plus II como principal herramienta de diseño, verificación y simulación de prácticas y proyectos en el Laboratorio de Sistemas Digitales y posteriormente en su vida profesional. Para la implantación de los diseños que se efectuarán durante el curso, dispondremos de un FPGA situado en una tarjeta de desarrollo que permitirá una fácil simulación de los circuitos y prácticas propuestos, mediante una serie de visualizadores, pulsadores, microinterruptores y otros elementos, útiles para realizar simulaciones físicas en la tarjeta de desarrollo de los diseños realizados .

2

DISEÑO DE SISTEMAS DIGITALES

1.1.- ENTORNO MAX+PLUS II.
Primeramente nos familiarizaremos con el entorno de trabajo. El software que vamos a emplear es una versión de ALTERA que se ofrece para estudiantes y Universidades. Al iniciar el programa encontramos la siguiente pantalla:

En la parte superior de la misma nos encontramos con los menús típicos de las aplicaciones bajo Windows. Además, por debajo está una línea de iconos que nos dan acceso a las diferentes partes del programa. A continuación detallaremos el significado de cada uno de estos iconos y la función que realizan:

Visualizador de jerarquías.

Editor de Patillajes y asignaciones. (Floorplan)

Compilador.

Ventana del simulador.

3

DISEÑO DE SISTEMAS DIGITALES

Analizador de tiempos.

Programador.

Especifica el nombre del proyecto.

Cambia el nombre del proyecto al del archivo que se está empleando.

Maneja el archivo de diseño de nivel superior.

Opciones para guardar (Archivos, simulador y compilador).

Si durante la ejecución del programa surge alguna duda, en cualquier momento, situando el cursor del ratón sobre el icono correspondiente, aparece en la parte inferior de la pantalla una descripción de su función.

1.2.- TARJETA PARA EL DESARROLLO DE PROTOTIPOS
En esta parte del documento se describe la tarjeta para el desarrollo de prototipos SEC-7000. Esta tarjeta será empleada por el alumno para la implementación física de los diseños realizados en el entorno MAX+plus II. Los elementos de que disponemos en nuestra tarjeta de prototipos son: 1.- Una PLD de la familia MAX7000S de ALTERA. 2.- Un oscilador de cuarzo de 1.8432 MHz... 3.- 4 Pulsadores situados en la tarjeta. 4.- 16 Microinterruptores. 5.- 3 Indicadores de siete segmentos. 6.- 10 LED’s . 7.- Una memoria RAM (con posibilidad de ampliación). 8.- Zona de inserción de componentes complementarios al diseño. 9.- Conector de acceso a los terminales accesibles de la FPGA.

4

En concreto. que se corresponde con una de las entradas dedicadas del mismo. S3 y S4 ) se encuentran conectados a entradas dedicadas y S1 se encuentra conectado a un pin de entrada/salida. Las entradas dedicadas de las EPLD's de ALTERA tienen características especiales que las hacen apropiadas para su conexión a señales que precisen de un alto FAN-OUT y un bajo skew. Los tres últimos ( S2.. dividiéndola si fuera necesario para alimentar de forma síncrona a dispositivos de distinta frecuencia que empleemos en nuestros desarrollos. Los cuatro pulsadores se identifican como S1 a S4. La tarjeta requiere que el integrado de la PLD's tenga un encapsulado PLCC de 84 pines para poder ser colocados en el zócalo disponible en la tarjeta y funcione correctamente con el Software. 39 2 1 84 5 .G.2.2.OSCILADOR El módulo oscilador genera una señal de frecuencia de 1’8432 MHz. puede ser cualquiera de las siguientes: • • • • EPM7064S. EPM7096S. Cada pulsador de la tarjeta dispone de un circuito “anti-rebote” de forma que pone un nivel alto TTL (+5V) en un pin de la FPGA mientras se mantiene pulsado y en caso contrario se asigna de forma permanente un nivel bajo (GND). tales como las de inicialización (reset) o reloj. El oscilador está conectado al pin 83 del PLD. EPM7160S.2.PULSADORES.2.1. La interconexión entre los pulsadores y los terminales de la PLD empleada en esta tarjeta de circuito impreso se detalla en la siguiente tabla: PULSADOR S1 S2 S3 S4 PIN F.DISEÑO DE SISTEMAS DIGITALES 1.P. que puede ser usada como señal de reloj cuando sea preciso. EPM7128S. 1.3.PLD’S La tarjeta dispone de cierta flexibilidad respecto al tipo de PLD que puede llevar instalada. 1.A...

3.G. La tarjeta dispone de dieciséis microinterruptores distribuidos en dos módulos de ocho que se encuentran en la parte izquierda.Todos los nombres comienzan por SW.. 12 15 16 17 18 20 21 22 24 25 27 28 29 30 31 33 6 .2.DISEÑO DE SISTEMAS DIGITALES 1.4. Cada uno de los microinterruptores se encuentra conectado a un terminal de la PLD y pone un nivel bajo TTL (GND) en la posición “ON” mostrada en la serigrafía de los mismos y un nivel alto (+5V) en la posición opuesta. precedido por el símbolo “_” .P.A continuación viene un 1 ó un 2 para identificar el módulo al que pertenecen. La interconexión de los microinterruptores y los terminal se muestra a continuación: MICROINTERRUPTOR SW1_1 SW1_2 SW1_3 SW1_4 SW1_5 SW1_6 SW1_7 SW1_8 SW2_1 SW2_2 W2_3 SW2_4 SW2_5 SW2_6 SW2_7 SW2_8 TERMINAL F...MICROINTERRUPTORES. La forma con que se han identificado para su empleo en los diseños es el siguiente: 1. 2.A.Finalmente viene el número que ocupa dentro del módulo de microinterruptores..

-DISPOSITIVOS LUMINOSOS. Para polarizar tanto los segmentos de los indicadores como los LED’s hay que poner un nivel bajo “0” en el terminal al que están conectados. DISPLAY3 identificado por la etiqueta U8. con un nivel alto (+5V). 7 . La tarjeta dispone de tres indicadores luminosos de siete segmentos (con punto decimal) y de una matriz que tiene diez LED’s.2. el funcionamiento del indicador o del grupo de LED’s individuales de la matriz con el que está asociado. por lo que se emplea cuatro terminales de la FPGA para generar las señales de control adecuadas para que se puedan emplear todos ellos de forma simultánea en los diseños que realice el alumno. ya que son de ánodo común.DISEÑO DE SISTEMAS DIGITALES 1. Cada señal de multiplexación habilita. Estos tres dispositivos están multiplexados entre sí junto con ocho de los LED’s de la matriz. DISPLAY2 identificado por la etiqueta U7.5. En adelante se hará referencia a los indicadores de siete segmentos de acuerdo con la siguiente notación: • • • DISPLAY1 identificado por la etiqueta U6.

Están asociadas a los displays y al grupo de Led’s tal y como se muestra en la siguiente tabla: SEÑAL DE MULTIPLEXACIÓN DISPOSITIVO ASOCIADO MUX_0 MUX_1 MUX_2 MUX_3 DISPLAY1 DISPLAY2 DISPLAY3 LED'S Los terminales de la PLD conectados a las señales de multiplexación empleadas en el control son los indicados en la siguiente tabla: 8 .8 MHz. MUX_1.DISEÑO DE SISTEMAS DIGITALES SW5 ON 1 a b c d e f g punto mux0 mux1 mux2 mux3 led9 led10 U6 a f e d g b c U7 a f e d g b c U8 a f e d g b c U9 SW6 ON 1 ALTERA MAX EPM7128SLC84 S1 S2 S3 S4 PULSADORES BUS DE DATOS 10 9 8 7 6 5 4 3 25 24 21 23 2 26 27 20 22 1 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 CE OE VPP MEMORIA RAM U16 O0 O1 O2 O3 O4 O5 O6 O7 11 12 13 15 16 17 18 19 BUS DE DIRECCIONES 27256 OSCILADOR 1. de los diez que forman la matriz.A. Los ocho LED’s que están multiplexados con los indicadores. Los LED 9 y 10 situados en la parte inferior se encuentran asignados a terminales independientes de la F. Las señales de multiplexación se denominan MUX_0. MUX_2 y MUX_3. se pueden asignar mediante un terminal de entrada/salida de forma directa. es decir. son los que van del número 1 al 8.G. empezando por arriba.P. y no requieren multiplexación para su funcionamiento.

.P.DISEÑO DE SISTEMAS DIGITALES SEÑAL DE MULTIPLEXACIÓN TERMINAL F..El bus de direcciones: formado por quince líneas A0 ÷ A14.P. Dicha sustitución del integrado de la memoria dará lugar a un nuevo replanteo de los terminales de entrada y de salida con respecto a los terminales de la FPGA. SEG A SEG B SEG C SEG D SEG E SEG F SEG G PUNTO DECIMAL LED1 LED2 LED3 LED4 LED5 LED6 LED7 LED8 9 8 4 81 80 10 11 5 Los dos Led’s restantes son denominados como LED_1 y LED_2. los terminales que han sido conectados a los segmentos y al punto decimal de los tres indicadores y a los ocho Led’s multiplexados de la matriz son los que aparecen en la siguiente tabla: SEGMENTOS DEL INDICADOR LED’S DE LA MATRIZ TERMINAL F.P.G.G.G. 70 73 LED´S LED_1 LED_2 1.A.6. La memoria RAM de la tarjeta es un circuito integrado con una capacidad de 32K x 8 bits que puede ser reemplazado por otro dispositivo de mayor capacidad con acuerdo al patillaje de la tarjeta de circuito impreso que dispone de 28 terminales en el zócalo dispuesto para tal efecto. 9 . Las señales de interconexión entre la memoria y la PLD son las siguientes: 1.MEMORIA RAM. 77 76 75 74 MUX_0 MUX_1 MUX_2 MUX_3 De la misma forma.A.A. Los terminales de la PLD a los que está asignada su conexión son: TERMINAL F.2.

G.El bus de datos: formado por 8 líneas identificadas como DATA0 ÷ DATA7.A..DISEÑO DE SISTEMAS DIGITALES 2. que realizan el control de acceso a la memoria y la realización de lectura y escritura en la misma. 3. 51 49 45 54 56 58 61 64 63 60 44 57 67 65 69 52 50 48 34 36 35 10 . que son tres líneas identificadas como CS.. La interconexión entre estas señales y los terminales de la FPGA se indica en la siguiente tabla: TERMINAL DE LA MEMORIA A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 DATA0 DATA1 DATA2 DATA3 DATA4 DATA5 TERMINAL F. OE y WE.Señales de control: Chip Select. Output Enable y Write Enable.P.

PATILLA DEL CONECTOR 11 . Numerando los pines del conector JP11 a partir del número 1 serigrafiado en la tarjeta. NOMBRE DEL TERMINAL TERMINAL F.CONECTOR DE ACCESO A TERMINALES DE USUARIO.DISEÑO DE SISTEMAS DIGITALES DATA6 DATA7 CS OE WE 37 40 41 55 68 El diagrama de bloques interno de la memoria RAM es el siguiente: 1. y se identifican como CUS_1 a CUS_3.7.2. situado junto a la memoria. Los terminales libres de la PLD son 3. la asignación entre etiquetas de las patillas del conector y los terminales de la EPLD se muestra en la siguiente figura.P.A..G. son accesibles por medio de un conector. Los terminales de la EPLD que no están conectados a ninguno de los recursos anteriormente descritos y que no están dedicados a la programación del dispositivo.

2.ACCESO A LOS TERMINALES DE LA TARJETA. En el caso de que no sean necesarios estos elementos de hardware adicionales para otra aplicación..ZONA DE WRAPPING. con el fin de permitir su monitorización con un analizador lógico o un osciloscopio. 1. o que se puedan utilizar como pines de usuario.8. la conexión se realizará por medio de los terminales de entrada/salida que no se hayan empleado en otras funciones o cometidos.2.DISEÑO DE SISTEMAS DIGITALES CUS2_1 CUS2_2 CUS2_3 46 79 6 1 2 3 1. La asignación de los terminales de los recursos de la tarjeta a los conectores se detalla en la siguiente tabla: 12 .9. Los terminales asignados a recursos de la tarjeta están unidos a los ocho conectores que rodean la EPLD. pueden ser desalojados de la tarjeta y permitir la instalación de otros recursos que resulten necesarios en cada caso . El hardware de esta zona puede conectarse con la EPLD por medio de los terminales de usuario que se encuentren libres de otras conexiones y si estos son insuficientes. La zona de wrapping permite añadir hardware adicional para aplicaciones en que los recursos de la placa sean insuficientes.. en el caso de que se desmonten recursos de la placa o se amplíen los mismos para aplicaciones personalizadas del prototipo de desarrollo.

El primer paso que se debe dar al comenzar cualquier diseño es definir el proyecto.. Más adelante encontraremos todos los pasos necesarios para poder realizarlo.DEFINICIÓN DE UN PROYECTO.DISEÑO DE SISTEMAS DIGITALES CONECTOR P1 NC 12 53 34 74 73 10 75 P2 15 14 51 36 GND 71 8 77 P3 17 16 49 NC 70 69 6 79 P4 NC 18 GND 40 68 67 4 81 P5 21 20 45 NC VCC 65 2 83 P6 23 22 NC 44 64 63 84 1 P7 25 24 41 46 62 61 NC VCC P8 27 VCC 39 48 60 NC 80 5 P9 29 28 37 50 58 57 NC GND P10 31 30 35 52 56 55 76 9 P11 33 GND NC NC 54 NC NC 11 JP1 JP2 JP3 JP4 JP5 JP6 JP7 JP8 2. pero a modo de 13 .

5.xnf). (. Archivos de diseño de ALTERA. FICHEROS DE DISEÑO: Puede ser de diversos tipos: Gráfico. .edf). ó XNF (. Archivos de máquinas de estado. situaciones especiales en el programa. Ficheros NETLISTS: Éstos son formados al importar de otros entornos de trabajo distintos a MAX+PLUS II y pueden estar en los formatos: EDIF (. Algunos de ellos se generan automáticamente por la aplicación que estemos ejecutando y otros los crea el usuario al definir símbolos. que pueden ser clasificados básicamente de dos formas: Ficheros auxiliares ó Ficheros de diseño. Algunos de los más comunes que nos podemos encontrar son: Ficheros de programación del dispositivo PLD.adf) 6.sof . Ficheros de formas de onda: Son generados por el editor de formas de ondas del programa y especifican el tipo de onda empleado en simulaciones. (. 3. Contienen la información que más tarde será procesada por un compilador que preparará el NETLIST para ser volcado junto con otras informaciones sobre la tarjeta de prototipos. entonces la extensión será (. 2.hex ) Ficheros de simulación.DISEÑO DE SISTEMAS DIGITALES introducción. (. (. Ficheros de texto HDL: Pueden estar en lenguaje AHDL con extensión (.scf ó .wdf). éstos tendrán la extensión (gdf). La extensión de estos ficheros es (. de texto o de formas de onda.sch). En el caso de que usemos . 4. OrCAD Capture. compatible con las librerías de ALTERA. Cualquier otro formato de Netlist empleado no será reconocido por el software del compilador. (.pof . Ficheros gráficos: Si son generados por la captura de esquemas de nuestro propio entorno de ALTERA.snf ) Informes de compilación.rpt) 14 . A continuación se realiza una descripción de todos estos tipos de ficheros que podemos encontrarnos: 1.smf) FICHEROS AUXILIARES: Son los asociados al proyecto en el que nos encontramos trabajando y los crea el programa de ALTERA. comentaremos algunos aspectos de la jerarquía de los proyectos en el entorno MAX+PLUS II. etc. Un proyecto está formado por una serie de ficheros.vhd). .tdf) ó bien en VHDL (.

.EJEMPLO BÁSICO DE OPERACIÓN.1.acf) Símbolos (. 3. emplearemos unos sencillos proyectos.DISEÑO DE SISTEMAS DIGITALES - Ficheros de configuración. Estos archivos se presentan de la siguiente manera.sym) 2. formando un árbol: En la imagen mostrada anteriormente podemos ver como está compuesta la jerarquía de archivos de un determinado diseño del cual parten otros diseños complementarios con la información sobre los componentes y las simulaciones efectuadas en el transcurso del proyecto. El punto de partida de estos va siendo otro archivo de mayor nivel. Para seguir con mejor precisión este manual. basados en el diseño de circuitos combinacionales y secuenciales a los que alimentaremos con el reloj de la tarjeta mediante unos divisores de frecuencia.JERARQUÍA DE UN PROYECTO.. hasta llegar a la parte superior del árbol (TOP LEVEL) en donde se encuentra el principal archivo del diseño que sirve de punto de partida. 15 . Todo proyecto desarrollado en un capturador dispone de una jerarquía de archivos que son los componentes del proyecto. (. Las diversas ramificaciones del árbol nos llevan a los archivos de menor nivel en la jerarquía.

1.DISEÑO DE SISTEMAS DIGITALES El proceso que se va a seguir para estudiar los ejemplos.sch) 16 . 4. Primeramente se va a comentar los pasos a seguir para crear un nuevo proyecto.. 3.sch) (. 2. Programar la tarjeta de desarrollo con el ejemplo. El primer paso consistirá. Corregir posibles fallos.. 5. se muestra a continuación: Crear el proyecto y capturar el esquema del ejemplo.CREACIÓN DEL PROYECTO. las más corrientes son: OrCAD ALTERA EWB PROTEL (. 3.gdf) (.1.1.CAPTURA DE ESQUEMAS. 3. por tanto en la captura del ejemplo del contador y a partir de ahí se establecerá el proyecto de trabajo.sch) (. Verificar las reglas de diseño. así como todos los diseños que se realicen. 1. Para ello debemos crear o importar el archivo que va a ser el nivel superior de la jerarquía e identificar el directorio en el que se encuentra. Verificación del funcionamiento. Compilar. Existen varios procedimientos para realizar la captura de un esquema bajo diversas plataformas.

Si el archivo que vamos a emplear está en otro proyecto.DISEÑO DE SISTEMAS DIGITALES Para cualquiera de ellos emplearemos la opción del menú “FILE” mediante la opción “OPEN” o la opción “PROJECT” dependiendo de la localización del archivo. con el archivo especificado. indicando el proyecto en el que se encuentra y seleccionando el visualizador de jerarquías. 17 . Posteriormente seleccionamos el elemento que queremos dentro del árbol de selección y realizamos “doble click” sobre él para que se abra el editor gráfico del programa. lo podemos seleccionar a través de la pantalla anterior.

Los archivos resultantes de dicha captura son los que tienen la extensión (*. Esta primera opción es la más adecuada para aquellas personas que tengan experiencia en el manejo este tipo de software o estén familiarizados con el entorno OrCAD y sus funciones.CAPTURA POR ORCAD. Los archivos que proceden de OrCAD tienen la extensión “sch” por lo que será necesario indicarlo en la selección: “Graphic Editor files” del menú “ OPEN ”. la ruta de acceso a dicho fichero y el nombre del mismo en la pantalla que se muestra a continuación: 3. El único problema que puede surgir en estos casos es la compatibilidad entre librerías específicas de un determinado entorno que no sean compatibles con nuestro software de ALTERA.sch).1.. En cualquiera de estos casos. habrá que consultar al profesor para buscar la mejor solución. emplearemos la opción de apertura de ficheros e indicaremos en la misma el formato de fichero que queremos abrir.1. 18 .DISEÑO DE SISTEMAS DIGITALES En caso de que se trate de un archivo que no se encuentre en nuestro proyecto de trabajo.1.

Para crear un esquema nuevo seguiremos los siguientes pasos.1. La otra posibilidad para manejar un esquema es crearlo nosotros mismos dentro del propio capturador que el programa de ALTERA nos proporciona. la FPGA que estamos empleando se encuentra dentro de una tarjeta de circuito impreso junto con otros componentes accesorios.2.. La asignación de cada una de las salidas de la FPGA a dichos periféricos se debe realizar en el esquema principal de la siguiente manera: 1.CAPTURA DE ESQUEMAS EN EL ENTORNO ALTERA. en el menú archivo.4. seleccionamos la opción “NEW” y nos encontraremos con una pantalla en la que marcamos las opciones indicadas. En primer lugar.1. 19 .2 los terminales que vamos a necesitar en nuestra simulación. Esta pantalla es la siguiente: A partir de ahí.1.1.. Como se indicó en el apartado de la tarjeta de desarrollo. dibujaremos el esquema del contador.DISEÑO DE SISTEMAS DIGITALES 3. Esto lo haremos mediante las librerías de componentes y accesorios que tiene el programa. según se indicó en apartados anteriores y siguiendo el modelo que podemos encontrar en el anexo a este documento. 3.ASIGNACIÓN DEL PATILLAJE DE LA FPGA. Identificar en las tablas del apartado 1.

la referencia del esquema será conectada internamente con el terminal elegido del integrado. de forma que cuando se programe el circuito. 20 .. se tiene que seleccionar la opción “ASSIGN”.DISEÑO DE SISTEMAS DIGITALES 2. Mediante el botón derecho del ratón.. “PIN/LOCATION/CHIP.” Y la pantalla que nos encontraremos será la siguiente: En esta pantalla asociamos una conexión o referencia del esquema a un terminal de la FPGA.

al realizarse una orden conjunta de verificación y salvado del diseño con el que estemos trabajando. cumplir estas reglas es indispensable para realizar un diseño seguro. .DISEÑO DE SISTEMAS DIGITALES 3. Las órdenes para hacerlo son: .VERIFICAR LAS REGLAS DE DISEÑO. evitando así muchos de los fallos más comunes como dejar componentes sin conectar.En el menú “FILE”. Puesto que trabajamos con software o herramientas de diseño. se han definido una serie de reglas de diseño mediante las cuales evitamos que el ensamblador del programa cometa error al realizar los pasos finales (por ejemplo.Una vez allí.. y comenzará a ejecutarse el verificador que al finalizar se quedará con la siguiente pantalla: Que mostrará también los errores y advertencias que hayan podido surgir en el proceso de verificación. si el compilador tiene un bucle). seleccionamos la opción “PROJECT”. cortocircuitos de la alimentación. La operación que tenemos que realizar para comprobar el circuito implica que lo guardemos. Además. Lo ideal es que aparezca de la siguiente manera: 21 . seleccionamos “SAVE&CHECK” entre las opciones.2. y otros.

Para acceder a ellas. tras pulsar la aceptación en la ventana final que vimos antes. aparece otra ventana junto a la del compilador donde se procesan los mensajes de error. Con ello se activa una búsqueda automática en el esquema en donde nos localizará el error. se procede a su corrección y se vuelve a iniciar este apartado para verificar que todo está correcto. son cosas que no influyen directamente en el correcto funcionamiento del diseño. Seleccionamos uno de ellos con el cursor del ratón y se pulsa sobre el botón “Locate” de esa ventana. ¿Cómo solucionar los errores que tenga el diseño? Para esta operación. Con respecto a las advertencias (Warnings). el programa dispone de una ventana de avisos sobre errores o advertencias en la cual nos indica cuál han sido estos y en que lugar del esquema se encuentran. Una vez localizado el error por el alumno. pero es conveniente que sean revisadas por el alumno antes de continuar con el proceso siguiente. 22 . Pero.DISEÑO DE SISTEMAS DIGITALES Pero puede que al principio surjan errores que se puedan arreglar sin ninguna dificultad para el alumno.

si se produce algún error en el proceso de compilado. quedaría reflejado en la pantalla anterior y se podría seguir un proceso análogo en la verificación de los errores mediante la pantalla de avisos: 23 . SAVE&COMPILE. completado ó rellenado y ensamblaje del proyecto en curso. PROJECT. Para ello empleamos el compilador. simular y analizar.3. Automáticamente se guardará el archivo del proyecto y comenzará a ejecutarse el compilador en una ventana como la siguiente: Como podemos observar en la figura. mediante las instrucciones: FILE. se han creado varios archivos asociados a la compilación. en un archivo que el ordenador sea capaz de reconocer.. El siguiente paso que tenemos que dar es convertir el esquema del editor gráfico que acabamos de comprobar. COMPLETAR Y ENSAMBLAR.COMPILAR. Al igual que en la verificación de las reglas de diseño. Como en el verificador de diseño. Estos archivos aparecerán posteriormente en el visualizador de jerarquías como auxiliares que nos indican que el proyecto fue compilado con el programa. al concluir el proceso aparecerá una ventana que nos indica los errores cometidos y las advertencias.DISEÑO DE SISTEMAS DIGITALES 3.

ó que emplee la ayuda disponible en el programa. accediendo a ella mediante el botón: “HELP ON MESSAGE” situado en la parte inferior derecha de la pantalla anterior.DISEÑO DE SISTEMAS DIGITALES Se corrigen los errores que se hayan podido cometer en el proceso y se vuelve a realizar la compilación del proyecto según se mostró al comienzo de este apartado. Si alguno de los errores mostrados anteriormente persiste una vez realizada la verificación y corrección por el alumno. será conveniente que éste repase paso por paso con el profesor el proceso seguido en busca del posible fallo. 24 .

El circuito corresponde a un decodificador de 4 bits en hexadecimal a un visualizador de 7 segmentos que corresponden a la figura siguiente según los 4 bits de entrada. Realice el esquema lógico de la siguiente página en el editor gráfico de ALTERA. 25 .DISEÑO DE SISTEMAS DIGITALES EJEMPLO 1: Circuito Lógico 1. Decodificador Hexadecimal a 7 segmentos.

DISEÑO DE SISTEMAS DIGITALES 26 .

Estos componentes reciben el nombre de “output” e “input” y se pueden obtener de la misma forma que las puertas lógicas que ya tenemos en nuestro esquema. Para editar las propiedades de alguno de estos componentes. a una puerta and de dos entradas. y en especial los nombres de los terminales de entrada y salida. o bien pulsar con el botón derecho del ratón y acceder a otras propiedades: 27 . Automáticamente el componente seleccionado es recuadrado en rojo.DISEÑO DE SISTEMAS DIGITALES En primer lugar inserte los componentes haciendo doble click con el cursor del ratón en la ventana de dibujo. Con este mismo procedimiento se van ubicando todas y cada una de las puertas lógicas del circuito mostrado en el enunciado y una vez emplazadas se procede a la inserción de los terminales de entrada y de salida. colocamos el ratón sobre el ítem a modificar y hacemos click sobre él. tal y como se muestra en la figura: Entonces se puede seleccionar el texto y editarlo. como su nombre indica. Aparecerá la siguiente pantalla de selección de componentes en la que existen varias librerías: Se realiza la selección del componente “and2” que corresponde.

sitúe el cursor sobre uno de los extremos del terminal origen y deslice éste sobre el tablero de dibujo hasta conseguir la forma del cable que se adapte a las necesidades del circuito. Repita esta operación hasta completar el esquema propuesto. 3. Nos encontramos en la parte final del proceso en donde ejecutamos una parte del programa en la cual se produce la programación en la FPGA del diseño realizado por el alumno.. Como ya se explicó en los primeros apartados relacionados con la tarjeta de desarrollo de prototipos. siga los pasos descritos anteriormente en este tutorial para salvar el diseño con el nombre: “hex7seg.gdf ” y a continuación realice una comprobación y la correspondiente simulación hasta que no existan errores en el circuito. según se muestra en la siguiente figura: 28 . los datos del ordenador son “volcados” a la tarjeta a través del puerto paralelo del ordenador y un medio de transmisión físico con el dispositivo que es el cable de conexión. A continuación.4.DISEÑO DE SISTEMAS DIGITALES Para trazar el cableado entre los diferentes componentes.PROGRAMAR LA TARJETA DE DESARROLLO CON EL EJEMPLO.

se va a emplear. Es conveniente realizar esta operación antes de asignar las patillas en el circuito esquemático y de compilar el diseño. Esta operación se realizará en el menú “ASSIGN” en la opción “DEVICE”. mediante la pantalla siguiente: 29 . de entre las posibles alternativas posibles. el programador de ALTERA realiza la función de transferir el diseño efectuado a la tarjeta. Primeramente se tiene que especificar al programa qué tipo de tarjeta.DISEÑO DE SISTEMAS DIGITALES La asignación de los contactos de dicho conector se muestra en la siguiente tabla: En la parte que concierne al software.

aceptamos los valores fijados y el sistema queda listo para realizar la simulación con la tarjeta del laboratorio. Para comenzar el proceso seleccionamos el botón “PROGRAM”. Como en ocasiones anteriores. Para ello. 30 . Una vez realizada la selección. en el caso de trabajar con dispositivos diferentes al del Laboratorio.DISEÑO DE SISTEMAS DIGITALES La Familia de FPGA ó EPLD seleccionada es la MAX7000S. La pantalla del programador tiene este aspecto: Si todo ha transcurrido con normalidad. vamos a activar la opción del programador. Este elemento puede ser detectado de forma automática por el software en el caso de no conocer exactamente el modelo que estamos empleando. En caso contrario aparecerá el siguiente mensaje de error y tendremos que comprobar la alimentación y las conexiones del aparato. se activará automáticamente una pantalla en donde se procederá a la programación de nuestro diseño en la memoria interna de la tarjeta para que podamos simular el circuito. y continuando con el ejemplo propuesto. y el dispositivo que tiene la tarjeta de desarrollo del laboratorio es la EPM7128SLC84-7 (-15). en ella se crearán los últimos archivos auxiliares en donde se guarda la información necesaria para ejecutar la aplicación en la tarjeta. Desde aquí también podemos seleccionar el dispositivo de hardware que vayamos a emplear y verificar si éste está correctamente conectado a nuestro PC y se encuentra alimentado.

Además disponemos de un estudio estadístico de la congestión y el nivel de aprovechamiento que tenemos de los recursos del sistema.DISEÑO DE SISTEMAS DIGITALES En este proceso. su procedencia y la patilla de la FPGA a la que corresponde la conexión (si es entrada ó salida) ó el integrado al que pertenecen de los empleados en el diseño. Para visualizar cómo ha quedado distribuidas estas conexiones empleamos el “FLOORPLAN EDITOR”. hacemos “Doble click” sobre la cabecera del integrado del cual queramos saber sus parámetros y encontraremos la siguiente pantalla: 31 . que es una herramienta de visualización con una pantalla como la que se muestra a continuación: Situando el cursor del ratón sobre la cabecera de los bloques representados en la figura. el programa nos dará información acerca de ese contacto. Para acceder a ella. se definen físicamente las conexiones entre los terminales del integrado y el dispositivo lógico que ha sido programado.

pero no es recomendable superar el valor antes mencionado al aplicar tensión en las bornas de alimentación. puede ser muy útil cuando el diseño que se desee realizar tenga mayores perspectivas y se encuentre próximo a superar las capacidades de la FPGA.DISEÑO DE SISTEMAS DIGITALES Con este proceso se puede analizar cualquier nodo del circuito y plantear posibles alternativas para mejorar los recursos de que se dispone. 32 ..VERIFICACIÓN DEL FUNCIONAMIENTO. Hay que tener muy en cuenta que la alimentación de dicha tarjeta ha de ser de +5V y que no se debe superar ésta o se provocará una avería. Ya hemos realizado todos los pasos para convertir un proyecto “sobre el papel” en un modelo ejecutable por el alumno en una tarjeta de circuito impreso diseñada para tal efecto. 3.6. Ahora lo que resta es que éste compruebe que las condiciones de funcionamiento que había especificado en su diseño se ajusten a las que está observando en la tarjeta. teniendo en cuenta que el integrado que empleamos es uno de los “Hermanos menores” de la familia de EPLD que hay en el mercado. Esta información no será relevante en el ejemplo propuesto en este manual pero. sin duda. Las tarjetas están dotadas de una protección contra sobretensiones.

En la barra de menú principal encontramos un menú desplegable con el nombre de “PROCESSING”. 4. Definiremos también una serie de “Vectores de test” que son un conjunto de estímulos o señales que aplicamos a los elementos de entrada de nuestro circuito para verificar su funcionamiento bajo una serie de características definidas en los mismos. Primero abriremos el archivo que lo contiene y posteriormente activaremos el compilador. Al abrirlo encontramos las posibles opciones de compilación. ya que a mayor nivel de circuito. Los primeros pasos a dar para realizar la simulación lógica pasan por la creación de un modelo de simulación a partir de los ficheros que se han empleado para hacer el diseño y lo enfocaremos a un tipo de simulación funcional o con retardos. más dificultad a resolver por la máquina. Como ejemplo de la simulación lógica con MAX+PLUS II emplearemos el diseño del decodificador BCD a 7 segmentos que realizamos unos capítulos atrás. En cualquier caso.. ya que se trata de un paso muy importante en la simulación lógica que resulta ser la base de la comprobación del circuito. Para una simulación funcional . Ahora decidiremos el tipo de simulación que se va a realizar. para todas la aplicaciones que se verán en este curso. La complejidad de la simulación depende proporcionalmente del circuito que tratemos de verificar.DISEÑO DE SISTEMAS DIGITALES También hay que vigilar que la conexión de la tarjeta con el ordenador esté correcta y asegurada. muy extendidos en la Industria.SIMULACIÓN LOGICA. ya que si se desprende el conector puede dar lugar a un mal funcionamiento del proceso de “volcado de datos” que es realizado al programar la tarjeta. activamos la opción “FUNCIONAL SNF EXTRACTOR” . ya sea funcional o simulación con retardos de propagación en los componentes lógicos empleados en la sintaxis del diseño..1. tal y como se muestra en la figura: 33 . 4. como por ejemplo VHDL o VERILOG. La creación de estas señales de entrada ó vectores de test debe ser realizada con toda precaución. Esta operación puede ser efectuada mediante dos métodos: uno gráfico y otro mediante un lenguaje de texto. la simulación lógica no tomará más de unos minutos de trabajo por parte del software de aplicación.SIMULACIÓN LÓGICA CON HERRAMIENTAS DE ALTERA.

en el directorio en curso.DISEÑO DE SISTEMAS DIGITALES Y el compilador queda con la siguiente apariencia: 4. Los ficheros gráficos de simulación son los más fáciles de estudiar ya que estamos más acostumbrados a este tipo de señales (ORCAD) que las generadas por un archivo de texto. Vamos a partir de un proyecto que ya haya sido compilado con éxito para proceder posteriormente a la creación de un fichero de estímulos y asociar estos a las correspondientes entradas o salidas de nuestro diseño.2. establecemos el proyecto de trabajo. Para crear un fichero gráfico que contenga los estímulos de entrada salida. 34 ..FICHEROS GRÁFICOS PARA SIMULACIÓN. con el diseño a comprobar.

DISEÑO DE SISTEMAS DIGITALES A continuación seleccionamos en el menú principal la opción “FILE”. “NEW” y una vez allí la opción de “WAVEFORM EDITOR FILE”. en el menú principal activamos la opción “NODE” . Para ello . tal y como se muestra en la figura: Al aceptar esta opción nos encontraremos con una pantalla como esta: El siguiente paso será definir en qué terminales vamos a introducir señales de simulación. “ENTER NODES FROM SNF” y aparecerá la siguiente pantalla: 35 .

DISEÑO DE SISTEMAS DIGITALES Arriba a la derecha pulsamos el botón “LIST” y nos aparecerán todos los terminales que hayan sido declarados en el diseño del circuito (GDF). Podemos observar que el programa nos muestra directamente la señales de entrada y de salida claramente identificadas para que nosotros a continuación sólo tengamos que asignar una de ellas a cada canal de simulación: 36 . En la siguiente figura vemos el ejemplo del decodificador BCD a 7 segmentos que diseñamos anteriormente mediante circuitos combinacionales y que posteriormente se integró en un bloque.

Repetimos estos pasos para todas las entradas del decodificador. Tras realizar esta operación pulsamos el botón “OK” y los nodos estarán entonces representados en la pantalla principal en forma de ejes de abcisas en los que podremos componer las señales mediante el simulador gráfico. por ejemplo.DISEÑO DE SISTEMAS DIGITALES Los nodos ó terminales que llevan consigo la letra (I) son de entrada y los que tienen la (O) son de salida. A continuación éste nodo se activará en la lista de nodos seleccionados. de forma que se podría simular la entrada o salida de datos a uno de estos elementos con las dos opciones situadas en la parte derecha del tipo de nodo. Existe también la posibilidad de emular los Bits o palabras (Bytes) del contenido que se situaría en una memoria del tipo RAM ó ROM de las que se incluyen en la librería. 37 . tal y como se muestra en la figura de la página siguiente. el nodo d(I) de la lista que nos ofrecen y pulsamos el botón “ => ” del centro de la pantalla para confirmar su selección. Seleccionamos. Estas referencias de diseño abarcan todos y cada uno de las entradas o salidas seleccionadas anteriormente. emplazando las señales por cada canal de simulación como si se tratase de un osciloscopio digital en el que se introducen las entradas procedentes de un emulador digital.

.DISEÑO DE SISTEMAS DIGITALES 4. dependiendo de cada diseño en particular.DEFINICIÓN DE ESTÍMULOS La primera operación a efectuar es delimitar el tiempo total de simulación. Seleccionamos en el menú “FILE” la opción “END TIME” y nos aparecerá por defecto el tiempo de 1 microsegundo en la siguiente pantalla: Escribimos el valor del tiempo de ejecución del sistema en la simulación. Para el ejemplo que estamos ilustrando en este manual de trabajo. 38 .3. seleccionamos el tiempo de 10µs y pulsamos el botón “OK”.

seleccionamos sobre el campo “VALUE” de la señal de entrada “d” del decodificador y a continuación pulsamos el icono situado en la barra de herramientas de la izquierda que tiene la siguiente forma física: Con ello se activará la pantalla siguiente : Estos son los valores que aparecen por defecto y que tienen que ver con los parámetros de la rejilla que definimos anteriormente.1.. dependiendo de la aplicación a simular y a las condiciones de diseño y funcionamiento de la misma. Aparecerá entonces la siguiente pantalla en donde actualizaremos el valor que queramos para la rejilla: En principio podemos dejar este valor que aparece en la pantalla ya que no provocará que sea demasiado densa ni muy extendida. En este apartado vamos a realizar las simulación de señales cuadradas de factor de servicio del 50%.. En el menú “OPTIONS” tenemos que tener activado el “SNAP TO GIRD” y especificaremos el ancho de rejilla mediante la opción “GIRD SIZE. 4.DISEÑO DE SISTEMAS DIGITALES A continuación adaptamos la rejilla y los valores de ésta.DEFINICIÓN DE SEÑALES. óptimas para el ejemplo del decodificador y punto de partida para que ele alumno pueda desarrollar el resto de señales que sean útiles para su propio modelo de simulación. 39 .. Si queremos que la frecuencia varíe sólo tenemos que modificar el valor de multiplicación que está a mano derecha. sino equilibrada con respecto al tiempo límite de simulación que especificamos anteriormente.3. Partiendo de la pantalla principal del simulador lógico. Para otro tipo de simulación realizada por el alumno. los tiempos totales y las divisiones del mismo serán fijadas en cada caso.” de ese mismo menú.

.. de forma que tengamos un código binario natural aplicado a las entradas del decodificador... 14 1110 15 1111 40 . 4.... tal y como se indica en la figura: Realizamos este proceso multiplicando las señales de entrada por 2. . tal y como se indica en la siguiente tabla: NUMERO CODIFICACION REPRESENTADO BINARIA 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 . y 8 respectivamente.DISEÑO DE SISTEMAS DIGITALES Con ello formaremos las señales de diferente periodo....

salvo que para asignar el valor a la misma. los pasos serán muy similares al de una señal sencilla.”. Y la pantalla que aparecerá será la siguiente: 41 .. “OVERWRITE”.. “COUNT VALUE. emplearemos el comando “EDIT”.DISEÑO DE SISTEMAS DIGITALES La señal generada queda así: En el caso de que la señal a crear sea para un BUS.

hay que guardar éste con el mismo nombre que tenga el proyecto en curso . 4. De lo contrario no será capaz de encontrarlo al realizar la simulación y dará un mensaje de error. El siguiente paso será activar el simulador. Tras definir el archivo que contiene las señales que serán simuladas posteriormente.DISEÑO DE SISTEMAS DIGITALES Finalmente añadiremos los valores que vayamos a emplear y aceptaremos el cambio en las opciones. arriba.. activamos en el menú principal la siguiente secuencia de operaciones: “FILE.4. Para realizar esta operación correctamente. pero no van a ser objeto de estudio en este manual. En cualquiera de los dos casos aparecerá la siguiente pantalla: IMPORTANTE: La opción “USE DEVICE” no debe estar seleccionada para realizar la simulación .PUESTA EN MARCHA DE LA SIMULACIÓN. que corresponde a un fichero gráfico de estímulos o señales (Waveform editor file). SAVE AS” y después seleccionamos el mismo nombre que el fichero del proyecto y la extensión SNF de entre las opciones disponibles. Existen otros tipos de ficheros de estímulos basados en programas de texto muy similares a los descritos en el apartado VHDL. En caso contrario aparecerá el siguiente mensaje de error: 42 . Bien desde los iconos de la barra de herramientas superior o desde el menú desplegable de Max+plus II situado a la izquierda.

DISEÑO DE SISTEMAS DIGITALES Una vez tenido en cuenta este importante detalle. Una de ellas es que todo el proceso se haya desarrollado satisfactoriamente y aparezca la siguiente pantalla: La segunda posibilidad es que exista algún error en la simulación. el siguiente paso a dar es iniciar la simulación pulsando el botón “ START ” de la pantalla del simulador. pero se indicarán en ella los errores o advertencias que se detectaron en el proceso de simulación. Arranca en ese momento el compilador del sistema de simulación y al finalizar ésta podemos encontrar dos posibilidades. en cuyo caso aparecerá esta misma pantalla. Si acudimos a la ayuda existente en dicha ventana localizamos el error y lo solucionamos. Una vez repasados los errores comprobamos el funcionamiento en la pantalla del simulador de señales: 43 .

de forma que se realiza el proceso de diseño..Es un lenguaje empleado en los entornos EDA que tiene un propósito general y mantiene una alta compatibilidad con los diseños realizados sobre distintas plataformas ya que sus ficheros son identificados y aceptados por cualquier programa de diseño. Esto se debe a que este lenguaje ha sido normalizado por la IEEE. Las siglas HDL (Hardware Description Lenguages) nos definen un lenguaje de especificación de hardware que es empleado para el diseño. 2º. son: 1º.Escribir el código de programa y la descripción del mismo..Solucionar los posibles fallos encontrados y simular el diseño. 5. El AHDL resulta más sencillo de aprender por el alumno y éste puede emplearlo como base para estudiar otros lenguajes de este tipo de mayor nivel de dificultad.. que por su parte es muy versátil. de manera alternativa a lo visto en los capítulos anteriores.. comprobación y simulación de forma homóloga a la captura o dibujo de esquemas de circuitos digitales.REALIZACIÓN PRÁCTICA DE CIRCUITOS MEDIANTE EL LENGUAJE HDL...Comprobar el fichero de diseño que hemos creado. 44 .LENGUAJES HDL. Existen dos variantes de este lenguaje que son empleadas por el software de ALTERA y que van a ser descritas a continuación: • VHDL.. El único inconveniente que plantea es que no es compatible con ninguna otra plataforma de diseño que no sea ALTERA. los pasos que tenemos que dar para definir un fichero HDL en cualquiera de sus dos versiones (VHDL ó AHDL). pero muy complicado de manejar y dominar. 4º.1.Seleccionar un proyecto de trabajo en el que se desee crear el fichero.Crear un fichero de diseño dentro de ese proyecto.. • AHDL. 5º.DISEÑO DE SISTEMAS DIGITALES 5. Plantea una ventaja frente al VHDL.. 3º. Continuando con el ejemplo que vimos en los capítulos anteriores o comenzando otro proyecto de diseño diferente.Este otro lenguaje es más particular del entorno EDA de ALTERA y sólo vale para éste.

DISEÑO DE SISTEMAS DIGITALES Siguiendo estos cinco sencillos pasos. vista en el capítulo anterior y de una gran utilidad tanto para el estudiante como para los diseñadores profesionales. en la opción “NEW”. nos encontramos con una ventana de edición de texto como la mostrada en la siguiente figura: 45 . entre ellos la simulación lógica.1. seleccionando las opciones que se han indicado en la siguiente imagen: Una vez aceptada la pantalla anterior.SELECCIÓN DEL PROYECTO DE TRABAJO Y CREACIÓN EL FICHERO HDL. 5. hay que abrir un nuevo archivo de edición de texto para trabajar sobre él..1. En primer lugar y siguiendo los pasos establecidos anteriormente. el alumno será capaz de crear un fichero en alguno de los lenguajes HDL y hacer una descripción de hardware en dicho código y comprobar su funcionamiento por distintos métodos. Se hará mediante el menú “FILE”.

se correspondía con los archivos de AHDL. La pantalla empleada para esta función es la siguiente: 5. En primer lugar tenemos que realizar las descripciones que son posibles sintetizar en VHDL mediante el ejemplo descrito.DISEÑO DE SISTEMAS DIGITALES Ahora para convertir este fichero de texto a otro de la forma VHD. si alguna de las terminologías empleadas o conceptos descritos no se ha desarrollado con la suficiente claridad. el alumno puede encontrar información complementaria en los archivos de ayuda de que dispone el programa de ALTERA en la carpeta de ayuda de VHDL que encontrará en el menú principal de Ayuda (HELP). como se muestra a continuación: (Nombre del fichero ) . teniendo en cuenta que la extensión tiene que ser para un archivo de la forma VHDL. “SAVE AS”. Como parte del ejercicio que estamos realizando. vhd Ya que el propio programa tendería a salvarlo por defecto con la extensión “ tdf ” que como vimos al principio de este documento. Este fichero tendrá que conservar el nombre de la entidad de programación. 46 .2. Durante todas las operaciones de esta creación del archivo. tenemos que guardar el fichero mediante el menú “FILE”..1.CREAR UN FICHERO DE DISEÑO. y posteriormente. en el editor de texto que abrimos antes realizaremos el programa que definirá el decodificador en el lenguaje HDL. vamos a hacer el decodificador de BCD a 7 segmentos y lo incluiremos posteriormente en el diseño efectuado al principio. en sustitución del integrado que fue empleado en capítulos anteriores y diseñado mediante un circuito combinacional.

1. Las normas principales que tenemos que observar a la hora de realizar nuestro diseño son: • El nombre asignado al campo ENTITY debe coincidir con el fichero empleado para la edición que hemos asignado en los pasos anteriores. La descripción de cada una de las funciones de los puertos será efectuada posteriormente. • El flujo de entrada o salida que tienen cada uno de los terminales que hemos asignado puede ser unidireccional (Entrada ó salida) o bidireccional. constantes y señales.1. • Para los nombres de los puertos definiremos etiquetas alfanuméricas que no coincidan con los elementos de sintaxis definidos por el programa para operaciones. dependiendo de su funcionalidad. ya que si éste puede ser de un solo bit o de 4. dependiendo del tamaño del array o bus que se asigna a dicho elemento de entrada /salida / bidireccional. Una vez que terminemos el diseño. 8.. el nombre de los dispositivos con sus entradas y salidas. el lenguaje VHDL nos permite clasificarlos de otras dos formas: BIT y BIT_VECTOR. A continuación se va a describir. 47 . • Para el caso de que los datos a manejar sean señales. dentro de este lenguaje.2. puertos y declaración de entidades mediante la siguiente sintaxis: ENTITY PORT ( (Nombre del dispositivo) IS [Lista de puertos de entrada] [Lista de puertos de bidireccionales] [Lista de puertos de salida] [Lista de puertos de salida] END (Nombre de dispositivo) : IN : INOUT : OUT : BUFFER [Tipo de dato] . Este tratamiento específico nos permitirá asignar operadores aritmético-matemáticos. estos nombres serán asignados a cada uno de los terminales del circuito y podrán dar lugar a conflicto con el programador a la hora de “volcar” los datos a la tarjeta de la FPGA. en caso contrario no podrá compilar el archivo.INTERFACE DEL DISPOSITIVO Y DECLARACIÓN DE ENTIDAD.DISEÑO DE SISTEMAS DIGITALES 5. [Tipo de dato] . lógicos (binarios o en matriz) o de conversión a cada terminal. [Tipo de dato] . etc. • Los datos que van a recibir o enviar estos puertos deben ser definidos en tres grandes grupos: Variables. [Tipo de dato] .

seleccione de la opción “Library Clause”. Posteriormente. pero seleccionando VHDL. 48 . en donde encontraremos una plantilla para cada uno de los siguiente casos posibles: Por ejemplo. tal y como se puede ver en la figura. lo que nos encontremos será la siguiente ventana. posteriormente acepte. el volver a esa misma opción del menú principal. Para activarla seleccionamos en el menú “TEMPLATES” la opción que afecta al lenguaje de programación que estemos empleando. Repita los pasos anteriores para los casos: “Use clause” y “Entity declaration”.DISEÑO DE SISTEMAS DIGITALES Dentro de las ayudas que facilita el programa se encuentran una serie de plantillas de las estructuras más comúnmente empleados en la programación con VHDL.

DISEÑO DE SISTEMAS DIGITALES Al realizar esta operación aparecerá en el editor de texto el cuadro de opciones que estábamos describiendo en las páginas anteriores. tal y como se muestra en las dos siguientes figuras: Completando la plantilla descrita con los datos de programación del decodificador. en donde podemos rellenar los datos que nos hagan falta sustituyendo las condiciones adecuadas para el ejemplo que se esta siguiendo. tal y como se muestra en la siguiente figura: 49 .

para estos últimos se emplea un color negro.DISEÑO DE SISTEMAS DIGITALES Se emplearán las letras mayúsculas para los comandos de función y las minúsculas para los nombres de archivos y dispositivos auxiliares. procederemos a definir las especificaciones de funcionamiento a través de una serie de “cuerpos de arquitectura ”.Concurrent Procedure Call -. Al igual que en el paso anterior. Zona de descripción Zona de declaración El nombre que empleamos para la arquitectura hace referencia a la estructura o funcionamiento de la misma. existe una plantilla que nos va a permitir facilitar la tarea de asignar la sintaxis adecuada al proceso de programación: ARCHITECTURE [nombre de arquitectura] OF [nombre de entidad] IS SIGNAL __signal_name : STD_LOGIC.Conditional Signal Assignment -. Podemos encontrar varios de éstos dentro de un mismo componente ya que pueden existir pequeñas modificaciones en el funcionamiento o diferencias de comportamiento por distintos por tener diferentes arquitecturas para simulación y para síntesis. 50 .Selected Signal Assignment -.Concurrent Signal Assignment -. SIGNAL __signal_name : STD_LOGIC. BEGIN -. y para los primeros el color azul que identifica automáticamente nombre.Process Statement -.Component Instantiation Statement -.Generate Statement END [nombre de arquitectura]. Una vez definido el comienzo del programa. Para estas descripciones emplearemos los “PROCESOS” que utilizan los algoritmos o funciones que nos permiten determinar el valor de las salidas en función del valor que tomen las variables de entrada al circuito o las de control si es que se han especificado estas últimas. Además.

51 .If Statement -. BEGIN -. __signal_name. tipos de datos. adecuada en cada caso. tal y como se detalla a continuación.Case Statement -. completándola como se indica en el ejemplo. Para describir la funcionalidad del circuito combinacional que estamos empleando.Signal Assignment Statement -. VARIABLE __variable_name : STD_LOGIC. Zona de declaración Ahora que ya se conoce la estructura sintáctica de alguno de los componentes básicos de un archivo VHDL.Variable Assignment Statement -. En el archivo de texto que se había abierto con el nombre “decobcd7seg ” tras la declaración de entidad vista anteriormente se sitúa la cabecera de arquitectura. elaboraremos el “PROCESO” que será sensible a todas las señales de entrada y salida y nos asignará a las salidas la combinación.Procedure Call Statement Zona de descripción -. de las señales de entrada al circuito.Loop Statement END PROCESS __process_label.DISEÑO DE SISTEMAS DIGITALES En la zona de declaración. especificando las señales. El proceso tiene esta estructura: __process_label: PROCESS (__signal_name. subprogramas y componentes que vayan a ser empleados posteriormente en la descripción que empieza después del comando “BEGIN” y donde escribiremos el código que describa el funcionamiento del circuito especificado. se emplea para realizar las declaraciones de la unidad. que se encuentra debajo del nombre de la arquitectura. completaremos los datos correspondientes al diseño del alumno de un decodificador BCD a 7 segmentos. __signal_name) VARIABLE __variable_name : STD_LOGIC.

END funcional. 52 . BEGIN index := d & c & b & a . CASE index IS WHEN “0000” => S <= “1111110”. Ahora se comprueba que ha sido introducido el código de programa satisfactoriamente mediante la comprobación del compilador. WHEN OTHERS => S <= “0000000”. WHEN “0011” => S <= “1111001”. WHEN “0100” => S <= “0110011”. WHEN “0101” => S <= “1011011”. WHEN “1000” => S <= “1111111”. ARCHITECTURE funcional OF decobcd7seg IS BEGIN PROCESS (a. WHEN “0010” => S <= “1111101”. WHEN “1001” => S <= “1110011”. conocida en varios lenguajes de programación.b. WHEN “0110” => S <= “1011111”. WHEN “0111” => S <= “1100000”.c. END CASE. WHEN “0001” => S <= “1101101”.d) VARIABLE index : STD_LOGIC_VECTOR (3 DOWNTO 0).DISEÑO DE SISTEMAS DIGITALES Se añade a continuación el proceso que tenga todas las señales de entrada y describa el algoritmo de funcionamiento o tabla de verdad del decodificador buscado. empleando una sentencia adecuada como es “CASE”. END PROCESS. Para ello se presiona las teclas CTRL + K y éste arrancará.

Y el símbolo que se ha creado es el mostrado en la figura: 53 . En este momento el programa habrá creado un símbolo para este nuevo módulo. Este lo podremos encontrar abriendo el fichero decobcd7seg. cerramos la ventana del compilador.DISEÑO DE SISTEMAS DIGITALES Si se produce algún error en el proceso nos lo comunicará y lo solucionaremos.sym mediante el menú principal de archivos. En caso de que se haya completado con éxito la compilación.

comprobamos si las especificaciones iniciales que teníamos de dicho componente se asocian con la realidad que estamos visualizando.std_logic_arith.sg : OUT STD_LOGIC.ALL. Modificamos y añadimos la siguiente secuencia de código al programa: LIBRARY ieee. Vamos a convertir el vector de salidas en elementos individuales. WHEN "0100" => S := "0110011". WHEN "0010" => S := "1111101".sf.ALL. sa. 54 .d : IN STD_LOGIC.se.vhd”.b.b. WHEN "0101" => S := "1011011".sb. WHEN "0111" => S := "1100000".sd. ARCHITECTURE funcional OF decobcd7seg IS BEGIN PROCESS (a. USE ieee.std_logic_1164.sc. En caso contrario.c.c. ). realizaremos las modificaciones del símbolo ó del módulo VHDL mediante la edición del archivo de texto “decobcd7seg. CASE index IS WHEN "0000" => S := "1111110". WHEN "0011" => S := "1111001". WHEN "0001" => S := "1101101". END decobcd7seg. VARIABLE S: STD_LOGIC_VECTOR (6 DOWNTO 0). asignando cada uno de los segmentos de visualizador a uno de los terminales de salidas del decodificador creado. BEGIN index := d & c & b & a . WHEN "0110" => S := "1011111". ieee. ENTITY decobcd7seg IS PORT( a.d) VARIABLE index : STD_LOGIC_VECTOR (3 DOWNTO 0).DISEÑO DE SISTEMAS DIGITALES Una vez que hemos visto el símbolo creado mediante el programa.

sym podemos ver que los cambios han sido efectuados. Al compilar el archivo de texto mediante la orden CTRL + K y verificar que no han existido errores. sa <= S(6).DISEÑO DE SISTEMAS DIGITALES WHEN "1000" => S := "1111111". Para solucionar este problema se activa la opción del menú “FILE”. “CREATE DEFAULT SYMBOL” y en ella se confirma la actualización de dicho puerto. sg <= S(0). Para ello aparecerá la siguiente pantalla que debemos aceptar en caso de que sea correcta la actualización que vamos a emplear: Esta opción modifica el símbolo anterior y lo convierte al nuevo. sf <= S(1). Al realizar esta operación nos damos cuenta de que no han sido actualizados los puertos del mismo y continúan siendo los del caso anterior. sd <= S(3). sc <= S(4). Y tras aceptar esta opción el programa genera el símbolo: Al abrir el archivo decobcd7seg. abriendo el fichero que corresponde al símbolo creado. END CASE. se procede a actualizar los puertos. WHEN OTHERS => S := "0000000". END funcional. sb <= S(5). se <= S(2). tal y como se puede ver en la siguiente imagen: 55 . END PROCESS. WHEN "1001" => S := "1110011".

5. activamos el compilador.2. seleccionamos la opción “INTERFACES” de la barra de menú principal y posteriormente en el menú desplegable la opción “VHDL NETLIST READING SETTINGS....” con lo que aparecerá la siguiente ventana: 56 . Una vez que se cumple esta primera condición.DISEÑO DE SISTEMAS DIGITALES Estos pasos deberán efectuarse tantas veces como sea necesario para que quede cambiado el símbolo con las distintas modificaciones que realicemos sobre él.LIBRERIAS VHDL DE USUARIO. para poder manejar una librería en el diseño en el que trabajemos. La primera condición que debemos cumplir para emplear las librerías VHDL es que éstas estén incluidas en el directorio del proyecto con el que estamos trabajando.

tal y como se definió en capítulos anteriores. 57 . para ello. 5.3. Si hace falta alguna librería más. Estos módulos que han sido descritos en los apartados anteriores pueden insertarse en cualquier esquema que se realice. con lo que la librería quedará añadida al proyecto actual y será posible acceder a ella en el transcurso del diseño. desde el directorio donde se encuentre asignado el proyecto en curso.. el alumno podrá repetir estos pasos y añadir las librerías necesarias.DISEÑO DE SISTEMAS DIGITALES Escribimos en las casillas correspondientes al nombre de la librería y al directorio que la contiene y pulsamos el botón “ADD”. se inserta el módulo VHDL necesario y se emplean sus terminales de entrada/salida según los requerimientos de diseño. Posteriormente se guarda el esquema finalizado y se comprueba su funcionamiento mediante el compilador y el programador. bien las existentes en el entorno MAX+PLUS II o las creadas por él mismo.INTEGRACIÓN DE MÓDULOS VHDL EN ESQUEMAS.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->