Capítulo 2: LENGUAJES DE DESCRIPCIÓN DE HARDWARE: VHDL-Generalidades - Ventajas e inconvenientes de los HDL s - Características generales del ...

Página creada Judit Landry
 
SEGUIR LEYENDO
Capítulo 2:
LENGUAJES DE DESCRIPCIÓN DE HARDWARE:
VHDL

   – Generalidades
   – Ventajas e inconvenientes de los HDL´s
   – Características generales del VHDL
   – Modelo del Hw
   – Introducción al lenguaje VHDL
Lenguajes de descripción de hardware
               (HDLs)
• Estos lenguajes fueron desarrollados para hacer
  frente a la creciente complejidad de los diseños.
• Se puede hacer una analogía con los que se pueden
  llamar lenguajes de descripción de software:
Lenguajes de descripción de hardware
              (HDLs)
• Los HDLs son usados para modelar la arquitectura y
  comportamiento de sistemas electrónicos discretos.
• Se utilizan en la fase de diseño
• Necesidad de Simulador lógico
   – Herramienta necesaria para reproducir el
     comportamiento del sistema modelado
   – Permite la verificación del sistema diseñado.
• Actualmente existen herramientas software que
  permiten pasar de dichas descripciones a diseños a
  nivel de puertas: SÍNTESIS
Lenguajes de descripción de hardware (HDLs).
                 Síntesis lógica
Síntesis lógica: convierte una descripción de un sistema
digital mediante un HDL en una implementación
tecnologíca.
           Descripción HDL:                      Puertas
library ieee;
use ieee.std_logic_1164.all;

entity puertas is
    port ( A, B, C : in std_logic;
            Y:  out std_logic
         );                          Síntesis
end puertas;

ARCHITECTURE a of puertas is

 begin

    Y
Lenguajes de descripción de hardware (HDLs).
               Síntesis lógica

• El hecho de realizar una síntesis lógica obliga a ciertas
  restricciones en la tarea de realizar las descripciones
  con HDLs.
• No se pueden utilizar todas las construcciones de los
  lenguajes, y las que están permitidas hay que utilizarlas
  adecuadamente.
• Cada uno de los sintetizadores que existen actualmente
  en el mercado tienen unas restricciones distintas, si
  bien, son muy parecidas en cada uno de ellos.
Ventajas del uso de HLDs

• El lenguaje es independiente de la tecnología:
  – El mismo modelo puede ser sintetizado en librerías
    de distintos vendedores.
  – Reducción de la dependencia con el fabricante de
    ASICs, ya que la portabilidad a otra tecnología es
    mucho más rápida.
  – Reutilizar el diseño en componentes tan distintos
    como ASICs o FPGAs con un esfuerzo mínimo.
Ventajas del uso de HLDs

• Soportan tres estilos de descripción básicos:

  – DESCRIPCIÓN COMPORTAMENTAL (behavioral)
  – DESCRIPCIÓN DE FLUJO DE DATOS (data-flow)
  – DESCRIPCIÓN ESTRUCTURAL        (estructural)

    Un diseño puede ser descrito con una
    combinación de los tres estilos.
Ventajas del uso de HLDs

Se puede verificar la funcionalidad del diseño muy
pronto en el proceso de diseño.
   La simulación del diseño a tan alto nivel, antes de la
   implementación a nivel de puertas, permite testar la
   arquitectura y rectificar decisiones en las primeras
   fases de diseño, con un esfuerzo mucho menor que si
   se realizase en fases posteriores.
Ventajas del uso de HLDs

• Sencillez
  – Como la descripción se centra más en la
    funcionalidad que en la implementación, resulta más
    sencillo para una persona comprender qué función
    realiza el diseño a partir de una descripción HDL que
    a partir de un esquemático de interconexión de
    puertas

                begin

                   Y
Ventajas del uso de HLDs
• Ahorro de tiempo
  – Facilita las correcciones en el diseño debidas a fallos
    de diseño o cambio de especificaciones.
  – La existencia de herramientas comerciales
    automáticas (sintetizadores RTL) que permiten crear
    descripciones gate-level a partir de los modelos a
    nivel RTL
  – Si bien, el diseño final no suela estar tan optimizado
    como si lo hubiera realizado un humano, la mayoría
    de las veces es necesario sacrificar un mínimo en las
    prestaciones, para poder llevar a cabo el proyecto.
    Para ello se necesita la disponibilidad de dichas
    herramientas, las librerías de síntesis del fabricante y
    sus archivos de tecnología.
Ventajas del uso de HLDs
• El lenguaje puede ser usado como un medio
  de intercambio entre los fabricantes de
  ASICs y los usuarios de herramientas CAD.
  – Diferentes vendedores de ASICs pueden suministrar
    descripciones HDL de sus componentes a
    diseñadores de sistemas. Los usuarios de
    herramientas CAD pueden usar esta descripción para
    capturar el comportamiento de este diseño a un nivel
    de abstracción alto para la simulación funcional.
    Además, se están convirtiendo en los lenguajes de
    simulación más utilizados por los distintos
    vendedores.
Ventajas del uso de HLDs

• El lenguaje también puede ser usado como
  medio de comunicación entre diferentes
  herramientas CAD y CAE.
  – Un programa de captura de esquemáticos puede ser
    utilizado para generar descripciones HDL del diseño,
    lo cual puede ser usado como entrada a un
    simulador.
Ventajas del uso de HLDs

• La propia descripción en el lenguaje de alto nivel sirve
  como especificación del comportamiento del sistema a
  diseñar (tanto a nivel funcional como las restricciones
  temporales), y el interface con el resto del sistema.
   – Los modelos descritos con estos lenguajes, pueden
     ser verificados fácilmente y de forma precisa por
     simuladores definidos en base a estos HDL.
   – Además, cumple con un requerimiento muy
     importante en toda especificación: no es ambiguo.
     Asimismo sirve como documentación del diseño.
Ventajas del uso de HLDs

• Los "Test Bench" pueden ser escritos en el
  mismo lenguaje que con el que han sido
  modelados los diseños (HDL).
  – Esto permite un mejor manejo del modelo, ya que se
    puede asociar el modelo a sus estímulos de
    simulación.
  – No limitamos el uso de dichos estímulos a un
    determinado simulador, pudiendo ser reutilizados
    dichos estímulos aunque se use un simulador
    distinto.
  – Los retardos de propagación y limitaciones
    temporales, pueden ser descritos con estos HDL
Ventajas del uso de HLDs

• El lenguaje soporta jerarquía;
   – Un sistema digital puede ser modelado como un
     conjunto de componentes interconectados;
   – A su vez cada componente puede ser modelado
     como un conjunto de subcomponentes.

• El lenguaje soporta metodologías de diseño
  diferentes: top-down, bottom-up, o mixtas.
Ventajas del uso de HLDs

• Soporta modelos de tiempos síncronos y asíncronos.
• Posibilidad de implementar distintas técnicas de
  modelado digital (descripciones de máquinas de estados
  finitos (FSM), descripciones algorítmicas, redes de Petri,
  y ecuaciones Booleanas
• El lenguaje es público y "not propietary" (especialmente
  en el caso del VHDL).
Ventajas del uso de HLDs

• Es un estándar ANSI e IEEE; por lo tanto, los modelos
  descritos en estos lenguajes (VHDL o VERILOG) son
  totalmente portables.
• No hay limitaciones impuestas por el lenguaje en el
  tamaño del diseño.
   – Los HDL tienen elementos que permiten el diseño a
     gran escala, de forma fácil; por ejemplo,
     componentes, funciones, procedimientos, paquetes.
   – La capacidad de definir tipos de datos sofisticados,
     suministra la potencia de describir y simular nuevos
     diseños a un nivel de abstracción en el cual aún no
     se barajan detalles de la implementación
Ventajas del uso de HLDs

• El uso de genéricos y atributos en los modelos facilitan
  la labor de backannotation de información
  proviniente del dominio físico después de haber
  realizado el "placement and routing".
• Los genéricos y atributos facilitan la descripción de
  modelos parametrizables. El modelo, a través de los
  atributos, puede contener información del diseño en
  sí mismo, no solo de la funcionalidad: por ejemplo,
  informaciones tales como el área y velocidad.
Inconvenientes del uso de HDLs
• Supone un esfuerzo de aprendizaje, ya que prác-
  ticamente se puede considerar como nueva meto-
  dología.
• Necesaria la adquisición de nuevas herramientas:
   – Simuladores
   – Sintetizadores de HDL, teniendo que mantener el
     resto de las herramientas para otras fases del
     diseño.
• El uso de estos lenguajes hace que involuntariamente
  se pierda un poco de control sobre el aspecto físico del
  diseño, dándole una mayor importancia a la funcio-
  nalidad de dicho diseño.
Historia de VHDL
– Diversos grupos de investigadores empiezan a crear
  y desarrollar los llamados "lenguajes de descripción
  de hardware" cada uno con sus peculiaridades,
  buscando una solución a los problemas que
  presentaba el diseño de los sistemas complejos.
– Ejemplos:
   • IDL desarrollado por IBM ,
   • TI - HDL de Texas Instruments,
   • ZEUS de General Electric,
   • prototipos de universidades
LENGUAJES DE DESCRIPCIÓN DE HARDWARE.
•En la actualidad se utilizan fundamentalmente VHDL, Verilog y
SystemC . Otro HDL, el UDI/L se utiliza exclusivamente en Japón.
   •VHDL (Very High Speed Integrated Circuit Hardware Description
   Language). Nace como proyecto del Departamento de Defensa
   (DoD) de EEUU (año 82) para disponer de una herramienta
   estándar, independiente para la especificación (modelado y/o
   descripción) y documentación de los sistemas electrónicos. El IEEE
   lo adopta y estandariza.
   •Verilog: Sw de la firma Gateway y posteriormente de Cadence.
   Estándar industrial hasta que apareció el VHDL como estándar
   IEEE. En 1990 Cadence lo hace público y el IEEE lo estandariza en
   1995.
   •SystemC: es una extensión del C++, que utiliza unas bibliotecas
   de clase para describir y simular circuitos digitales. Se publicó en
   1.999 .
Historia de VHDL
   – Estos lenguajes nunca alcanzaron el nivel de difusión y
     consolidación necesarios por motivos distintos.
      • los industriales, por ser propiedad de la empresa
        permanecieron encerrados en ellas y no estuvieron
        disponibles par su estandarización y mayor difusión,
      • los universitarios, perecieron por no disponer de soporte
        ni mantenimiento adecuado.
• En 1981 el Departamento de Defensa de los Estados Unidos
      • Proyecto VHSIC (Very High Speed Integrated Circuit )
      • Objetivos:
         – rentabilizar las inversiones en hardware haciendo
           más sencillo su mantenimiento.
         – resolver el problema de modificar el hardware
           diseñado en un proyecto para utilizarlo en otro
Historia de VHDL
• VHDL acrónimo de VHSIC Hardware Description Lenguaje
  – En 1983, al grupo formado por las empresas Intermetrics,
    IBM y Texas Instruments se le adjudicó un contrato para
    desarrollar el VHDL
  – En 1985, la versión final del lenguaje bajo contrato
    gubernamental se dio a conocer : VHDL Version 7.2
  – Tras colaboraciones de industrias y universidades en
    1987 VHDL se convierte en Standard IEEE 1076-1987 y
    en 1988 en standard ANSI
  – En 1993 fue revisado el standard VHDL
  – La última revisión se realizó en 2002.
VHDL: CARACTERÍSTICAS GENERALES

VHDL: lenguaje orientado a la descripción o modelado de Hw
     similar a lenguajes de alto nivel de propósito general (ADA
     en especial): de ellos hereda:
           • Concepto de tipo de datos, con posibilidad de
           definir nuevos tipos → facilita la descripción de
           circuitos con diversos niveles de abstracción.
           •Sentencias de control de flujos (if, for while). Junto
           con la característica anterior → potencia para
           desarrollar algoritmos.
           •Capacidad de estructurar el código (subprogramas,
           funciones o procedimiento), permite afrontar
           algoritmos complejos.
           •Posibilidad de utilizar y desarrollar bibliotecas de
           diseño,
       Incorpora conceptos específicos para el modelado del
       Hw, como concurrencia y ciclo de simulación.
MODELO DEL HW

Modelo de estructura: componentes y jerarquía
  •Permiten describir cualquier sistema digital con diferentes
  grados de abstracción.
  •Un sistema digital (independientemente de su complejidad)
  estará definido por dos elementos principales:
      –Interfaz con el exterior (la entidad o entity), indicará que
      entradas y salidas (ports) le relacionan con el exterior.
      –Descripción de la funcionalidad que realiza el dispositivo
      (architecture). Para una misma entity pueden existir
      diversos módulos architerture de estilos descriptivos
      distintos. Pudiéndose especificar para cada diseño en
      concreto que implementación de una entidad se utiliza
      (configuration).
      –Se puede utilizar cualquier elemento modelado en VHDL
      en otro diseño haciendo referencia a él (component) y
      conectando sus puertos en el nuevo circuito.
MODELO DEL HW

Modelo de concurrencia: procesos, señales y eventos.

       •El Hw tiene naturaleza concurrente.
       •El elemento básico de concurrencia es el proceso
       (process) que está formado por sentencias secuenciales.
       •Los procesos se comunican entre ellos mediante señales
       (signal).
       •Cada proceso tiene un conjunto de señales a las que es
       sensible, de forma que un cambio en alguna (evento) de
       ellas hace que se ejecute.
       •Las señales tienen asociadas una o varias colas de
       eventos, pares tiempo–valor (drivers), que definen su
       comportamiento en el transcurso de una simulación.
MODELO DEL HW
                                           Modelo de tiempo:
 INICIO SIMULACIÓN                         ciclo de simulación

   Ejecutar estamentos                                   Incrementar
       concurrentes                                      retardo delta
correspondientes al tiempo                                    (δ)
   de simulación actual

   Avanzar tiempo de                Eventos    NO         Transaccio-
      simulación             SI     en cola?                 nes?

                                                                 SI
                                    NO                                       NO
                                                            Eventos?
                                      FIN                        SI
                                  SIMULACIÓN           Ejecutar estamentos
                                                           concurrentes
                                                    correspondientes al tiempo
                                                       de simulación actual
MODELO DEL HW

Modelo de tiempo: ciclo de simulación
         Retardo delta (δ).
                              n1   n2
                A: 1→0
                                             Z
                     B=1
                     C=0
    A

    n1

    n2

    Z

                 T   T+δ T+2δ T+3δ      ∆T
COMPOSICIÓN DE UN DISEÑO VHDL

                  Fichero VHDL
Diseño VHDL
                  Paquetes
 Fichero VHDL     Constantes, tipos de datos,
                  componentes y subprogramas
                  utilizados en varios diseños o entidades
 Fichero VHDL
                    Entidades
                    Interfaces de los
                    componentes

                         Arquitecturas
  Fichero VHDL           Implementación de las
                          entidades
DECLARACIÓN DE ENTIDAD

    La entidad modela la interfaz del circuito, indicando sus
    terminales de entrada y salida, parámetros de diseño,
    declaraciones de tipos, constantes, etc.

                entity  is
                   [generic (lista_de_genéricos);]
                   [port (lista_de_puertos);]
                   {declaraciones}
                 [begin sentencias]
                end [entity] [identificador];

lista de puertos←(identificador{,...}:[modo]indicación_tipo
                                 [:=expresión]) {;...}

modo← in | out | inout | buffer | linkage
lista de genéricos← (identificador {,...}:tipo[:=expresión])
                          {;..}
DECLARACIÓN DE ENTIDAD

   Ejemplos:

               entity sumador_total is
                  port (a,b,c: in bit;
                        s,c: out bit);
               end sumador_total;

entity Mux21 is               entity Mux21 is
   port (a: in bit;              generic (t_delay:time:=5ns);
         b: in bit;              port (a, b: in bit;
         canal : in bit:=‘1’;          canal : in bit:=‘0’;
         z: out bit);                  z: out bit);
end Mux21;                    end Mux21;
DECLARACIÓN DE ARQUITECTURA

•Son las unidades definidas en VHDL para describir el
funcionamiento interno de las entidades. Describe un conjunto de
operaciones sobre las entradas de la entidad, que determinan el
valor de las salidas en cada momento.
•Para una entidad pueden existir varias arquitecturas.
•Pueden modelar el funcionamiento de una entidad según los tres
niveles de abstracción vistos anteriormente:
            - Algorítmico: descripciones al estilo de Sw de alto
            nivel, que reflejan la funcionalidad de los módulos .
            -Flujo de Datos: descripciones basadas en
            ecuaciones y expresiones que reflejan el flujo de
            datos y las dependencias entre datos y operaciones.
            -Estructural: se especifican componentes, conexiones
            y puertos de E/S
            -Estilo mixto de los anteriores.
DECLARACIÓN DE ARQUITECTURA

      architecture identificador of identificador_entidad is
         {declaraciones}
      begin
         {sentencias_concurrentes}
      end [architecture] [identificador];

                              architecture algoritmico of Mux21 is
entity Mux21 is               begin
  port(a, b, canal :in bit;     process (a,b, canal)
        z: out bit);            begin
end Mux21;                         if (canal=‘0’) then
                                      z
DECLARACIÓN DE ARQUITECTURA

entity Mux21 is               architecture FlujoDatos of Mux21 is
  port(a, b, canal :in bit;     signal canal_n,n1,n2:bit;
        z: out bit);          begin
end Mux21;                      -- operaciones concurrentes
                                  canal_n
DECLARACIÓN DE ARQUITECTURA

entity Mux21 is               architecture Estructural of Mux21 is
  port(a, b, canal :in bit;     signal canal_n,n1,n2:bit;
        z: out bit);            component INV
end Mux21;                        port (x:in bit;z:out bit);
                                end component;
                                component AND2
                                  port(x,y:in bit; z:out bit);
                                end component;
                                component OR2
                                  port(x,y:in bit; z:out bit);
                                end component;
                                begin
                                  U0:INV port map (canal,canal_n);
                                  U1:AND2 port map(canal_n,a,n1);
                                  U2:AND2 port map(canal,b,n2);
                                  U3:OR2 port map(n1,n2,z);
                              end Estructural;
También puede leer