SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
Cap.1 – Introducción   1.6 Flujo de diseño con VHDL




           Capítulo 1. Introducción
        1.6 Flujo de diseño con VHDL
Cap.1 – Introducción            1.6 Flujo de diseño con VHDL



¿ Cuál es la primera fase del diseño de un sistema
¿ Cuál es la primera fase del diseño de un sistema
digital utilizando SPLD’s, CPLD’s y/o FPGA’s ?
digital utilizando SPLD’s, CPLD’s y/o FPGA’s ?



    Descripción del Diseño
    Descripción del Diseño



            Métodos
                                             Limitación: Difícil o imposible la
Captura Esquemática (p.ej. OrCAD)
                                             manipulación de diseños complejos.
Descripción con un Lenguaje (HDL)


                                               De Bajo Nivel:      PALASM
                                                                   OPAL
                                                                   PLPL
                                               De Alto Nivel:      Handel C
                                                                   System C
                                                                   Verilog
                                                                   VHDL
Cap.1 – Introducción           1.6 Flujo de diseño con VHDL


            ¿ Cuál es la primera fase del diseño de un sistema
            ¿ Cuál es la primera fase del diseño de un sistema
            digital utilizando SPLD’s, CPLD’s y/o FPGA’s ?
            digital utilizando SPLD’s, CPLD’s y/o FPGA’s ?



        Descripción del Diseño
        Descripción del Diseño


                 Simulación
                                              Verifica que realiza la función para
          Funcional
                                              la cual fue diseñado.
          Digital (Timing Simulation)

                                              Verifica que los tiempos en la
             Programación
             Programación                     propagación del circuito no afecten
                                              la funcionalidad del sistema.

        Verificación del diseño
        Verificación del diseño


                   FIN
                   FIN
Cap.1 – Introducción         1.6 Flujo de diseño con VHDL


                          IDEA                                  SINTESIS
                                                                SINTESIS

                       DESCRIPCIÓN
                       DESCRIPCIÓN                              ANALISIS
                                                                ANALISIS
                       DEL CIRCUITO
                       DEL CIRCUITO                            TEMPORAL
                                                               TEMPORAL

                SIMULACION FUNCIONAL
                SIMULACION FUNCIONAL                                       NO
                                                             ¿FUNCIONA?
                                                             ¿FUNCIONA?

                   NO ¿FUNCIONA? SI
                      ¿FUNCIONA?                                    SI
                                                            PROGRAMACION
                                                            PROGRAMACION
                                                            DEL DISPOSITIVO
                                                            DEL DISPOSITIVO
    NO

¿FUNCIONA?                    PRUEBAS
                              PRUEBAS                        ELABORACION
                                                             ELABORACION
¿FUNCIONA?
                             AL DISEÑO
                             AL DISEÑO                      DEL PROTOTIPO
                                                            DEL PROTOTIPO

      SI
    FIN
     FIN
DEL PROCESO
DEL PROCESO
 DE DISEÑO
 DE DISEÑO
Cap.1 – Introducción                1.6 Flujo de diseño con VHDL                    Descripción del diseño




                                Elementos sintácticos del VHDL
Comentarios            Se consideran comentarios después de dos guiones medios seguidos “--”.

Símbolos especiales    Existen caracteres especiales sencillos como (&, #, +, *, =) o dobles como ( :=, <=).

Identificadores        Es lo que se usa para dar nombre a los diferentes objetos del lenguaje.

Números                Se considera que se encuentra en base 10, se admite la notación científica convencional
                       es posible definir números en otras bases utilizando el símbolo # : 2#11000100#

Caracteres            Es cualquier letra o carácter entre comillas simples: ‘3’, ‘t’

Cadenas               Son un conjunto de caracteres englobados por comillas dobles: “hola”

Cadenas de bits       Los tipos bit y bit_vector son en realidad tipo carácter y arreglo de caracteres
                      respectivamente, se coloca un prefijo para indicar la base : O”126”, X”FE”

Palabras reservadas   Son las instrucciones, órdenes y elementos que permiten definir sentencias.
Cap.1 – Introducción          1.6 Flujo de diseño con VHDL         Descripción del diseño


                                                Identificadores
                      Nombres o etiquetas que se usan para referir: Variables,
                      Constantes, Señales, Procesos, Entidades, etc.
                      Están formados por números, letras (mayúsculas o minúsculas) y
                      guión bajo “_” con las reglas especificadas en la tabla siguiente.
                      Longitud (Número de Caracteres): Sin restricciones
                      Palabras reservadas por VHDL no pueden ser identificadores
                      En VHDL, un identificador en mayúsculas es igual a su contraparte
                      en minúsculas



              Reglas para especificar un identificador                Incorrecto   Correcto
Primer carácter debe ser siempre una letra mayúscula o minúscula 4Suma             Suma4
Segundo carácter no puede ser un guión bajo ( _ )                     S_4bits      S4_bits
Dos guiones bajos no son permitidos                                   Resta__4     Resta_4_
Un identificador no puede utilizar símbolos especiales                Clear#8      Clear_8
Cap.1 – Introducción            1.6 Flujo de diseño con VHDL   Descripción del diseño


                       Lista de palabras reservadas en VHDL
Cap.1 – Introducción            1.6 Flujo de diseño con VHDL   Estructura básica




                       Estructura Básica de un Programa VHDL
                       Estructura Básica de un Programa VHDL


                              Declaración de Entidad
                              Declaración de Entidad
                                     (entity)
                                     (entity)
                                      Unidad Primaria
                                      Unidad Primaria


                                    Arquitectura
                                    Arquitectura
                                   (architecture)
                                   (architecture)
                                   Unidad Secundaria
                                   Unidad Secundaria
Cap.1 – Introducción             1.6 Flujo de diseño con VHDL            Entidad - ¿Qué es?

entidad (entity)
entidad (entity)     Bloque elemental de diseño
                     Bloque elemental de diseño

     Circuitos elementales digitales que forman de manera
     Circuitos elementales digitales que forman de manera
     individual o en conjunto un sistema digital
     individual o en conjunto un sistema digital

             Ejemplos: Compuertas, Flip-Flops, Sumadores/Restadores, Multiplexores,
             Ejemplos: Compuertas, Flip-Flops, Sumadores/Restadores, Multiplexores,
             Contadores, Multiplicadores, ALUs, Neurona-Digital, etc.
             Contadores, Multiplicadores, ALUs, Neurona-Digital, etc.


                             Ejemplo-1: Sumador
                             Ejemplo-1: Sumador

                                 Cin
                                            Entidad               Cout
    Puertos de Entrada           A                                       Puertos de Salida
                                            Sumador               SUMA
                                 B

       Declaración de una entidad Consiste en la descripción de los puertos de
       Declaración de una entidad         Consiste en la descripción de los puertos de
     entrada o salida de un circuito, el cual es identificado como una entidad (entity)
     entrada o salida de un circuito, el cual es identificado como una entidad (entity)


                                      ¡Importante!
                                      ¡Importante!
 No se describe cómo será realizado o implementado el circuito, es decir, su Arquitectura
 No se describe cómo será realizado o implementado el circuito, es decir, su Arquitectura
Cap.1 – Introducción                   1.6 Flujo de diseño con VHDL Entidad – Descripción de un Puerto




                                Descripción de un Puerto



  Nombre                                     Modo                                          Tipo de Dato
                                                                             Conjuntos de Valores que se les ha asignado un nombre
Identificador              in = Entrada                                      de tal forma que un objeto de un determinado Tipo
                                                                             pueda tomar cualquier valor dentro del conjunto de
                           out = Salida                                      valores que define al Tipo especificado.

                                                                                                              Valores de ‘0’ o ‘1’
                                          Más tipos                          bit (pkg.standard)               Lógico
                            Se irán introduciendo conforme avance el curso
                                                                                                              Conjunto de bits
                                                                             bit_vector                       que representa a un
                                                                             (pkg.standard)                   grupo de señales de
                                                                                                              ent. o sal.
                                                                                                              Valores ‘U’, ‘X’,
                                                                             std_logic                        ‘0’, ‘1’, ‘Z’, ‘W’,
                                                                             (pkg.std_logic_1164)             ‘L’, ‘H’, ‘-’


                                                                                                              Arreglos de
                                                                             std_logic_vector                 std_logic
                                                                             (pkg.std_logic_1164)

                                                                                              Más tipos
                                                                               Se irán introduciendo conforme avance el curso
Cap.1 – Introducción                        1.6 Flujo de diseño con VHDL                                 Entidad – Ejemplo 1


  Ejemplo-1 Sumador
                                              Cin
                                                                  Entidad                        Cout
        Puertos de Entrada                    A                                                                Puertos de Salida
                                                                  circuito                      SUMA
                                              B

                                           (entity) Inicia declaración de la entidad


            (--) Indica Comentario                                    Identificador de la entidad
                                                                                                              Nombres de los puertos


        Línea                      Sumador-completo de dos datos con longitudes de 1-bit
         N°.                                   (Declaración de Entidad)
           1         --Declaración de la entidad de un circuito sumador                                        Modo de Operación
           2         entity sumador is
                                                                                                                Tipo de Dato
           3              port (A, B, Cin: in bit;
           4                   SUMA, Cout: out bit);
           5         end sumador;

                                                                                       (;) Finaliza declaración o subdeclaración
(end) Finaliza declaración de la entidad
Cap.1 – Introducción                  1.6 Flujo de diseño con VHDL       Entidad – Ejemplo 2


Ejemplo-2           a3
                    b3
                    a2
                    b2                                                  F
                    a1
                    b1
                    a0
                    b0


  Línea                    Detector – Uso de dos datos con longitudes de 4-bit
   N°.                                 (Declaración de Entidad)
    1       --Declaracion de la entidad
    2       entity circuito is
    3            port (a3, b3, a2, b2, a1, b1, a0, b0: in bit;
    4                     F: out bit);
    5       end circuito;
Cap.1 – Introducción                  1.6 Flujo de diseño con VHDL       Entidad – Ejemplo 3 (Vectores)


Ejemplo-3           a3
                    b3
                    a2
                    b2                                                  F
                    a1
                    b1
                    a0
                    b0


  Línea                    Detector – Uso de dos datos con longitudes de 4-bit
   N°.                        (Declaración de Entidad – Uso de Vectores)
   1        --Declaracion de la entidad
   2        entity circuito is
   3             port (a, b: in bit_vector (3 downto 0);
   4                      F: out bit);
   5        end circuito;
Cap.1 – Introducción                        1.6 Flujo de diseño con VHDL        Entidad - Uso de biblioteca




Para llamar un paquete es necesario llamar a la “librería”/biblioteca que lo contiene
Para llamar un paquete es necesario llamar a la “librería”/biblioteca que lo contiene
                            (donde ha sido compilado)
                            (donde ha sido compilado)


             Sintaxis: use nombre_librería.nombre_paquete.all;
             Sintaxis: use nombre_librería.nombre_paquete.all;


                        Ejemplo: use ieee.std_logic_1164.all;
                        Ejemplo: use ieee.std_logic_1164.all;



                                                                               Permite el uso de todos los componentes
               Uso del paquete std_logic_1164
                                                                               almacenados en el paquete
               incluido en la biblioteca ieee
Cap.1 – Introducción           1.6 Flujo de diseño con VHDL          Arquitectura - ¿Qué es?


arquitectura (architecture)
arquitectura (architecture)
Unidad de Diseño Secundaria que describe el comportamiento interno de una entidad.
Unidad de Diseño Secundaria que describe el comportamiento interno de una entidad.


       ¿Cómo? - A través de la descripción de varios procedimientos que permitan que la
       ¿Cómo? - A través de la descripción de varios procedimientos que permitan que la
       entidad (entity) cumpla con las condiciones de operación o comportamiento deseadas.
       entidad (entity) cumpla con las condiciones de operación o comportamiento deseadas.

                                                                            Estilo de descripción o
                                                                            Estilo de descripción o
              Niveles de Descripción utilizados
              Niveles de Descripción utilizados                                  Modelización
                                                                                 Modelización

                         Nivel Algoritmo
                         Nivel Algoritmo                                         Funcional
                                                                                 Funcional


                         Nivel de Transferencia entre Registros (RTL)
                         Nivel de Transferencia entre Registros (RTL)
                                                                                 Flujo de Datos
                                                                                 Flujo de Datos
                         Nivel Lógico
                         Nivel Lógico


                         Nivel Compuerta
                         Nivel Compuerta                                         Estructural
                                                                                 Estructural

                         Nivel Transistor (Topología / Layout)
Cap.1 – Introducción           1.6 Flujo de diseño con VHDL     Layout


                       Nivel Transistor (Topología // Layout)
                       Nivel Transistor (Topología Layout)
Cap.1 – Introducción           1.6 Flujo de diseño con VHDL       Descripción - Estructural


Ejemplo-4a


 a
                  f1         Línea         Arquitectura - Compuerta OR de dos entradas
 b                            Nº
                               1      --Ejemplo de una descripción estructural
                               2      library ieee;
  a        b       f1
                               3      use ieee.std_logic_1164.all;
  0        0       0
                               4      entity compuerta_or is
  0        1       1           5            port (a,b: in std_logic;
  1        0       1           6                  f1: out std_logic);
  1        1       1           7      end compuerta_or;
                               8      architecture estructural of compuerta_or is
                               9      begin
                              10      U1: ENTITY or2 PORT MAP (e1=>ax, e2=>bx, y=>sal);
                              11      --U2: ENTITY or2 PORT MAP (ax, bx, sal);

                              12      end estructural;
Cap.1 – Introducción     1.6 Flujo de diseño con VHDL     Descripción - Flujo de datos


Ejemplo-4b                   Línea     Arquitectura - Compuerta OR de dos entradas
                              Nº
                               1      --Ejemplo de una descripción abstracta (funcional)
 a
                  f1           2      library ieee;
 b                             3      use ieee.std_logic_1164.all;
                               4      entity compuerta_or is
                               5            port (a,b: in std_logic;
  a        b       f1
                               6                  f1: out std_logic);
  0        0       0           7      end compuerta_or;
  0        1       1           8      architecture flujo_datos of compuerta_or is
  1        0       1           9      begin
  1        1       1          10                  f1 <= (a) OR (b);
                              11      end flujo_datos;
                              12
                              13
                              14
                              15
                              16
                              17
Cap.1 – Introducción     1.6 Flujo de diseño con VHDL         Descripción - Funcional


Ejemplo-4c                   Línea     Arquitectura - Compuerta OR de dos entradas
                              Nº
                               1      --Ejemplo de una descripción abstracta (funcional)
 a
                  f1           2      library ieee;
 b                             3      use ieee.std_logic_1164.all;
                               4      entity compuerta_or is
                               5            port (a,b: in std_logic;
  a        b       f1
                               6                   f1: out std_logic);
  0        0       0           7      end compuerta_or;
  0        1       1           8      architecture funcional of compuerta_or is
  1        0       1           9      begin
  1        1       1          10      process (a,b) begin
                              11            if (a = ‘0’ and b=‘0’) then
                              12                   f1 <= ‘0’;
                              13            else
                              14                   f1 <= ‘1’;
                              15            end if;
                              16      end process;
                              17      end funcional;
Cap.1 – Introducción           1.6 Flujo de diseño con VHDL       Arquitectura. Ejemplo 5



      Ejemplo-5
      Ejemplo-5

                                                       ENTRADA SALIDA
      a           salida                                c       salida
      b                                                 0        b
          c
                                                        1        a



                           ENTRADAS         SALIDA
                           c   b       a      salida
                           0    0       0      0
                           0       0   1       0
                           0       1   0       1
                           0   1       1       1
                           1   0       0       0
                           1   0       1       1
                           1   1       0       0
                           1   1       1      1

Más contenido relacionado

Similar a (Digital) flujo de diseño y conceptos basicos

Unidad 4 lenguaje hdl pe ISC
Unidad 4 lenguaje hdl pe ISCUnidad 4 lenguaje hdl pe ISC
Unidad 4 lenguaje hdl pe ISCJhonatan Pat
 
Unidad 4 lenguaje hdl pe RUBI
Unidad 4 lenguaje hdl pe RUBIUnidad 4 lenguaje hdl pe RUBI
Unidad 4 lenguaje hdl pe RUBIJhonatan Pat
 
Unidad 4 lenguaje hdl ISC J3 - A JP
Unidad 4 lenguaje hdl ISC J3 - A JPUnidad 4 lenguaje hdl ISC J3 - A JP
Unidad 4 lenguaje hdl ISC J3 - A JPJhonatan Pat
 
Electrónica digital: Lógica programable VHDL
Electrónica digital: Lógica programable VHDL Electrónica digital: Lógica programable VHDL
Electrónica digital: Lógica programable VHDL SANTIAGO PABLO ALBERTO
 
Conceptos basicos de_vhdl
Conceptos basicos de_vhdlConceptos basicos de_vhdl
Conceptos basicos de_vhdlAngie Cardenas
 
Paradigmas de programacion de computadoras FP.pptx
Paradigmas de programacion de computadoras FP.pptxParadigmas de programacion de computadoras FP.pptx
Paradigmas de programacion de computadoras FP.pptxsantiagojoseu4
 
Introduccion a los automatas.pdf
Introduccion a los automatas.pdfIntroduccion a los automatas.pdf
Introduccion a los automatas.pdfssuser78fe50
 
Introducción a la Programación Orientada a Aspectos
Introducción a la Programación Orientada a AspectosIntroducción a la Programación Orientada a Aspectos
Introducción a la Programación Orientada a Aspectosjfromaniello
 
2. introduccion lab view seis horas
2. introduccion lab view   seis horas2. introduccion lab view   seis horas
2. introduccion lab view seis horasninguna
 
Electrónica digital: Lenguaje descripción de hardware VHDL
Electrónica digital: Lenguaje descripción de hardware VHDLElectrónica digital: Lenguaje descripción de hardware VHDL
Electrónica digital: Lenguaje descripción de hardware VHDLSANTIAGO PABLO ALBERTO
 
Ingeniería del Software: Nuestro producto debe funcionar
Ingeniería del Software: Nuestro producto debe funcionarIngeniería del Software: Nuestro producto debe funcionar
Ingeniería del Software: Nuestro producto debe funcionarFrancisco Sanchez Cid
 

Similar a (Digital) flujo de diseño y conceptos basicos (20)

Unidad 4 lenguaje hdl pe ISC
Unidad 4 lenguaje hdl pe ISCUnidad 4 lenguaje hdl pe ISC
Unidad 4 lenguaje hdl pe ISC
 
Unidad 4 lenguaje hdl pe RUBI
Unidad 4 lenguaje hdl pe RUBIUnidad 4 lenguaje hdl pe RUBI
Unidad 4 lenguaje hdl pe RUBI
 
Unidad 4 lenguaje hdl ISC J3 - A JP
Unidad 4 lenguaje hdl ISC J3 - A JPUnidad 4 lenguaje hdl ISC J3 - A JP
Unidad 4 lenguaje hdl ISC J3 - A JP
 
Electrónica digital: Lógica programable VHDL
Electrónica digital: Lógica programable VHDL Electrónica digital: Lógica programable VHDL
Electrónica digital: Lógica programable VHDL
 
VHDL - Presentacion Brayan.pptx
VHDL - Presentacion Brayan.pptxVHDL - Presentacion Brayan.pptx
VHDL - Presentacion Brayan.pptx
 
Conceptos basicos de_vhdl
Conceptos basicos de_vhdlConceptos basicos de_vhdl
Conceptos basicos de_vhdl
 
4.v h d l
4.v h d l4.v h d l
4.v h d l
 
IDLconVHDL2010.pdf
IDLconVHDL2010.pdfIDLconVHDL2010.pdf
IDLconVHDL2010.pdf
 
Introduccion vhdl
Introduccion vhdlIntroduccion vhdl
Introduccion vhdl
 
Paradigmas de programacion de computadoras FP.pptx
Paradigmas de programacion de computadoras FP.pptxParadigmas de programacion de computadoras FP.pptx
Paradigmas de programacion de computadoras FP.pptx
 
Introduccion a los automatas.pdf
Introduccion a los automatas.pdfIntroduccion a los automatas.pdf
Introduccion a los automatas.pdf
 
Introducción a la Programación Orientada a Aspectos
Introducción a la Programación Orientada a AspectosIntroducción a la Programación Orientada a Aspectos
Introducción a la Programación Orientada a Aspectos
 
2. introduccion lab view seis horas
2. introduccion lab view   seis horas2. introduccion lab view   seis horas
2. introduccion lab view seis horas
 
Introducción a Arduino
Introducción a ArduinoIntroducción a Arduino
Introducción a Arduino
 
01-VHDL-ALuca.ppt
01-VHDL-ALuca.ppt01-VHDL-ALuca.ppt
01-VHDL-ALuca.ppt
 
Tema8
Tema8Tema8
Tema8
 
Computadores RISC
Computadores RISCComputadores RISC
Computadores RISC
 
Electrónica digital: Lenguaje descripción de hardware VHDL
Electrónica digital: Lenguaje descripción de hardware VHDLElectrónica digital: Lenguaje descripción de hardware VHDL
Electrónica digital: Lenguaje descripción de hardware VHDL
 
Pseint
PseintPseint
Pseint
 
Ingeniería del Software: Nuestro producto debe funcionar
Ingeniería del Software: Nuestro producto debe funcionarIngeniería del Software: Nuestro producto debe funcionar
Ingeniería del Software: Nuestro producto debe funcionar
 

(Digital) flujo de diseño y conceptos basicos

  • 1. Cap.1 – Introducción 1.6 Flujo de diseño con VHDL Capítulo 1. Introducción 1.6 Flujo de diseño con VHDL
  • 2. Cap.1 – Introducción 1.6 Flujo de diseño con VHDL ¿ Cuál es la primera fase del diseño de un sistema ¿ Cuál es la primera fase del diseño de un sistema digital utilizando SPLD’s, CPLD’s y/o FPGA’s ? digital utilizando SPLD’s, CPLD’s y/o FPGA’s ? Descripción del Diseño Descripción del Diseño Métodos Limitación: Difícil o imposible la Captura Esquemática (p.ej. OrCAD) manipulación de diseños complejos. Descripción con un Lenguaje (HDL) De Bajo Nivel: PALASM OPAL PLPL De Alto Nivel: Handel C System C Verilog VHDL
  • 3. Cap.1 – Introducción 1.6 Flujo de diseño con VHDL ¿ Cuál es la primera fase del diseño de un sistema ¿ Cuál es la primera fase del diseño de un sistema digital utilizando SPLD’s, CPLD’s y/o FPGA’s ? digital utilizando SPLD’s, CPLD’s y/o FPGA’s ? Descripción del Diseño Descripción del Diseño Simulación Verifica que realiza la función para Funcional la cual fue diseñado. Digital (Timing Simulation) Verifica que los tiempos en la Programación Programación propagación del circuito no afecten la funcionalidad del sistema. Verificación del diseño Verificación del diseño FIN FIN
  • 4. Cap.1 – Introducción 1.6 Flujo de diseño con VHDL IDEA SINTESIS SINTESIS DESCRIPCIÓN DESCRIPCIÓN ANALISIS ANALISIS DEL CIRCUITO DEL CIRCUITO TEMPORAL TEMPORAL SIMULACION FUNCIONAL SIMULACION FUNCIONAL NO ¿FUNCIONA? ¿FUNCIONA? NO ¿FUNCIONA? SI ¿FUNCIONA? SI PROGRAMACION PROGRAMACION DEL DISPOSITIVO DEL DISPOSITIVO NO ¿FUNCIONA? PRUEBAS PRUEBAS ELABORACION ELABORACION ¿FUNCIONA? AL DISEÑO AL DISEÑO DEL PROTOTIPO DEL PROTOTIPO SI FIN FIN DEL PROCESO DEL PROCESO DE DISEÑO DE DISEÑO
  • 5. Cap.1 – Introducción 1.6 Flujo de diseño con VHDL Descripción del diseño Elementos sintácticos del VHDL Comentarios Se consideran comentarios después de dos guiones medios seguidos “--”. Símbolos especiales Existen caracteres especiales sencillos como (&, #, +, *, =) o dobles como ( :=, <=). Identificadores Es lo que se usa para dar nombre a los diferentes objetos del lenguaje. Números Se considera que se encuentra en base 10, se admite la notación científica convencional es posible definir números en otras bases utilizando el símbolo # : 2#11000100# Caracteres Es cualquier letra o carácter entre comillas simples: ‘3’, ‘t’ Cadenas Son un conjunto de caracteres englobados por comillas dobles: “hola” Cadenas de bits Los tipos bit y bit_vector son en realidad tipo carácter y arreglo de caracteres respectivamente, se coloca un prefijo para indicar la base : O”126”, X”FE” Palabras reservadas Son las instrucciones, órdenes y elementos que permiten definir sentencias.
  • 6. Cap.1 – Introducción 1.6 Flujo de diseño con VHDL Descripción del diseño Identificadores Nombres o etiquetas que se usan para referir: Variables, Constantes, Señales, Procesos, Entidades, etc. Están formados por números, letras (mayúsculas o minúsculas) y guión bajo “_” con las reglas especificadas en la tabla siguiente. Longitud (Número de Caracteres): Sin restricciones Palabras reservadas por VHDL no pueden ser identificadores En VHDL, un identificador en mayúsculas es igual a su contraparte en minúsculas Reglas para especificar un identificador Incorrecto Correcto Primer carácter debe ser siempre una letra mayúscula o minúscula 4Suma Suma4 Segundo carácter no puede ser un guión bajo ( _ ) S_4bits S4_bits Dos guiones bajos no son permitidos Resta__4 Resta_4_ Un identificador no puede utilizar símbolos especiales Clear#8 Clear_8
  • 7. Cap.1 – Introducción 1.6 Flujo de diseño con VHDL Descripción del diseño Lista de palabras reservadas en VHDL
  • 8. Cap.1 – Introducción 1.6 Flujo de diseño con VHDL Estructura básica Estructura Básica de un Programa VHDL Estructura Básica de un Programa VHDL Declaración de Entidad Declaración de Entidad (entity) (entity) Unidad Primaria Unidad Primaria Arquitectura Arquitectura (architecture) (architecture) Unidad Secundaria Unidad Secundaria
  • 9. Cap.1 – Introducción 1.6 Flujo de diseño con VHDL Entidad - ¿Qué es? entidad (entity) entidad (entity) Bloque elemental de diseño Bloque elemental de diseño Circuitos elementales digitales que forman de manera Circuitos elementales digitales que forman de manera individual o en conjunto un sistema digital individual o en conjunto un sistema digital Ejemplos: Compuertas, Flip-Flops, Sumadores/Restadores, Multiplexores, Ejemplos: Compuertas, Flip-Flops, Sumadores/Restadores, Multiplexores, Contadores, Multiplicadores, ALUs, Neurona-Digital, etc. Contadores, Multiplicadores, ALUs, Neurona-Digital, etc. Ejemplo-1: Sumador Ejemplo-1: Sumador Cin Entidad Cout Puertos de Entrada A Puertos de Salida Sumador SUMA B Declaración de una entidad Consiste en la descripción de los puertos de Declaración de una entidad Consiste en la descripción de los puertos de entrada o salida de un circuito, el cual es identificado como una entidad (entity) entrada o salida de un circuito, el cual es identificado como una entidad (entity) ¡Importante! ¡Importante! No se describe cómo será realizado o implementado el circuito, es decir, su Arquitectura No se describe cómo será realizado o implementado el circuito, es decir, su Arquitectura
  • 10. Cap.1 – Introducción 1.6 Flujo de diseño con VHDL Entidad – Descripción de un Puerto Descripción de un Puerto Nombre Modo Tipo de Dato Conjuntos de Valores que se les ha asignado un nombre Identificador in = Entrada de tal forma que un objeto de un determinado Tipo pueda tomar cualquier valor dentro del conjunto de out = Salida valores que define al Tipo especificado. Valores de ‘0’ o ‘1’ Más tipos bit (pkg.standard) Lógico Se irán introduciendo conforme avance el curso Conjunto de bits bit_vector que representa a un (pkg.standard) grupo de señales de ent. o sal. Valores ‘U’, ‘X’, std_logic ‘0’, ‘1’, ‘Z’, ‘W’, (pkg.std_logic_1164) ‘L’, ‘H’, ‘-’ Arreglos de std_logic_vector std_logic (pkg.std_logic_1164) Más tipos Se irán introduciendo conforme avance el curso
  • 11. Cap.1 – Introducción 1.6 Flujo de diseño con VHDL Entidad – Ejemplo 1 Ejemplo-1 Sumador Cin Entidad Cout Puertos de Entrada A Puertos de Salida circuito SUMA B (entity) Inicia declaración de la entidad (--) Indica Comentario Identificador de la entidad Nombres de los puertos Línea Sumador-completo de dos datos con longitudes de 1-bit N°. (Declaración de Entidad) 1 --Declaración de la entidad de un circuito sumador Modo de Operación 2 entity sumador is Tipo de Dato 3 port (A, B, Cin: in bit; 4 SUMA, Cout: out bit); 5 end sumador; (;) Finaliza declaración o subdeclaración (end) Finaliza declaración de la entidad
  • 12. Cap.1 – Introducción 1.6 Flujo de diseño con VHDL Entidad – Ejemplo 2 Ejemplo-2 a3 b3 a2 b2 F a1 b1 a0 b0 Línea Detector – Uso de dos datos con longitudes de 4-bit N°. (Declaración de Entidad) 1 --Declaracion de la entidad 2 entity circuito is 3 port (a3, b3, a2, b2, a1, b1, a0, b0: in bit; 4 F: out bit); 5 end circuito;
  • 13. Cap.1 – Introducción 1.6 Flujo de diseño con VHDL Entidad – Ejemplo 3 (Vectores) Ejemplo-3 a3 b3 a2 b2 F a1 b1 a0 b0 Línea Detector – Uso de dos datos con longitudes de 4-bit N°. (Declaración de Entidad – Uso de Vectores) 1 --Declaracion de la entidad 2 entity circuito is 3 port (a, b: in bit_vector (3 downto 0); 4 F: out bit); 5 end circuito;
  • 14. Cap.1 – Introducción 1.6 Flujo de diseño con VHDL Entidad - Uso de biblioteca Para llamar un paquete es necesario llamar a la “librería”/biblioteca que lo contiene Para llamar un paquete es necesario llamar a la “librería”/biblioteca que lo contiene (donde ha sido compilado) (donde ha sido compilado) Sintaxis: use nombre_librería.nombre_paquete.all; Sintaxis: use nombre_librería.nombre_paquete.all; Ejemplo: use ieee.std_logic_1164.all; Ejemplo: use ieee.std_logic_1164.all; Permite el uso de todos los componentes Uso del paquete std_logic_1164 almacenados en el paquete incluido en la biblioteca ieee
  • 15. Cap.1 – Introducción 1.6 Flujo de diseño con VHDL Arquitectura - ¿Qué es? arquitectura (architecture) arquitectura (architecture) Unidad de Diseño Secundaria que describe el comportamiento interno de una entidad. Unidad de Diseño Secundaria que describe el comportamiento interno de una entidad. ¿Cómo? - A través de la descripción de varios procedimientos que permitan que la ¿Cómo? - A través de la descripción de varios procedimientos que permitan que la entidad (entity) cumpla con las condiciones de operación o comportamiento deseadas. entidad (entity) cumpla con las condiciones de operación o comportamiento deseadas. Estilo de descripción o Estilo de descripción o Niveles de Descripción utilizados Niveles de Descripción utilizados Modelización Modelización Nivel Algoritmo Nivel Algoritmo Funcional Funcional Nivel de Transferencia entre Registros (RTL) Nivel de Transferencia entre Registros (RTL) Flujo de Datos Flujo de Datos Nivel Lógico Nivel Lógico Nivel Compuerta Nivel Compuerta Estructural Estructural Nivel Transistor (Topología / Layout)
  • 16. Cap.1 – Introducción 1.6 Flujo de diseño con VHDL Layout Nivel Transistor (Topología // Layout) Nivel Transistor (Topología Layout)
  • 17. Cap.1 – Introducción 1.6 Flujo de diseño con VHDL Descripción - Estructural Ejemplo-4a a f1 Línea Arquitectura - Compuerta OR de dos entradas b Nº 1 --Ejemplo de una descripción estructural 2 library ieee; a b f1 3 use ieee.std_logic_1164.all; 0 0 0 4 entity compuerta_or is 0 1 1 5 port (a,b: in std_logic; 1 0 1 6 f1: out std_logic); 1 1 1 7 end compuerta_or; 8 architecture estructural of compuerta_or is 9 begin 10 U1: ENTITY or2 PORT MAP (e1=>ax, e2=>bx, y=>sal); 11 --U2: ENTITY or2 PORT MAP (ax, bx, sal); 12 end estructural;
  • 18. Cap.1 – Introducción 1.6 Flujo de diseño con VHDL Descripción - Flujo de datos Ejemplo-4b Línea Arquitectura - Compuerta OR de dos entradas Nº 1 --Ejemplo de una descripción abstracta (funcional) a f1 2 library ieee; b 3 use ieee.std_logic_1164.all; 4 entity compuerta_or is 5 port (a,b: in std_logic; a b f1 6 f1: out std_logic); 0 0 0 7 end compuerta_or; 0 1 1 8 architecture flujo_datos of compuerta_or is 1 0 1 9 begin 1 1 1 10 f1 <= (a) OR (b); 11 end flujo_datos; 12 13 14 15 16 17
  • 19. Cap.1 – Introducción 1.6 Flujo de diseño con VHDL Descripción - Funcional Ejemplo-4c Línea Arquitectura - Compuerta OR de dos entradas Nº 1 --Ejemplo de una descripción abstracta (funcional) a f1 2 library ieee; b 3 use ieee.std_logic_1164.all; 4 entity compuerta_or is 5 port (a,b: in std_logic; a b f1 6 f1: out std_logic); 0 0 0 7 end compuerta_or; 0 1 1 8 architecture funcional of compuerta_or is 1 0 1 9 begin 1 1 1 10 process (a,b) begin 11 if (a = ‘0’ and b=‘0’) then 12 f1 <= ‘0’; 13 else 14 f1 <= ‘1’; 15 end if; 16 end process; 17 end funcional;
  • 20. Cap.1 – Introducción 1.6 Flujo de diseño con VHDL Arquitectura. Ejemplo 5 Ejemplo-5 Ejemplo-5 ENTRADA SALIDA a salida c salida b 0 b c 1 a ENTRADAS SALIDA c b a salida 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1