vhdl

103
Ing. Julio Gonzalez Prado V H D L SOFTWARE PARA DISEÑO DE CIRCUITOS INTEGRADOS

Upload: emil01

Post on 29-Sep-2015

23 views

Category:

Documents


3 download

DESCRIPTION

Como se usa VHDL

TRANSCRIPT

V H D L

Ing. Julio Gonzalez PradoV H D LSOFTWARE PARA DISEO DE CIRCUITOS INTEGRADOSIng. Julio Gonzalez PradoV H D L: V HSIC H ARDWARED ESCRIPTION L ANGUAGE(LENGUAJE DE DESCRIPCION DE HARDWARE VHSIC)Ing. Julio Gonzalez PradoVHSIC:V ERYH IGHS PEED I NTEGRATEDC IRCUITS(CIRCUITOS INTEGRADOS DE MUY ALTA VELOCIDAD)Ing. Julio Gonzalez PradoPor lo tanto, el lenguaje VHDL es un lenguaje que se usa para describir el hardware de circuito integrados con aplicaciones en alta velocidad. Ing. Julio Gonzalez PradoEs un lenguaje que tiene elementos del C++ y el Pascal que se emplea bsicamente para realizar implementacin de circuitos de alta velocidad.Por lo tanto, si el C++ y el Pascal tienen aplicaciones para diferentes aspectos, el VHDL se centra en aplicaciones de implementacin circuital.

Ing. Julio Gonzalez PradoORIGENESEl VHDL naci en el ao 1981 cuando el Departamento de Defensa de los Estados Unidos genera un proyecto denominado VHSIC para generar circuito integrados de alta velocidad.El VHDL se desarrolla para estandarizar los procesos de diseo y optimizar el manejo de la informacin que se genera.Ing. Julio Gonzalez PradoORIGENESEn 1983, IBM, Texas Instruments e Intermetrics desarrollan el lenguaje VHDLLa IEEE lo propuso como su estandar en 1984, y en 1987 lo adopt como su lenguaje HDL (mediante el estndar std 1076 1987) Ing. Julio Gonzalez PradoORIGENESComo esta versin demostr algunas carencias relacionadas con la sntesis de circuitos, debido principalmente a la evolucin de las herramientas de diseo que usaban el VHDL y la rpida evolucin de las tecnologas para implementacin de los Circuitos Integrados, se plante una segunda versin en 1993 (que es la vigente) , mediante el estndar IEEE std 1076-1993,conocido como VHDL93. Ing. Julio Gonzalez PradoORIGENESEn esencia la versin de 1987 es un subconjunto de la versin de 1993, de modo que cualquier programa de la versin antigua puede ser procesada por la versin mas reciente.Una excepcin de esta norma es lo relacionado con la declaracin y el uso de ficheros.Ing. Julio Gonzalez PradoAMBIENTE DE DESARROLLOEl diseo con lenguaje VHDL se basa en el concepto de DISEO CON HERRAMIENTAS CAD EDA.Ing. Julio Gonzalez PradoAMBIENTE DE DESARROLLOEl proceso CAD (Computer Aided Design), diseo asistido por computador es un proceso de diseo que emplea tcnicas graficas de computadora apoyadas en paquetes de software para ayudar a los diseadores. Ing. Julio Gonzalez PradoAMBIENTE DE DESARROLLOLa aplicacin de las herramientas CAD en el diseo de circuitos y sistemas electrnicos es fundamental ya que permite la adicin de interfases graficas y simuladores.Ing. Julio Gonzalez PradoESCALAS DE INTEGRACIONLos procesos de integracin implican la continua reduccin del tamao de los componentes, as como el incremento del numero de compuertas en cada integrado.Ing. Julio Gonzalez PradoESCALAS DE INTEGRACIONSSI (Small Scale Integrated): menos de 10 compuertas por integrado.MSI (Medium Scale Integrated): entre 10 y 99 compuertas por integrado.LSI (Large Scale Integrated): entre 100 y 9999 compuertas por integrado.VLSI (Very Large Scale Integrated): entre 10000 y 99999 compuertas.ULSI (Ultra Large Scale Integrated): 100000 compuertas mas. Ing. Julio Gonzalez PradoCARACTERISTICAS DE LA INTEGRACIONMayor numero de dispositivos por IC.Menor numero de componentes/sistemas.Mayor velocidad de calculo.Menor consumo.Mayor esfuerzo en diseo.Mayor costo de fabricacin.Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDLEs un lenguaje concurrente aunque permite definir dominios en los cuales las acciones son del tipo secuencial.Permite diseos modulares y jerrquicos, es til para emplear con la metodologa Top Down.Permite simular el diseo y generar formas de onda. Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDLEs un lenguaje que debe ser compilado antes de ser simulado.Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDLSoporta distintos niveles de descripcin:FUNCIONAL: modelamiento en alto nivel.ESTRUCTURAL: la descripcin se realiza mediante interconexin de componentes.FISICO: se realiza la implementacin real del circuito.Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDLA partir del modelo se puede sintetizar el Hardware a nivel de compuertas con herramientas de sntesis:ALTERA: Max + Plus IICADENCE: SynergyCYPRESS: Warp II, IIIMENTOR GRAPHICS: AutologicSYNOPSYS: Design CompilerVIEWLOGIC: ViewSynthesisIng. Julio Gonzalez PradoCARACTERISTICAS DEL VHDL VHDL no distingue las maysculas de las minsculas: CASA, casa son iguales.Las variables deben empezar con una letra, no deben contener ni espacios ni smbolos como &, %, $, #, . Su longitud no esta limitada. No pueden terminar en _ _ _Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDLOBJETO: es un elemento que tiene asignado un valor de un tipo determinado.Segn sea el tipo de dato, el objeto poseer un conjunto de propiedades y se le podr aplicar un conjunto de operaciones. Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDLIDENTIFICADORES: Son un conjunto de caracteres dispuestos de una forma adecuada y siguiendo unas normas propias del lenguaje, para dar un nombre a los elementos en VHDL.Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDLLos identificadores deben empezar con un carcter alfabtico, no pudiendo terminar en _ No esta fijada la extensin del identificador, pero no debe ser extremadamente larga.Los identificadores pueden tener caracteres numricos (0 al 9) pero estos no deben aparecer en el principio.No puede usarse como identificador una PALABRA RESERVADA.Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDLPALABRAS RESERVADAS: Son un conjunto de identificadores que tienen un significado especifico en VHDL.Son palabras empleadas dentro del lenguaje para realizar un diseo.No pueden ser empleadas como identificadores definidos por el usuario. Ing. Julio Gonzalez PradoPALABRAS RESERVADASabsaccesafteraliasallandarchitecturearrayasserattributebeginblockbodybufferbuscasecomponentconfigurationconstantdowntoelsedisconnectelsifendentityexitfunctiongeneratefileforgenericguardedinoutifinislabellibrarylinkageloopmapmodnandnewnextIng. Julio Gonzalez PradoPALABRAS RESERVADASnornotnullofonopenorothersoutpackageportprocedureprocessrangerecordregisterremreportReturnselectseveritysignalsubtypethentotransporttypeunitsuntilusevariablewaltwhenwhilewithxorIng. Julio Gonzalez PradoCARACTERISTICAS DEL VHDLSIMBOLOS ESPECIALES: Son smbolos que se usan para representar funciones diferentes y especificas.Los smbolos especiales son: + - / ( ) . , : ; & < > = | # := _ _ Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDLNUMEROS: Se considera que cualquier numero se encuentra en base 10.Se admite notacin cientfica para nmeros en coma flotante.Para nmeros en otras bases: 2#11000100#16#C4#Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDLTIPO DE DATOS: Delimita los valores que puede tener un objeto y las operaciones que se pueden realizar con l.Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDLTIPOS ESCALARES: Son tipos que contienen algn tipo de magnitud.Pueden ser: Enteros, Reales, Fsicos y Enumerados.Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDLENTEROS: Son datos cuyo contenido constituye un valor numrico entero.Se definen por la palabra reservada range que indica que esta comprendido entre un cierto intervalo especificando sus limites.Ejemplo:type byte is range 0 to 255;type index is range 7 downto 0;type integer is range -2147483648 to 2147483647;Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDLREALES: Son los que define un numero real.type nivel is range 0.0 to 5.0; type real is range -1,0E38 to 1,0E38;Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDLFISICOS: Son datos que se corresponden con magnitudes fsicas, es decir, tienen valor y unidades.type long is range 0 to 1,0e9unitsum;mm=1000um;m=1000mm;end units; Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDLENUMERADOS: Son datos que pueden tomar cualquier valor especificado en un conjunto finito lista.Este conjunto se indica mediante una lista encerrada entre parntesis de elementos separados por comas. type nivel _ lgico is (alto,bajo,Z);type bit is (0, 1); Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDLTIPOS COMPUESTOSMATRICES: Son una coleccin de elementos del mismo tipo a los que se accede mediante un ndice.Pueden ser de una dimensin de varias dimensiones. Pueden estar definidas para un rango el ndice puede ser libre teniendo la matriz una dimensin terica infinita.Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDLMATRICES:EJEMPLOStype palab is array (31 downto 0) of bit;type transform is array (1 to 4, 1 to 4) of real;type bit_vector is array (natural range ) of bit;

Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDLREGISTROS: Es el equivalente al tipo registro de otros lenguajes.type alumno isrecord nombre: string;curso: integer;end record;Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDLATRIBUTOS: Son condiciones caractersticas que pueden tomar las seales variables.Ing. Julio Gonzalez PradoATRIBUTOSSuponiendo que t es un tipo enumerado, entero, flotante fisico se tienen:tleft : limite izquierdo del tipo ttright : limite derecho del tipo ttlow : limite inferior del tipo tthigh: limite superior del tipo tIng. Julio Gonzalez PradoATRIBUTOSSuponiendo un tipo t, un miembro x de este tipo y un entero N :tpos(x): posicion x dentro del tipo ttval(N): elemento (N) del tipo ttleftof(x): elemento que esta a la izquierda de x en ttrightof(x): elemento que esta a la derecha de x en ttpred(x): elemento que esta delante de x en t.tsucc(x): elemento que esta detrs de x en tIng. Julio Gonzalez PradoATRIBUTOSSi a es un tipo matriz, n elemento de este, N numero entero desde 1 hasta el numero de dimensiones de la matriz:aleft(N): limite izquierdo del rango de dimension N de a.aright(N):limite derecho del rango de dimension N de a.alow(N): limite inferior del rango de dimension N de a.

Ing. Julio Gonzalez PradoATRIBUTOSahigh(N): limite superior del rango de dimension N de a.arange(N): Rango del indice de dimension N de a.alength(N): Longitud del indice de dimension N de a.Ing. Julio Gonzalez PradoATRIBUTOSSuponiendo que s es una seal:sevent: Devuelve V si se ha producido un cambio en la seal s.sstable (tiempo): Devuelve V se la seal estuvo estable durante el ultimo periodo de tiempo.El atributo sevent es util en la definicion del circuitos secuenciales para detectar el flanco de subida o bajada de la seal de reloj. Ing. Julio Gonzalez PradoTERMINOLOGIA ACCIONES CONCURRENTES: son aquellas que se realizan en forma simultanea en un circuito. Un ejemplo son los circuitos combinacionales.ACCIONES SECUENCIALES: son aquellas que se realizan siguiendo una secuencia un orden determinado, no todas en forma simultanea. Un ejemplo de ellas son los procesos que se describen las sentencias de un programa: CASE, IF-ELSE, DO-WHILE, FOR. Ing. Julio Gonzalez PradoTERMINOLOGIAPROCESO (PROCESS): son los dominios que emplea el VHDL para emplear acciones de tipo secuencial.La asignacion de eventos secuenciales dentro de una estructura concurrente se ejecutar de forma concurrente, es decir, al mismo tiempo que las dems sentencias.Ing. Julio Gonzalez PradoSINTAXISMODO: Describe la direccin en la cual la informacin es transmitida a travs del puerto.Puede ser:Modo INModo OUTModo BUFFERModo INOUTIng. Julio Gonzalez PradoSINTAXISMODO IN: Es cuando por el puerto la informacin solo puede entrar a la entidad.Se usa generalmente en relojes, entradas de control (load, reset, enable) y datos de entrada unidireccionales.Ing. Julio Gonzalez PradoSINTAXISMODO OUT: Es cuando la informacin en el puerto fluye hacia fuera de la entidad. Este modo no permite realimentacin, es decir, el compilador no puede leer este dato. Ing. Julio Gonzalez PradoSINTAXISMODO BUFER: Es usado para una realimentacin interna (se usa como un driver dentro de la entidad)Es similar al MODO OUT pero permite realimentacin. No es un puerto BIDIRECCIONAL y solo puede ser conectado directamente a una seal interna a un puerto de modo buffer de otra entidad.Ing. Julio Gonzalez PradoSINTAXISMODO INOUT: Es usado para seales bidireccionales.Permite realimentacin interna.Puede reemplazar a cualquiera de los modos anteriores. Ing. Julio Gonzalez PradoSINTAXISTIPO: Son las diferentes clases de valores que puede tomar la seal.Pueden haber tantos tipos como se quiera, ya que en VHDL se pueden definir por el usuario.Tambin existen los tipos de forma estndar y los creados por libreras normalizadas.La norma internacional IEEE 1076/93 define 4 tipos nativos: BOOLEAN, BIT, BIT_VECTOR, INTEGER.Ing. Julio Gonzalez PradoSINTAXISTIPO BOOLEAN: Pueden tomar valores VERDADERO (TRUE) FALSO (FALSE).Un ejemplo son las salidas de los comparadores.TIPO BIT: Pueden tomar valores 0 (LOW) 1(HIGH).TIPO BIT_VECTOR: Es un vector de bits. TIPO INTEGER: Puede manejar nmeros enteros.

Ing. Julio Gonzalez PradoSINTAXISPosteriormente la norma IEEE 1164 ampli el mbito del bit definiendo un nuevo tipo llamado std_logic, std_ulogic y sus derivados: std_logic_vector, std_ulogic_vector.Ing. Julio Gonzalez PradoSINTAXISARCHIVOS DE CABECERA: Se colocan al inicio de la entidad y permiten al programa cargar diversas libreras y archivos que contienen tipos y definiciones que sern usadas por el programa.library ieee;use ieee.std_logic_1164.all;use work.std_arith.all;Ing. Julio Gonzalez Pradolibrary (biblioteca)Es un lugar al que se tiene acceso para utilizar las unidades de diseo predeterminadas por el fabricante permitiendo agilizar el diseo.En VHDL existen dos bibliotecas: ieee y work.

Ing. Julio Gonzalez Pradolibrary (biblioteca)La biblioteca work permite almacenar los programas que el usuario va generando.Cuando el diseo utiliza algun paquete es necesario llamar a la biblioteca que lo contiene.En el caso de work no se necesita la declaracion library porque la carpeta siempre esta presente al desarrolar el diseo.Ing. Julio Gonzalez Pradolibrary (biblioteca)La biblioteca std_logic_1164 contiene:El paquete numeric_std: define funciones para realizar operaciones entre diferentes tipos de datos que pueden representarse con signo y sin signo.El paquete numeric_bit: define tipos de datos binarios con signo sin signo. El paquete std_arith: define funciones y operadores aritmeticos tales como = > < 57Ing. Julio Gonzalez PradoSINTAXISEl programa en VHDL esta formado de dos partes principales:

Ing. Julio Gonzalez PradoSINTAXISENTIDAD (entity): Es la interfaz del dispositivo con el exterior. Es decir, describe los puertos (ports) que son las entradas y salidas del circuito.

Ing. Julio Gonzalez PradoSINTAXISSu estructura es:entity nomb_ent is[generic (lista de parametros)];ports(lista de puertos);end nomb_ent;Ing. Julio Gonzalez PradoEJEMPLO: Entidad para un comparador de igualdad de dos nmeros de 4 bits. a

b COMPIGUALIng. Julio Gonzalez PradoEJEMPLO: Entidad para un comparador de igualdad de dos nmeros de 4 bits. entity comp is port (a,b: in bit_vector(3 downto 0);igual: out bit);end comp; Ing. Julio Gonzalez PradoSINTAXISARQUITECTURA (architecture): describe la funcionalidad del dispositivo, es decir las transformaciones que se realizaran sobre los datos que ingresan por los puertos para producir la salida.Es decir describe el funcionamiento del dispositivo.Ing. Julio Gonzalez PradoSINTAXISSu estructura es:architecture nomb_arch of nomb_ent is[declaraciones]beginsentencias concurrentes;end nomb_arch;Ing. Julio Gonzalez PradoESTILOS DE ARQUITECTURASon las formas de descripcin que se utilizan dependiendo cada uno de su propio nivel de abstraccin.Ing. Julio Gonzalez PradoESTILO BEHAVIORAL(COMPORTAMIENTO)Este estilo se caracteriza por incluir sentencias y ordenes tpicas de un lenguaje de programacin: when, do-while, if-then.Como estas sentencias son de tipo secuencial se usan en el PROCESO (process).No interesa la estructura interna del dispositivo.Ing. Julio Gonzalez PradoESTILO BEHAVIORALarchitecture ejem1of comp isbeginprocess(a,b)begin if(a=b) thenigual