Se ha denunciado esta presentación.

4.v h d l

694 visualizaciones

Publicado el

Publicado en: Estilo de vida
  • Sé el primero en comentar

4.v h d l

  1. 1. Ing. Julio Gonzalez PradoV H D LSOFTWARE PARADISEÑO DE CIRCUITOSINTEGRADOS
  2. 2. Ing. Julio Gonzalez Prado V H D L:V HSICH ARDWARED ESCRIPTIONL ANGUAGE(LENGUAJE DE DESCRIPCION DEHARDWARE VHSIC)
  3. 3. Ing. Julio Gonzalez Prado VHSIC:V ERYH IGHS PEEDI NTEGRATEDC IRCUITS(CIRCUITOS INTEGRADOS DE MUY ALTAVELOCIDAD)
  4. 4. Ing. Julio Gonzalez Prado Por lo tanto, el lenguaje VHDL es un lenguajeque se usa para describir el hardware decircuito integrados con aplicaciones en altavelocidad.
  5. 5. Ing. Julio Gonzalez Prado Es un lenguaje que tiene elementos del C++y el Pascal que se emplea básicamente pararealizar implementación de circuitos de altavelocidad. Por lo tanto, si el C++ y el Pascal tienenaplicaciones para diferentes aspectos, elVHDL se centra en aplicaciones deimplementación circuital.
  6. 6. Ing. Julio Gonzalez PradoORIGENES El VHDL nació en el año 1981 cuando elDepartamento de Defensa de los EstadosUnidos genera un proyecto denominadoVHSIC para generar circuito integrados dealta velocidad. El VHDL se desarrolla para estandarizar losprocesos de diseño y optimizar el manejo dela información que se genera.
  7. 7. Ing. Julio Gonzalez PradoORIGENES En 1983, IBM, Texas Instruments eIntermetrics desarrollan el lenguaje VHDL La IEEE lo propuso como su estandar en1984, y en 1987 lo adoptó como su lenguajeHDL (mediante el estándar std 1076 – 1987)
  8. 8. Ing. Julio Gonzalez PradoORIGENES Como esta versión demostró algunascarencias relacionadas con la síntesis decircuitos, debido principalmente a laevolución de las herramientas de diseño queusaban el VHDL y la rápida evolución de lastecnologías para implementación de losCircuitos Integrados, se planteó una segundaversión en 1993 (que es la vigente) ,mediante el estándar IEEE std 1076-1993,conocido como VHDL’93.
  9. 9. Ing. Julio Gonzalez PradoORIGENES En esencia la versión de 1987 es unsubconjunto de la versión de 1993, de modoque cualquier programa de la versión antiguapuede ser procesada por la versión masreciente. Una excepción de esta norma es lorelacionado con la declaración y el uso deficheros.
  10. 10. Ing. Julio Gonzalez PradoAMBIENTE DE DESARROLLO El diseño con lenguaje VHDL se basa en elconcepto de DISEÑO CON HERRAMIENTASCAD – EDA.
  11. 11. Ing. Julio Gonzalez PradoAMBIENTE DE DESARROLLO El proceso CAD (Computer Aided Design),diseño asistido por computador es unproceso de diseño que emplea técnicasgraficas de computadora apoyadas enpaquetes de software para ayudar a losdiseñadores.
  12. 12. Ing. Julio Gonzalez PradoAMBIENTE DE DESARROLLO La aplicación de las herramientas CAD en eldiseño de circuitos y sistemas electrónicos esfundamental ya que permite la adición deinterfases graficas y simuladores.
  13. 13. Ing. Julio Gonzalez PradoESCALAS DE INTEGRACION Los procesos de integración implican lacontinua reducción del tamaño de loscomponentes, así como el incremento delnumero de compuertas en cada integrado.
  14. 14. Ing. Julio Gonzalez PradoESCALAS DE INTEGRACION SSI (Small Scale Integrated): menos de 10compuertas por integrado. MSI (Medium Scale Integrated): entre 10 y 99compuertas por integrado. LSI (Large Scale Integrated): entre 100 y9999 compuertas por integrado. VLSI (Very Large Scale Integrated): entre10000 y 99999 compuertas. ULSI (Ultra Large Scale Integrated): 100000compuertas ó mas.
  15. 15. Ing. Julio Gonzalez PradoCARACTERISTICAS DE LAINTEGRACION Mayor numero de dispositivos por IC. Menor numero de componentes/sistemas. Mayor velocidad de calculo. Menor consumo. Mayor esfuerzo en diseño. Mayor costo de fabricación.
  16. 16. Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDL Es un lenguaje concurrente aunque permitedefinir dominios en los cuales las accionesson del tipo secuencial. Permite diseños modulares y jerárquicos, esútil para emplear con la metodología “TopDown”. Permite simular el diseño y generar formasde onda.
  17. 17. Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDL Es un lenguaje que debe ser compilado antesde ser simulado.
  18. 18. Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDL Soporta distintos niveles de descripción: FUNCIONAL: modelamiento en alto nivel. ESTRUCTURAL: la descripción se realizamediante interconexión de componentes. FISICO: se realiza la implementación real delcircuito.
  19. 19. Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDL A partir del modelo se puede sintetizar elHardware a nivel de compuertas conherramientas de síntesis:ALTERA : Max + Plus IICADENCE : SynergyCYPRESS : Warp II, IIIMENTOR GRAPHICS : AutologicSYNOPSYS : Design CompilerVIEWLOGIC : ViewSynthesis
  20. 20. Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDL VHDL no distingue las mayúsculas de lasminúsculas: CASA, casa son iguales. Las variables deben empezar con una letra,no deben contener ni espacios ni símboloscomo &, %, $, #, ¡. Su longitud no estalimitada. No pueden terminar en _ ó _ _
  21. 21. Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDL OBJETO: es un elemento que tiene asignadoun valor de un tipo determinado. Según sea el tipo de dato, el objeto poseeráun conjunto de propiedades y se le podráaplicar un conjunto de operaciones.
  22. 22. Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDL IDENTIFICADORES: Son un conjunto decaracteres dispuestos de una formaadecuada y siguiendo unas normas propiasdel lenguaje, para dar un nombre a loselementos en VHDL.
  23. 23. Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDL Los identificadores deben empezar con uncarácter alfabético, no pudiendo terminar en_ No esta fijada la extensión del identificador,pero no debe ser extremadamente larga. Los identificadores pueden tener caracteresnuméricos (0 al 9) pero estos no debenaparecer en el principio. No puede usarse como identificador unaPALABRA RESERVADA.
  24. 24. Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDL PALABRAS RESERVADAS: Son un conjuntode identificadores que tienen un significadoespecifico en VHDL. Son palabras empleadas dentro del lenguajepara realizar un diseño. No pueden ser empleadas comoidentificadores definidos por el usuario.
  25. 25. Ing. Julio Gonzalez PradoPALABRAS RESERVADASabs acces after alias alland architecture array asser attributebegin block body buffer buscase component configuration constant downtoelse disconnect elsif end entityexit function generate file forgeneric guarded inout if inis label library linkage loopmap mod nand new next
  26. 26. Ing. Julio Gonzalez PradoPALABRAS RESERVADASnor not null of onopen or others out packageport procedure process range recordregister rem report Return selectseverity signal subtype then totransport type units until usevariable walt when while withxor
  27. 27. Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDL SIMBOLOS ESPECIALES: Son símbolos quese usan para representar funcionesdiferentes y especificas. Los símbolos especiales son:+ - / ( ) . , : ; & ‘ < > = | # <= => :=_ _
  28. 28. Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDL NUMEROS: Se considera que cualquiernumero se encuentra en base 10. Se admite notación científica para númerosen coma flotante. Para números en otras bases:2#11000100# 16#C4#
  29. 29. Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDL TIPO DE DATOS: Delimita los valores quepuede tener un objeto y las operaciones quese pueden realizar con él.
  30. 30. Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDL TIPOS ESCALARES: Son tipos quecontienen algún tipo de magnitud. Pueden ser: Enteros, Reales, Físicos yEnumerados.
  31. 31. Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDL ENTEROS: Son datos cuyo contenidoconstituye un valor numérico entero. Se definen por la palabra reservada rangeque indica que esta comprendido entre uncierto intervalo especificando sus limites. Ejemplo: type byte is range 0 to 255;type index is range 7 downto 0;type integer is range -2147483648 to2147483647;
  32. 32. Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDL REALES: 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;
  33. 33. Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDL FISICOS: Son datos que se correspondencon magnitudes físicas, es decir, tienen valory unidades. type long is range 0 to 1,0e9unitsum;mm=1000um;m=1000mm;end units;
  34. 34. Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDL ENUMERADOS: Son datos que puedentomar cualquier valor especificado en unconjunto finito ó lista. Este conjunto se indica mediante una listaencerrada entre paréntesis de elementosseparados por comas. type nivel _ lógico is (alto,bajo,Z);type bit is (‘0’, ‘1’);
  35. 35. Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDL TIPOS COMPUESTOS MATRICES: Son una colección de elementosdel mismo tipo a los que se accede medianteun índice. Pueden ser de una dimensión ó de variasdimensiones. Pueden estar definidas para un rango ó elíndice puede ser libre teniendo la matriz unadimensión teórica infinita.
  36. 36. Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDL MATRICES: EJEMPLOS type 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 <>) ofbit;
  37. 37. Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDL REGISTROS: Es el equivalente al tiporegistro de otros lenguajes. type alumno isrecordnombre: string;curso: integer;end record;
  38. 38. Ing. Julio Gonzalez PradoCARACTERISTICAS DEL VHDL ATRIBUTOS: Son condiciones ócaracterísticas que pueden tomar las señalesó variables.
  39. 39. Ing. Julio Gonzalez PradoATRIBUTOS Suponiendo que “t” es un tipo enumerado,entero, flotante ó fisico se tienen: t’left : limite izquierdo del tipo “t” t’right : limite derecho del tipo “t” t’low : limite inferior del tipo “t” t’high: limite superior del tipo “t”
  40. 40. Ing. Julio Gonzalez PradoATRIBUTOS Suponiendo un tipo “t”, un miembro “x” de este tipo yun entero “N” : t’pos(x): posicion “x” dentro del tipo “t” t’val(N): elemento (N) del tipo “t” t’leftof(x): elemento que esta a la izquierda de “x” en“t” t’rightof(x): elemento que esta a la derecha de “x” en“t” t’pred(x): elemento que esta delante de “x” en “t”. t’succ(x): elemento que esta detrás de “x” en “t”
  41. 41. Ing. Julio Gonzalez PradoATRIBUTOS Si “a” es un tipo matriz, “n” elemento de este,“N” numero entero desde 1 hasta el numerode dimensiones de la matriz: a’left(N): limite izquierdo del rango dedimension N de a. a’right(N):limite derecho del rango dedimension N de a. a’low(N): limite inferior del rango dedimension N de a.
  42. 42. Ing. Julio Gonzalez PradoATRIBUTOS a’high(N): limite superior del rango dedimension N de a. a’range(N): Rango del indice de dimension Nde a. a’length(N): Longitud del indice de dimensionN de a.
  43. 43. Ing. Julio Gonzalez PradoATRIBUTOS Suponiendo que “s” es una señal: s’event: Devuelve “V” si se ha producido uncambio en la señal “s”. s’stable (tiempo): Devuelve V se la señalestuvo estable durante el ultimo periodo de“tiempo”. El atributo s’event es util en la definicion delcircuitos secuenciales para detectar el flancode subida o bajada de la señal de reloj.
  44. 44. Ing. Julio Gonzalez PradoTERMINOLOGIA ACCIONES CONCURRENTES: son aquellasque se realizan en forma simultanea en uncircuito. Un ejemplo son los circuitoscombinacionales. ACCIONES SECUENCIALES: son aquellasque se realizan siguiendo una secuencia ó unorden determinado, no todas en formasimultanea. Un ejemplo de ellas son losprocesos que se describen las sentencias deun programa: CASE, IF-ELSE, DO-WHILE,FOR.
  45. 45. Ing. Julio Gonzalez PradoTERMINOLOGIA PROCESO (PROCESS): son los dominiosque emplea el VHDL para emplear accionesde tipo secuencial.La asignacion de eventos secuencialesdentro de una estructura concurrente seejecutará de forma concurrente, es decir, almismo tiempo que las demás sentencias.
  46. 46. Ing. Julio Gonzalez PradoSINTAXIS MODO: Describe la dirección en la cual lainformación es transmitida a través delpuerto. Puede ser: Modo INModo OUTModo BUFFERModo INOUT
  47. 47. Ing. Julio Gonzalez PradoSINTAXIS MODO IN: Es cuando por el puerto lainformación solo puede entrar a la entidad. Se usa generalmente en relojes, entradas decontrol (load, reset, enable) y datos deentrada unidireccionales.
  48. 48. Ing. Julio Gonzalez PradoSINTAXIS MODO OUT: Es cuando la información en elpuerto fluye hacia fuera de la entidad. Este modo no permite realimentación, esdecir, el compilador no puede leer este dato.
  49. 49. Ing. Julio Gonzalez PradoSINTAXIS MODO BUFER: Es usado para unarealimentación interna (se usa como un driverdentro de la entidad) Es similar al MODO OUT pero permiterealimentación. No es un puerto BIDIRECCIONAL y solopuede ser conectado directamente a unaseñal interna ó a un puerto de modo buffer deotra entidad.
  50. 50. Ing. Julio Gonzalez PradoSINTAXIS MODO INOUT: Es usado para señalesbidireccionales. Permite realimentación interna. Puede reemplazar a cualquiera de los modosanteriores.
  51. 51. Ing. Julio Gonzalez PradoSINTAXIS TIPO: Son las diferentes clases de valoresque puede tomar la señal. Pueden haber tantos tipos como se quiera,ya que en VHDL se pueden definir por elusuario. También existen los tipos de forma estándary los creados por librerías normalizadas. La norma internacional IEEE 1076/93 define4 tipos nativos: BOOLEAN, BIT,BIT_VECTOR, INTEGER.
  52. 52. Ing. Julio Gonzalez PradoSINTAXIS TIPO BOOLEAN: Pueden tomar valoresVERDADERO (TRUE) ó FALSO (FALSE). Un ejemplo son las salidas de loscomparadores. TIPO BIT: Pueden tomar valores 0 (LOW) ó1(HIGH). TIPO BIT_VECTOR: Es un vector de bits. TIPO INTEGER: Puede manejar númerosenteros.
  53. 53. Ing. Julio Gonzalez PradoSINTAXIS Posteriormente la norma IEEE 1164 amplió elámbito del bit definiendo un nuevo tipollamado std_logic, std_ulogic y sus derivados:std_logic_vector, std_ulogic_vector.
  54. 54. Ing. Julio Gonzalez PradoSINTAXIS ARCHIVOS DE CABECERA: Se colocan alinicio de la entidad y permiten al programacargar diversas librerías y archivos quecontienen tipos y definiciones que seránusadas por el programa. library ieee; use ieee.std_logic_1164.all; use work.std_arith.all;
  55. 55. Ing. Julio Gonzalez Pradolibrary (biblioteca) Es un lugar al que se tiene acceso parautilizar las unidades de diseñopredeterminadas por el fabricantepermitiendo agilizar el diseño. En VHDL existen dos bibliotecas: ieee ywork.
  56. 56. Ing. Julio Gonzalez Pradolibrary (biblioteca) La biblioteca work permite almacenar losprogramas que el usuario va generando. Cuando el diseño utiliza algun paquete esnecesario llamar a la biblioteca que locontiene. En el caso de work no se necesita ladeclaracion library porque la carpeta siempreesta presente al desarrolar el diseño.
  57. 57. Ing. Julio Gonzalez Pradolibrary (biblioteca) La biblioteca std_logic_1164 contiene: El paquete numeric_std: define funcionespara realizar operaciones entre diferentestipos de datos que pueden representarse consigno y sin signo. El paquete numeric_bit: define tipos de datosbinarios con signo ó sin signo. El paquete std_arith: define funciones yoperadores aritmeticos tales como = > <
  58. 58. Ing. Julio Gonzalez PradoSINTAXIS El programa en VHDL esta formado de dospartes principales:
  59. 59. Ing. Julio Gonzalez PradoSINTAXIS ENTIDAD (entity): Es la interfaz deldispositivo con el exterior.Es decir, describe los puertos (ports) que sonlas entradas y salidas del circuito.
  60. 60. Ing. Julio Gonzalez PradoSINTAXISSu estructura es:entity nomb_ent is[generic (lista de parametros)];ports(lista de puertos);end nomb_ent;
  61. 61. Ing. Julio Gonzalez PradoEJEMPLO:Entidad para un comparador de igualdad de dosnúmeros de 4 bits.abCOMP IGUAL
  62. 62. Ing. Julio Gonzalez PradoEJEMPLO:Entidad para un comparador de igualdad de dosnúmeros de 4 bits.entity comp is port (a,b: in bit_vector(3 downto 0);igual: out bit);end comp;
  63. 63. Ing. Julio Gonzalez PradoSINTAXIS ARQUITECTURA (architecture): describe lafuncionalidad del dispositivo, es decir lastransformaciones que se realizaran sobre losdatos que ingresan por los puertos paraproducir la salida.Es decir describe el funcionamiento deldispositivo.
  64. 64. Ing. Julio Gonzalez PradoSINTAXIS Su estructura es:architecture nomb_arch of nomb_ent is[declaraciones]beginsentencias concurrentes;end nomb_arch;
  65. 65. Ing. Julio Gonzalez PradoESTILOS DE ARQUITECTURA Son las formas de descripción que se utilizandependiendo cada uno de su propio nivel deabstracción.
  66. 66. Ing. Julio Gonzalez PradoESTILO BEHAVIORAL(COMPORTAMIENTO) Este estilo se caracteriza por incluirsentencias y ordenes típicas de un lenguajede programación: when, do-while, if-then. Como estas sentencias son de tiposecuencial se usan en el PROCESO(process). No interesa la estructura interna deldispositivo.
  67. 67. Ing. Julio Gonzalez PradoESTILO BEHAVIORALarchitecture ejem1of comp isbeginprocess(a,b)beginif(a=b) then igual <= ‘1’;else igual <= ‘0’;end if;end process;end ejem1;
  68. 68. Ing. Julio Gonzalez PradoESTILO DATAFLOW(FLUJO DE DATOS) Describe como la información serátransmitida usando señales a través deldispositivo de modo que realice el trayectoentre entrada y salida SIN USO DEASIGNACIONES SECUENCIALES. En este estilo no se pueden usar procesos.
  69. 69. Ing. Julio Gonzalez PradoDIAGRAMA CIRCUITALIGUALU4B(3)A(3)B(2)A(2)B(1)A(1)B(0)A(0)U3U2U1U0
  70. 70. Ing. Julio Gonzalez PradoESTILO DATAFLOWarchitecture ejem2 of comp isbeginigual <= (a(0) xnor b(0))and (a(1) xnor b(1))and (a(2) xnor b(2))and (a(3) xnor b(3));end ejem2;
  71. 71. Ing. Julio Gonzalez PradoESTILO STRUCTURAL(ESTRUCTURAL) Describe detalladamente como se conectan yevalúan los componentes con señales. Es el estilo mas difícil de usar ya que detallalas conexiones y es una forma de descripcióncircuital del dispositivo.
  72. 72. Ing. Julio Gonzalez PradoESTILO STRUCTURAL(ESTRUCTURAL) Su utilidad se presenta cuando se deseacrear una estructura grande y deseamosdescomponerla en partes para manejarlamejor y hacer una simulación de cada parte. Suele requerir el uso de señales auxiliares,paquetes y librerías de accesorios se debendeclarar al comienzo de la entidad.
  73. 73. Ing. Julio Gonzalez PradoESTILO STRUCTURALarchitecture ejem3 of comp issignal x: bit_vector(0 to 3);beginu0: xnor2 port map(a(0),b(0),x(0));u1: xnor2 port map(a(1),b(1),x(1));u2: xnor2 port map(a(2),b(2),x(2));u3: xnor2 port map(a(3),b(3),x(3));u4: and4 port map(x(0),x(1),x(2),x(3),igual);end ejem3;
  74. 74. Ing. Julio Gonzalez PradoCONSTANTES Son elementos que se inicializan en undeterminado valor y que no puede sercambiado una vez inicializado. Ejemplos: constant pi: real := 3.14;constant delay: time := 20 s;
  75. 75. Ing. Julio Gonzalez PradoVARIABLES Son elementos cuyo valor puede serasignado en cualquier instante y también conun valor inicial. Ejemplos: variable alfa:natural:= 1;
  76. 76. Ing. Julio Gonzalez PradoSEÑALES Son elementos que se declaran igual que lasvariables y las constantes. Se diferencian de las variables en queguardan un valor y lo pueden hacer visible enel momento adecuado. O sea puede como un elemento que tienedos partes: la parte donde se escribe el datoy la parte donde se lee.
  77. 77. Ing. Julio Gonzalez PradoSEÑALES Pueden ser de tres tipos: NORMAL: no se pueden desconectar; BUS: tiene un valor por defecto cuando estándesconectadas; REGISTER: no tienen un valor por defectopero conservan el ultimo valor que seescribió.
  78. 78. Ing. Julio Gonzalez PradoSIGNIFICADO FISICO Las VARIABLES son elementos abstractos,es decir, solo tiene significado para ellenguaje. Las SEÑALES tienen significado físico:representan las conexiones entre elementosdel circuito.
  79. 79. Ing. Julio Gonzalez PradoDIFERENCIA La diferencia principal es que una asignacióna una variable se realiza en formaINMEDIATA, o sea toma el valor que se leasigna en el momento de la asignación. En cambio una señal no recibe el valor quese le ha asignado HASTA EL SIGUIENTEPASO DE SIMULACION.
  80. 80. Ing. Julio Gonzalez PradoSENTENCIA PROCESS Es una instrucción típica de VHDL, se usa enel estilo BEHAVIORAL. Es la forma que tiene el VHDL para incluir lassentencias secuenciales. Para el compilador, todo el PROCESS seconsidera solo un paso de simulación. LISTA SENSIBLE: es la relación de lasseñales que deben cambiar para que seejecute el process.
  81. 81. Ing. Julio Gonzalez PradoPROCESS Sintaxis:[etiqueta] process (lista sensible)[zona de declaración]beginsentencias secuenciales;end process [etiqueta];
  82. 82. Ing. Julio Gonzalez PradoFORMA 1:process (lista sensible)beginsentencias secuenciales;end process;Se continua ejecutando el process mientrasalguna e las señales de la lista sensiblecontinúe cambiando.Al llegar a end se suspende el proceso y serealiza la asignacion de señal.
  83. 83. Ing. Julio Gonzalez PradoFORMA 2:processbeginsentencias secuenciales;wait;sentencias secuenciales;wait;sentencias secuenciales;end process;
  84. 84. Ing. Julio Gonzalez PradoFORMA 2: No tiene lista sensible. Usa la palabra wait. Tiene la forma de lazo infinito. El proceso se suspende cada vez que seencuentra un wait, para realizar la asignacióna señal.
  85. 85. Ing. Julio Gonzalez PradoSENTENCIA WAIT Suspende el proceso y realiza lasasignaciones respectivas a las señales. Sintaxis:wait on (señales);wait until (condición);wait for (tiempo);
  86. 86. Ing. Julio Gonzalez PradoSENTENCIA IF Se usa con then – else ejecutar un conjuntode sentencias según la evaluación de unacondición ó conjunto de condiciones, cuyoresultado puede ser verdadero ó falso.
  87. 87. Ing. Julio Gonzalez PradoSENTENCIA IF Sintaxis:If (condición) thensentencia 1;elsesentencia 2;end if;
  88. 88. Ing. Julio Gonzalez PradoSENTENCIA IF Si la condición es VERDADERA, se ejecutala sentencia 1. Si la condición es FALSA, se ejecuta lasentencia 2.
  89. 89. Ing. Julio Gonzalez PradoELSIF Es una extensión de la sentencia if-then quepermite incluir una segunda condición Sintaxis:If (condicion1) then sentencia 1;elsif (condicion2) then sentencia 2;else sentencia 3;end if;
  90. 90. Ing. Julio Gonzalez PradoELSIF Funcionamiento:Si condición 1 es verdadera, se ejecuta lasentencia 1,Si la condición 1 es falsa, se evalúa la condición2,Si la condición 2 es verdadera, se ejecuta lasentencia 2,Si la condición 2 es falsa, se ejecuta lasentencia 3.
  91. 91. Ing. Julio Gonzalez PradoELSIF(EJEMPLO)process (e,s)beginif (e = ‘0’) then c <= ‘0’;elsif (s = ‘0’) then c <= a;else c <= b;end if;
  92. 92. Ing. Julio Gonzalez PradoSENTENCIA CASE Es una sentencia que permite ejecutar unconjunto de opciones de acuerdo a la señalde selección. Sintaxis:case (señal a evaluar) iswhen (valor1) => accion_1;when (valor2) => accion_2;when (valor n) => accion_n;end case;
  93. 93. Ing. Julio Gonzalez PradoSENTENCIA CASE Funcionamiento: Si “señal a evaluar” toma “valor 1”, se ejecuta“accion_1”, pasando luego el programa a lalinea siguiente de “end”, continuando luego elprograma. Si “señal a evaluar” toma “valor 2”, se ejecuta“accion_2” y así sucesivamente.
  94. 94. Ing. Julio Gonzalez PradoCASE(EJEMPLO)case control iswhen “00” => d <= a;when “01” => d <= b;when “10” => d <= c;when others => d <= ‘0’;end case;
  95. 95. Ing. Julio Gonzalez PradoSENTENCIA LOOP Se usa para ejecutar un grupo de sentenciasun numero determinado de veces. Consiste en un ciclo for ó un ciclo while. La sentencia for ejecuta un numeroespecifico de iteraciones basado en el valorde una variable. La sentencia while continuará ejecutandouna operación mientras una condición decontrol local sea cierta.
  96. 96. Ing. Julio Gonzalez PradoEJEMPLO 1process(a)beginciclo1: for i in 7 downto 0loopentrada(i) <= ‘1’end loop;end process;
  97. 97. Ing. Julio Gonzalez PradoEJEMPLO 2process (a)variable i: integer := 0;beginciclo2: while i < 7 loopentrada (i) <= ‘0’;i = i + 1;end loop;end process;
  98. 98. Ing. Julio Gonzalez PradoSENTENCIA EXIT Se usa dentro del loop y permite salir del lazosi se alcanza una condición fijada pornosotros. Su verdadera utilidad se encuentra si sediseña controladores de memoria.
  99. 99. Ing. Julio Gonzalez PradoEJEMPLOprocess (a)beginciclo1:for i in 7 downto 0loopif a’length < i then exit ciclo1;entrada(i) <= ‘0’;end if;end loop;end process;
  100. 100. Ing. Julio Gonzalez PradoSENTENCIA NEXT Se encuentra también dentro de un ciclo loopy sirve para saltarnos una ó más de lasejecuciones programadas.
  101. 101. Ing. Julio Gonzalez PradoEJEMPLOprocess (a)beginciclo1: for i in 7 downto 0loopif i=4 then next;elseentrada (i) <= ‘1’,end if;end loop;end process;
  102. 102. Ing. Julio Gonzalez PradoSENTENCIA NULL Se utiliza para que dada una condiciónespecial no pase nada, es decir, que ningunaseñal ó variable cambie y que el programasiga su curso habitual. Su comportamientodentro de un loop es similar al de lasentencia next.

×