39
Universidad Ricardo Palma Arquitectura del computador Dip., Ing. Gustavo Roselló 1 Dominios de Diseño Introducción En el propósito de describir los circuitos, se han desarrollado variadas formas de expresarlos: >Gráficamente Esquemas Formas de Ondas >Textualmente Ecuaciones Diferenciales Algebraicas Notaciones >Físicamente Layout PCB MCM Para la parte textual, que nos interesa en esta oportunidad, se han desarrollado una variedad de lenguajes artificiales, semejantes a los lenguajes de programación que permiten describir a los circuitos en modelos precisos de manera lógica e independiente de la tecnología en que se le vaya a implementar, a estos lenguajes se les conoce como Lenguajes Descriptores de Hardware (HDL que viene del termino anglosajón Hardware Description Language) Diagrama Y Gajskin y Kuhn desarrollaron el Diagrama Y para esquematizar las distintas formas de especificar un circuito, simularlo e implementarlo de acuerdo al nivel de arquitectura en el que se estuviera trabajando. Cada lado de la Y es un Dominio o forma de representar al circuito digital, estos dominios son descritos como : a) descripción Estructural, b) descripción Funcional c) descripción física Se puede apreciar en el Diagrama Y, en la siguiente página, los campos mencionados anteriormente. Se puede partir de uno de los dominios y pasar al otro según sea la conveniencia del diseño, podemos describir el circuito en forma funcional y simularlo por su

Guia de VHDL

Embed Size (px)

Citation preview

Page 1: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 1

Dominios de Diseño Introducción En el propósito de describir los circuitos, se han desarrollado variadas formas de expresarlos:

>Gráficamente Esquemas Formas de Ondas

>Textualmente Ecuaciones Diferenciales Algebraicas Notaciones

>Físicamente Layout PCB MCM

Para la parte textual, que nos interesa en esta oportunidad, se han desarrollado una variedad de lenguajes artificiales, semejantes a los lenguajes de programación que permiten describir a los circuitos en modelos precisos de manera lógica e independiente de la tecnología en que se le vaya a implementar, a estos lenguajes se les conoce como Lenguajes Descriptores de Hardware (HDL que viene del termino anglosajón Hardware Description Language)

Diagrama Y Gajskin y Kuhn desarrollaron el Diagrama Y para esquematizar las distintas formas de especificar un circuito, simularlo e implementarlo de acuerdo al nivel de arquitectura en el que se estuviera trabajando. Cada lado de la Y es un Dominio o forma de representar al circuito digital, estos dominios son descritos como :

a) descripción Estructural, b) descripción Funcional c) descripción física

Se puede apreciar en el Diagrama Y, en la siguiente página, los campos mencionados anteriormente. Se puede partir de uno de los dominios y pasar al otro según sea la conveniencia del diseño, podemos describir el circuito en forma funcional y simularlo por su

Page 2: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 2

parte estructural e implementarlo en su forma Física en uno de los niveles de arquitectura que deseemos.

La descripción Estructural en este caso es una caja blanca, se sabe lo que hay adentro, como esta compuesta sin describir o definir la tecnología en la que esta se implementará, pero no se sabe que hace,

CA

B

CAJA BLANCA

Page 3: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 3

La descripción Funcional o de comportamiento (en inglés Behavioral), se sabe que hace pero no se sabe que hay adentro, es decir, es una caja negra. que describe como funciona el circuito sin especificar la tecnología y circuitos que la implementarán

la descripción física que es por último la tercera forma de dominio es aquella en la que se ve la forma en que esta implementada, la tecnología empleada, pero no se sabe que hace ni como se conforma por desconocerse el detalle de los componentes empleados para implementarla, por ejemplo: en el primer dibujo vemos un microcircuito CMOS pero no sabemos que hace ni que lo contiene

en la siguiente figura tenemos un tarjeta impresa con integrados que solo los conocedores saben que es, pero no saben si se empleará para la función conocida

CAJA NEGRA

A

B

SUMADOR S

Page 4: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 4

El VHDL y el Diagrama Y En relación a los dominios de diseño esperamos encontrar solo dos formas de describir nuestro circuito en el VHDL puesto que esta es una forma textual y la física se dará en el momento de implementarlo en un PLD, es decir en la estructural y en la funcional, pero en realidad se les tiene a ellos y a una mezcla de ambos La mas cercana a la forma tradicional de realización de circuitos es la Estructural, una intermedia es la LTR y la tercera y mas abstracta es la Funcional. Esto lo tocaremos mas adelante los lenguajes mas desarrollados como el Very high speed integrated circuits Hardware Description Language (VHDL) o el Verilog u otra alternativa como la de ALTERA que tiene el AHDL ( ALTERA Hardware Description Language) y el mas actual el System Description Language (SDL), que por ahora son solo para el área Digital, pronto saldrá el lenguaje descriptor de circuitos analógicos, por que la mayor demora es el no tener una fácil síntesis como en digitales, pues los parámetros de diseño del dispositivo analógico varia según el diseño. El VHDL es muy poderoso, permite desde especificar el circuito al nivel de sistema y realizar pruebas, antes de dividirlo en bloques de menor nivel para su diseño a un nivel de mas detalle, luego se puede especificar el hardware, lo cual lo hace independiente de la tecnología de construcción, pero siempre se le debe escribir en el estilo mas apropiado, en forma de LTR. Hasta el momento para optimizar la portabilidad del diseño a diferentes plataformas. Así mismo, no solo permite realizar el diseño en Lógica Programable ( PLD) sino que se le puede llevar a un ASIC ( Applied Specific IC) si se desea

Page 5: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 5

Un Lenguaje descriptor de Hardware (En este caso de Circuitos Digitales)se diferencia de uno de software por que el HDL considera la temporización. Examinaremos el VHDL

Page 6: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 6

VHDL usando el Software MAX+plusII Se ha preparado este documento para enseñar al estudiante de la URP a como programar en VHDL usando el Software MAX+plusII Versión Estudiante 10.1de Altera como alternativa de Diseño de Lógica Programable o Programmable Logic Design (PLD). Proporcionando el procedimiento paso por paso para formular un programa en VHDL. Para ello emplearemos su compilador VHDL ( Lenguaje de Descripción de Hardware de Circuitos Integrados de Muy Alta Velocidad). La edición del estudiante contiene la mayoría de las características de la versión profesional pero solo compila a un juego limitado de Dispositivos de la Lógica Programable (PLDs), de los cuales podremos emplear solo los siguientes por tenerlos en el laboratorio

PLD Puertas Utilizables pines

MAX7000S EPM7128SLC84-7

2,500 128 FF

84

FLEX10K EPF10K70RC240-4

15,000 a 63,000

240

Requerimiento del sistema Requiere de 33M Bytes a 198M bytes de espacio en el disco duro y de 8M bytes a 32M Bytes de DRAM, (recomendable 32MB).según la versión que se grabe. La última es la versión 10.2 Baseline cuya licencia dura 6 meses y se puede renovar por otros 6 mas. Pero la misma versión puede ser inscrita como estudiante y no requerir mas renovación

Instalación del MAX+plusII de ALTERA El procedimiento es simple. La versión Baseline se puede bajar de la web en la URL siguiente www.Altera.com/downloads o solicitar el CD del laboratorio, normalmente es un archivo ejecutable que indica los pasos a seguir para su instalación. Pero sino es así entonces, para cargar el programa Maxplus2 de altera en la PC, deberá buscar en el directorio del CD de altera, el cual se muestra en la siguiente figura, la carpeta Baseline

Page 7: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 7

al presionar dicha carpeta aparecerá el icono en forma de cajita que se muestra a continuación

este le permitirá instalar el programa en forma automática. El Max Plus II tiene 2 directorios que han sido creados al momento en que se instaló:

C:\max2work C:\maxplus2

MAX2WORK es el directorio de trabajo, también contiene los directorios en el cual encontramos algunos ejemplos de diseño. Usted creará un sub directorio TEMP (y en el debe crear, su propio sub directorio de trabajo), donde se almacenarán los trabajos que serán creados por los usuarios, es preferible que trabaje en el disco duro por ser mas rapido para todos los efectos, copiando despues los archivos en su disquete

Page 8: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 8

MAXPLUS2 en el estan todos los drivers y librerías y no deben grabarse proyectos allí.

Se abrirá el programa y le aparecerá la ventana para que lea las condiciones de la licencia, esta deberá leerse completamente para que pueda pasar a la siguiente etapa, si no la lee no aparecerá marcado el icono de yes, si no la quiere leer pero si acepta las condiciones de la licencia un pequeño truco le permitirá hacerlo, traslade el cursor lateral de la ventana de licencia casi hasta el borde inferior pero no todo, lo mas cerca que pueda sin llegar a tocarlo, luego instálese en el interior de la ventana de condiciones y presione la flecha de avance hacia abajo al llegar al final se activará el icono yes, presiónelo y obtendrá la pantalla de gestión del MaxplusII.

Yendo a la barra de menú ubicar Options seleccionar license setup, le aparecerá la ventana que se aprecia en la siguiente página

Page 9: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 9

esta ventana le pide ubicar el archivo de licencia como no lo tiene y se requiere que el estudiante se registre vía Internet, dando el número de serie de su disco duro, para ello entonces presione el icono System Info... que esta en la parte derecha inferior y le aparecerá la siguiente ventana

El código le aparecerá en su pantalla dentro de la figura que se muestra arriba de este texto, copie el número y en Internet ubique el URL de altera que se da a continuación.

www.Altera.com/maxplus2-student

Page 10: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 10

Una vez que este número es registrado con Altera, el estudiante es notificado vía e-mail con un archivo adjunto con nombre

“ license.dat “ que deberá descargar y copiarlo en su PC, este archivo contiene el número de código de autorización (ver cuadro). Usualmente le tomará solo unos minutos para recibir su código de autorización de Altera, a veces un poco mas.

contenido de archivo License.dat El usuario debe cargar el archivo en su disco duro dentro de un directorio o en el directorio maxplus2 y darle el path al MAX+plus dentro de la ventana de LICENSE SETUP vista anteriormente empleando el icono browser , le aparecerá la ventana que se aprecia en la siguiente página, para ubicar el archivo de licencia para que pueda acceder a la autorización de usar el software.

FEATURE maxplus2web alterad 2005.06 permanent uncounted FBEC80475C7C \ HOSTID=DISK_SERIAL_NUM=137713e8 FEATURE maxplus2vhdl alterad 2005.06 permanent uncounted 319459A09C86 \ HOSTID=DISK_SERIAL_NUM=137713e8 FEATURE maxplus2verilog alterad 2005.06 permanent uncounted \ 329AF82E2F85 HOSTID=DISK_SERIAL_NUM=137713e8

Page 11: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 11

con ese buscador ubica el lugar donde guardo el archivo y lo marca para que se pueda acceder al permiso deseado. Luego presione el icono OK y “voila” tendremos la siguiente ventana

Puede apreciar que se ha habilitado varias opciones, presione OK y estará listo para poder usar su programa de diseño Se asume que por lo menos el estudiante conoce brevemente la sintaxis del VHDL, que en cierta forma es similar al del lenguaje C, ya que ambos emplean el formato Backus–Naur (BNF). Carácter significado ::= “es definido como” <...> identificador ( p. Ej. variables) [...] ítem opcionales {...} ítem repetidos (cero o mas veces) ...|... indica una elección entre ítem :n:m los sufijos indican un rango “de n a m”

itálicasitálicasitálicasitálicas en la descripción de la sintaxis son variables

fuente courier línea de texto en la descripción de la sintaxis

El programa de VHDL correrá, tal como es, en el MAX+plusII

Page 12: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 12

Proceso de Programación usando el editor VHDL del MAX+plusII de ALTERA

Una vez que esta en la ventana de inicio del MAX+plusII, de la barra de menú, seleccione File, luego New, para crear un archivo de diseño, le aparecerá una nueva ventana (figura adjunta) donde deberá seleccionar el Editor de archivos de Texto del MAX+plusII para crear el archivo en VHDL. Le aparecerá una nueva ventana, que es la del editor de texto, puede apreciarla a continuación del texto, en ella el cursor del editor (ver la línea vertical debajo de la palabra Untitled2) está indicando el lugar donde debe ingresar el texto que formará al programa en VHDL. Líneas abajo, en un cuadro, se puede ver un programa VHDL en color, éste programa describe el comportamiento de una puerta And

Page 13: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 13

de 2 entradas, comparable a una de las puertas contenidas en un circuito integrado TTL 74XX08. Para este ejercicio, la entidad se ha llamado pruebaY. Ojo, el MAX+plusII de Altera espera que el archivo final tenga el mismo nombre la entidad.

Después de ingresar el texto que forma el programa pruebaY seleccione File /Save As y tras lo cual le aparecerá una ventana donde, de la sub ventana Automatic Extension, deberá seleccionar a la extensión apropiada, en este caso es la .vhd , luego presione el casillero que contiene a la palabra OK Ojo en realidad puede emplear cualquier editor de texto para escribir un archivo de diseño en vhdl, (con extensión .vhd), luego puede compilarlas y simularlas para finalmente programar un dispositivo de altera. Pero en el ambiente de altera tendrá ventajas que le facilitaran la escritura ya que se resaltan con colores las diferentes partes del texto para identificarlas fácilmente.

Entity pruebaY is port --En la declaración de la entidad, se identifica cada -- señal de I/O -- El conexionado Interno se maneja de otra forma. ( a, b: in bit; --Define entradas "a" y "b" del tipo bit. solo valores 1 ó 0. Y : out bit --Define la salida Y del tipo bit. ); end pruebaY; architecture operación of pruebaY is -- describe la función del dispositivo begin process (a,b) --definimos el proceso a ser implementado --(a,b) indica que el proceso es sensible a cambios en a o b begin y <= a and b; --Se le asigna a Y el valor de la operación lógica a . b end process; end operación;

Page 14: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 14

Esto le deberá proporcionar una ventana como la que se presenta a continuación

Debe dar nombre a su proyecto, dele el mismo nombre que el de su archivo, existen dos formas:

a) a través del menú o b) del paso corto

Page 15: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 15

a) a traves del menú es : con File / Project / Set Project to Current File. Luego el archivo lo puede compilar con File / Project / Save and Compile o con Ctrl L.

b) a través del paso corto es: para ahorrarse tiempo, presione

de entre los iconos al primer disquete

Cualquiera que sea la opción que seleccionó, le aparecerá una ventana preguntándole si va a nombrar el proyecto con el mismo nombre de su archivo actual, Ud. Presione OK y eso asignara el nombre en forma automática a su proyecto y lanzará al compilador, obteniendo como resultado a la siguiente ventana en cualquiera de los casos sugeridos para dar nombre al proyecto

Presione aceptar lo que provocara que el compilador deba continuar su proceso para ello hay dos opciones: a) deberá presionar Start en la ventana del compilador o b) presionar el icono del segundo disquete

Page 16: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 16

, lo cual terminará con la compilación y tendrá la siguiente ventana

Ahora es necesario simular el proyecto, para ello de la barra de menú principal, deberá presionar File / New. Con lo cual tendrá una nueva ventana de creación de archivos, en la que deberá seleccionar a la opción Waveform Editor file que es la opción del editor de archivos de formas de onda para simulación

Page 17: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 17

con la extensión .scf , con la cual se introducirán los vectores de prueba o señales de estímulo para activar al circuito que se ha descrito en el diseño . Luego presione el casillero que contiene a OK. Le deberá aparecer la siguiente ventana, que es la del editor de vectores de prueba ( formas de onda) para realizar la simulación

para ingresar a las entradas y salidas del circuito hay varias posibilidades:

a) De la barra de menú principal o b) Del paso corto

a) De la barra de menú principal: puede seleccionar en Node /

Enter Nodes from SNF.

b) Del paso corto: presionar el botón izquierdo del ratón debajo de la columna name de la ventana del paso anterior tras lo cual le aparecerá la ventana adjunta con lo cual deberá presionar en Enter Nodes from SNF

Page 18: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 18

Tras eso deberá aparecer la ventana adjunta,

en ella presionar en el casillero List, con lo que aparecerán todas las entradas y salidas de nuestro diseño en la sección Available Nodes & Groups, ( es decir la señales de los nodos individuales o de grupo disponibles) de señales disponibles tras lo cual tendremos que seleccionar las entradas y salidas que deseamos ver en el editor de formas de onda para ello deberá presionar el casillero

que traspasa las señales que usted selecciona de la parte Available Nodes & Groups a la seccion Selected Node & Groups. Luego presione OK y tendremos

Page 19: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 19

Creando los estímulos Ahora podemos modificar las señales de entrada para que respondan como queramos mediante los iconos que están en la barra de la izquierda de la pantalla de trabajo. En la página siguiente se aprecia esta barra de iconos con una breve descripción de su característica.

Page 20: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 20

Permite redactar texto en las formas de onda Cursor que permite variar la forma de onda a voluntad en forma manual y seccionada Aumenta en tamaño a la gráfica de formas de ondas Reduce en tamaño a la gráfica de formas de ondas Ajusta la gráfica a el tamaño de la ventana Establece las entradas a "0" Establece las entradas a "1" Sobrescribe la forma de onda seleccionada con un "X" Especifica alta impedancia Invierte la forma de onda

Sobrescribe la señal con la forma de onda de un reloj Especifica una secuencia de cuenta especifica

De usar el icono que esta debajo de la letra A (presionando en el), el cursor cambiará a esa forma al ponerlo debajo de la columna de diagrama de tiempo, en este caso los cambios de las señales se ajustaran a las líneas discontinuas verticales que se ven y se les llama grids

Page 21: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 21

Para variar los ciclos de servicio del reloj o modificar una señal de forma especial, de la barra de menú seleccione Options y desmarque Snap to Grid.. Para establecer su tiempo de simulación, en caso así lo desee pues el MaxplusII de Altera fija por defecto el tiempo de 1 microsegundo, de la barra de menú seleccione File / End Time tras lo cual aparecerá una ventana donde podrá establecer su tiempo de simulación , a mayor tiempo mas recurso de memoria le tomara y la demora del resultado será en forma directamente proporcional

Grabando el archivo Ahora debemos grabar nuestro archivo esto se puede lograr de dos formas

a) De la barra de menú principal o b) Del paso corto

a) De la barra de menú principal: puede seleccionar menú File /

Save As .

b) Del paso corto: es presionar en el icono del tercer disquete tras lo cual aparecerá en la pantalla una ventana que se adjunta en la siguiente página para mas facilidad,

Page 22: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 22

aceptaremos el nombre, que por defecto propone, que es el nombre del proyecto. Para eso presionaremos en OK Simulando Para correr la simulación, hay varias opciones:

a) De la barra de menú principal o b) Del paso corto

a) De la barra de menú principal: ir a guardar el archivo por parte de la barra del menú principal entonces debe buscar en la barra de menú Save as darle el nombre del proyecto y luego seleccionar de la barra del menú principal Max + plus II / Simulator. Entonces aparecerá la ventana de simulación, tras lo cual tendrá que presionar el casillero start, b) Del paso corto: a través del tercer disquete salvara el archivo con el nombre por defecto del proyecto, preguntándole si esta de acuerdo y estará corriendo la simulación en forma automática En la ventana de simulación, que se muestra en la siguiente página, active el icono Start cuando este listo para su simulación. En la ventana aparecerá la barra roja, que conforme progrese su simulación, irá creciendo, en el caso de la figura, esta completa, esta

Page 23: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 23

significa que ya se finalizó la simulación y debe abrir el archivo presionando el icono Open SCF para observar el resultado.

Puede cambiar los tiempos de inicio y fin de la simulación según lo requiera. Al presionar OpenSCF aparecerá la ventana de formas de onda que nosotros hemos creado pero con las formas de ondas de las salidas para cada caso en que establecimos un estímulo.

Page 24: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 24

bien ya estamos listos para entrar mas en detalle del lenguaje VHDL TEMPLATES Los templates o modelos de dispositivos, entidades, arquitecturas u otras estructuras del VHDL, son moldes que usted puede adecuar a sus necesidades y le permiten realizar un archivo de diseño VHDL en forma mas rápida y segura de su diseño en este tipo de formato. Para ello deberá:

1. Cree un nuevo archivo de texto y guardelo con la extensión .vhd

2. escoja del menú de templates VHDL TEMPLATE, le aparecerá

la ventana donde podrá seleccionar el modelo del dispositivo que desee

3. seleccione OK

4. reemplace las variables del template con las de su propia lógica

Page 25: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 25

EL VHDL En capítulos anteriores hemos mencionado los dominios de descripción y que en el caso del VHDL En relación a los dominios de diseño esperamos encontrar solo dos formas de describir nuestro circuito en el VHDL puesto que esta es una forma textual y la física se dará en el momento de implementarlo en un PLD, es decir en la estructural y en la funcional, pero en realidad se les tiene a ellos y a una mezcla de ambos Estas son :

a) la Estructural es mas cercana a la forma tradicional de realización de circuitos,

b) la LTR es una forma intermedia y c) la Funcional que es la mas abstracta.

La descripción estructural en este caso se distingue por ser casi una descripción de cada uno de los componentes que se emplean en el circuito con una descripción detallada de el conexionado tal que parece mas un Netlist del circuito, por lo tanto es la menos abstracta y su síntesis es muy fácil de realizarse La descripción LTR es en realidad un nivel de abstracción menos complejo de la descripción Funcional y se le suele llamar descripción de flujo de datos o Data Flow, pues las instrucciones son todas de asignación, siendo los datos los que gobiernan el flujo de ejecución de las instrucciones, en esta descripción es mas fácil realizar la síntesis del circuito, dado que las estructuras tienen una relación de correspondencia muy directa con su implementación física La descripción Funcional es conocida también como descripción algorítmica e incluye a la anterior, en este caso la implementación es un poco mas compleja, por su aspecto serial y concurrente de la ejecución de sus sentencias.

Page 26: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 26

Escribiendo en VHDL La estructura para el modelado de un circuito en VHDL y comprende de 3 ó mas partes:

a) una entidad ENTITY b) una o mas arquitecturas ARCHITECTURE y c) una o mas configuraciones( paquetes o encapsulados)

PACKAGE y bancos de pruebas TESTBENCH que deben escribirse para testear los circuitos modelados

ENTITY En VHDL es una declaración de una sentencia (STATEMENT) en la que se define la especificación externa del circuito, tal que se puede conectar este a otro circuito de nivel superior o darle los estímulos de las entradas para propósito de simulación., sin embargo esta declaración no incluye la operación que realizará el circuito En la declaración de la entidad, se identifica cada señal de I/O, el rendimiento y sólo los pines externos. El conexionado Interno se maneja de otra forma.

ENTITY nand_2 IS PORT ( a, b: IN bit; Y : OUT bit ); END nand_2;

Donde: nand_2 es el nombre del dispositivo, circuito o sistema a modelar PORT (-- ); es una sentencia que define las I/O del circuito o sistema : IN bit; Define entradas "a" y "b" del tipo bit. solo valores 1 ó 0. : OUT bit Define la salida Y del tipo bit. END --- ; Declara el final de la ENTITY Otras forma de escribir esa entidad es:

Page 27: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 27

1.- ENTITY nand_2 IS PORT (a, b: IN bit; Y : OUT bit ); END nand_2;

2.- ENTITY nand_2 IS PORT ( a, b: IN bit; Y : OUT bit ); END nand_2;

3.- ENTITY nand_2 IS GENERIC (delay : = 5ns); PORT (a, b: IN bit; Y : OUT bit ); END nand_2;

En este caso se agregó una sentencia GENERIC que especifica en este caso particular, el retardo de propagación asignado a la entidad por nosotros, es una constante pasada entre componentes En la sentencia PORT se pueden declarar varios tipos de señales

IN entradas al sistema OUT salidas del sistema INOUT señales bidireccionales BUFFER un registro asignado a una salida

También es posible declarar el uso de librerías que se puedan adquirir o desarrollar

LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; ENTITY nand_2 IS GENERIC (delay : = 5ns); PORT (a, b: IN bit; Y : OUT bit ); END nand_2;

se usa la cláusula LIBRARY y la cláusula USE para darle a la ENTITY acceso a todos los nombres declarados dentro del PACKAGE requerido para nuestro ejemplo : std_logic_1164 en la librería IEEE

Page 28: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 28

ARCHITECTURE Esta declaración es la segunda parte de la descripción del modelo en VHDL , nos permite describir la forma del comportamiento del circuito , cada ENTITY debe tener al menos una ARCHITECTURE, es decir se pueden tener varias declaraciones de arquitectura alternativas para una sola entidad Las descripciones pueden ser por la forma:

a) como se comporta, es decir funcional o Behavioral b) como se compone , es decir estructural c) una mezcla de las dos anteriores, LTR

a continuación se presenta una serie de ejemplos de los diferentes tipos de descripción: a) la descripción funcional

ARCHITECTURE operación_funcional OF nand_2 IS BEGIN PROCESS (a,b) BEGIN y <=NOT( a and b); END process; END operación;

Donde: ARCHITECTURE -- describe la función del dispositivo PROCESS --define el proceso a ser implementado (a, b) --indica que el proceso es sensible a cambios en

-- a o b y <=NOT(a and b) --Se le asigna a Y el valor de la operación lógica b) la descripción estructural ARCHITECTURE operación_estructural OF mux2a1 IS SIGNAL ax, bx, nsel : bit; BEGIN u0 : Entity inv port map (e=>sel, y=>nsel); u1 : Entity and2 port map (e1=>a, e2=>nsel, y=>ax); u2 : Entity and2 port map (b, sel, bx); u3 : Entity or2 port map (e1 =>ax, e2 =>bx, y => sal); END operación_estructural; Donde :

Page 29: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 29

Un: referencia directamente a la entidad y a la arquitectura del componente empleado

Operadores Aritméticos y de Comparación Son 9 operadores en total y estos no pueden ser mas grandes que los resultados En operaciones aritméticas uno de los operando debe ser del mismo ancho que el resultado, el otro debe ser con signo o de cero extendido

Tipo operardor ejemplo

Aritméticos

+ - *

a + b, +a

a - b, -a

a * b

Comparación

< <= > >= = /=

a < b a <= b a > b

a >= b a = b a /= b

En operaciones de comparación el resultado es de un solo bit

Page 30: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 30

Ejemplos de Circuitos Combinacionales Ejemplo 1.- Realice la descripción VHDL del siguiente circuito esquemático.

Solución: ENTITY combi1 IS

PORT ( a : IN BIT; sel : IN BIT; in1 : IN BIT; in2 : IN BIT;

b : OUT BIT;

Sal : OUT BIT; );

END combi1; ARCHITECTURE ident1 OF combi1 IS BEGIN

Sal <= in1 WHEN sel = ´0´ ELSE in2; END ident1;

b a

sel

In1

In2

sel

sal

Page 31: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 31

Ejemplo 2 - Realice la descripción VHDL del siguiente circuito esquemático.

Solución: ENTITY combi_2 IS

PORT ( alto : IN BIT; medio : IN BIT; bajo : IN BIT;

Sal1 : OUT INTEGER; Sal2 : OUT INTEGER; );

END combi_2; ARCHITECTURE ident_1 OF combi_2 IS BEGIN

Sal1 <= 3 WHEN alto = ´1´ ELSE 2 WHEN medio = ´1´ ELSE 1 WHEN bajo = ´1´ ELSE 0;

END ident_1;

Alto

Medio

Bajo

Sal1

Page 32: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 32

Ejemplo 3 - Realice la descripción VHDL del siguiente circuito esquemático.

Solución: ENTITY combi_3 IS

PORT ( d0 : IN BIT; d1 : IN BIT; d2 : IN BIT; d3 : IN BIT;

s : IN INTEGER RANGE 0 TO 3; Sal1, : OUT BIT; );

END combi_3; ARCHITECTURE ident_1 OF combi_3 IS BEGIN

WITH s SELECT

Sal1 <= d3 WHEN 3, d2 WHEN 2, d1 WHEN 1, d0 WHEN 0;

END ident_1;

Sal1

d0

d1

d2

d3

s0 s1

Page 33: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 33

Ejemplo 4 Realice la descripción VHDL del siguiente circuito esquemático.

Solución: ENTITY proc IS

PORT ( d : IN BIT_VECTOR (2 DOWNTO 0); s : OUT INTEGER RANGE 0 TO 3); END proc; ARCHITECTURE ident_1 OF proc IS BEGIN

PROCESS(d) VARIABLE num_bits :INTEGER;

BEGIN num_bits:= 0;

FOR i IN d´ RANGE LOOP IF d(i) = ´1´ THEN

num_bits:= 0 num_bits + 1; END IF; END LOOP;

s <= num_bits END PROCESS;

END ident_1;

S0

d2

d1

d0

S1

Page 34: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 34

Ejemplos de Circuitos Secuenciales Ejemplo1 Realice un latch D como el que se indica en la figura

Sol: ENTITY latch IS

PORT (enable, data : IN BIT; q : OUT BIT);

END latch ARCHITECTURE a OF latch IS BEGIN

latch: PROCESS (enable, data) BEGIN IF (enable = ´1´) THEN -- se analiza el valor

-- de enable, si = 1 se q <= data; -- le asigna a q el valor

-- de data, si es = 0 -- entonces retiene su

-- valor anterior END IF END PROCESS latch;

END a;

D Q

EN

a

sel

y

Page 35: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 35

Ejemplo2 Realice un contador programable de módulo 256 y que pueda contar de arriba o de abajo ENTITY contador IS PORT( d : IN INTEGER RANGE 0 TO 255; clk : IN BIT; clear : IN BIT; load : IN BIT; up_down : IN BIT; qd : OUT INTEGER RANGE 0 TO 255); END contador; ARCHITECTURE a OF contador IS BEGIN -- Un contador up/down PROCESS (clk) VARIABLE cnt : INTEGER RANGE 0 TO 255; VARIABLE direccion : INTEGER; BEGIN IF (up_down = '1') THEN --Genera contador up/down direccion := 1; ELSE direccion := -1; END IF; IF (clk'EVENT AND clk = '1') THEN IF (load = '1') THEN --Genera carga cnt := d; --contador. Toma estas líneas ELSE --para incrementar performance. cnt := cnt + direccion; END IF; --las siguientes líneas producirán

-- un clear síncrono en el contador IF (clear = '0') THEN cnt := 0; END IF; END IF; qd <= cnt; --Genera salidas END PROCESS; END a;

Page 36: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 36

Ejemplo3 Sea la maquina de estados finitos de dos estados como se presenta en la figura, de la versión VHDL

Sol: Su diagrama de estado sería así:

Su versión VHDL sería:

NPR

T Q

clk

NCLR

out

inp

clr

clk

In =1

In=0

S0 S1

Page 37: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 37

ENTITY máquina_de_estado IS

PORT ( clk : IN BIT; inp : IN BIT; clr : IN BIT; Out : OUT BIT; );

END máquina_de_estado; ARCHITECTURE a OF máquina_de_estado IS

TYPE STATE_TYPE IS (s0, s1); SIGNAL state : STATE_TYPE;

BEGIN

PROCESS(clk) BEGIN IF reset = ´1´THEN state <= s0;

ELSIF (clk´EVENT AND clk =´1´) THEN CASE state IS

When s0 => state <= s1;

WHEN s1 => IF inp = ´1´THEN

state <= s0; ELSE state <= s1; END IF;

END CASE; END IF;

END PROCESS; out <= ´1´WHEN state = s1 ELSE ´0´; END a; -- Cuando se usa un IF en vez de un CASE entonces no se reconoce a la máquina de estados

Page 38: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 38

Para más información sobre usar los ejemplos de VHDL que tiene ALTERA, vaya a: How to Use VHDL Examples MAX+PLUS II Help

Page 39: Guia de VHDL

Universidad Ricardo Palma Arquitectura del computador

Dip., Ing. Gustavo Roselló 39

Referencias bibliográficas [ALT00] ALTERA MAX+PLUS II VHDL, Edit Altera Corp, 2000 [ASH96] Ashenden, P, The Designer's Guide to VHDL, Edit M K,

1996 [BHA95] Bhasker, J., A VHDL Primer, revised edition Edit P H,

1995 [SKA96] Skahill, K., VHDL for Programmable Logic Edit A W, 1996 [PAR00] Pardo & Boluda VHDL Lenguaje para Síntesis y

Modelado de Circuitos, Edit Alfaomega, Rama, 2000 [PEL97] Pellerin & Taylor VHDL Made Easy, Edit P H 1997 [YAL98] Yalamanchili, S VHDL Starter's Guide, Edit P H, 1998

M K Morgan Kaufmann P H Prentice Hall A W Addison Wesley