Вы находитесь на странице: 1из 35

011000010111001101100001011011100111101001100001

01101010011001010110000101101110
1
Sistemas Digitales I
011000010111001101100001011011100111101001100001

VHDL

01101010011001010110000101101110
Objetivos:
Al finalizar esta sesión el estudiante será capaz de:

• Entender el lenguaje de descripción de hardware.


• Conocer los distintos lenguajes de descripción de
hardware.
• Entender la diferencia de programación secuencial y
concurrente.

2
Sistemas Digitales I
011000010111001101100001011011100111101001100001

VHDL

01101010011001010110000101101110
Un lenguaje de descripción de hardware (HDL) es una
herramienta formal que sirve para describir el comportamiento
y la arquitectura de un circuito o sistema electrónico utilizando
diferentes niveles de abstracción y en muchos casos el modo
jerárquico.

3
Sistemas Digitales I
011000010111001101100001011011100111101001100001

NIVELES DE DESCRIPCION Y
ESPECIFICACION DEL DISEÑO DIGITAL

01101010011001010110000101101110
• Nivel sistema : Describe el sistema como un conjunto de módulos
cooperantes, no se específica la forma de realizar cada módulo.
• Nivel Algorítmico : Cada módulo se define mediante un algoritmo en
lenguaje de alto nivel.
• Nivel RTL (Register Transfer Level) o flujo de datos : Se describe el sistema
mediante diagramas de transferencias entre registros tablas de verdad o
ecuaciones lógicas. Lo importante es “que hace” y no “como lo hace”.

4
Sistemas Digitales I
011000010111001101100001011011100111101001100001

NIVELES DE DESCRIPCION Y
ESPECIFICACION DEL DISEÑO DIGITAL

01101010011001010110000101101110
• Nivel lógico : Descripción mediante interconexión de bloques básicos
como puertas lógicas, no se describe comportamiento sino estructura.
• Nivel Conmutador : Las puertas se sustituyen por transistores
considerados como conmutadores ideales (0 o 1)
• Nivel Eléctrico : Se usan modelos reales del transistor.
• Nivel Físico : Descripción Geométrica o simbólica de las máscaras o
capas semiconductoras empleadas en la fabricación.

5
Sistemas Digitales I
011000010111001101100001011011100111101001100001

Tipos de HDL

01101010011001010110000101101110
• HDL de bajo nivel: Permiten definir un circuito a nivel de su arquitectura
con poco nivel de abstracción.
Ejemplos de esto son ABEL y PALASM.
• HDL de nivel medio: Permiten definir un circuito con mayor nivel de
abstracción y utilizar el modo jerárquico.
Un lenguaje de este tipo es el AHDL de Altera.
• HDL de alto nivel: Permiten definir un circuito o sistema con un gran nivel
de abstracción además de utilizar el modo jerárquico. Lenguajes de este tipo
son VERILOG y VHDL. ambos han alcanzado una gran difusión a nivel
internacional y son estándares de la IEEE.

6
Sistemas Digitales I
011000010111001101100001011011100111101001100001

Tipos de HDL

01101010011001010110000101101110
• PALASM: PAL Assembler. Surgió en 1978 de la Monolithic Memories. Se
basa en el uso de ecuaciones lógicas o tablas de verdad. Esta en desuso.
• ABEL: Advanced Bolean Expresión Language. Surgió en 1983 de Signetics y
Data I/O. A partir de 1990 diferentes fabricantes de circuitos PLD
desarrollaron sistemas CAD basados en lenguajes no estructurados como el
ABEL.
• AHDL Altera Hardware Description Language surge en 1989, es solo
aplicable con las herramientas CAD y los productos de Altera.

7
Sistemas Digitales I
011000010111001101100001011011100111101001100001

Verilog

01101010011001010110000101101110
• Simultáneamente con el desarrollo del VHDL, la empresa Gateway Design
Automation (actualmente Cadence) desarrollo el Verilog.
Verify Logic Language.
Fue normalizado en 1995 por la IEEE. Alcanzo gran aceptación en las
compañías de diseño de circuitos integrados, lo que hizo que se
desarrollasen numerosas herramientas de síntesis para el Verilog, que
fueron después adaptadas para aceptar VHDL.

8
Sistemas Digitales I
011000010111001101100001011011100111101001100001

VHDL

01101010011001010110000101101110
• El VHDL Very High Speed Integrated Circuit Hardware Desing/Description
Language. surge de Intermetrics, Texas Instruments e IBM. Inicialmente fue
llamado VHD2L. Es un lenguaje amplio y prolijo; tanto así que algunos le han
adjudicado un segundo significado:
Very Hard Description Language.

A mediados de los años 80 y desde 1987 se convirtió en un estándar de la


IEEE.
Utilizando VHDL se puede diseñar, simular y sintetizar desde un CLC sencillo,
hasta sistemas digitales de gran complejidad tal como un microprocesador.

9
Sistemas Digitales I
011000010111001101100001011011100111101001100001

VHDL

01101010011001010110000101101110
• El Lenguaje VHDL ha ganado mucha popularidad entre los diseñadores de
sistemas digitales en los últimos años gracias a la aparición en el mercado de
variadas herramientas de diseño que utilizan el VHDL.

• Numerosas firmas han adoptado el lenguaje VHDL como herramienta


básica y lo han incorporado a sus productos.

Entre las mismas están:


• Altera [Max Plus II]
• Xilinx [Foundation]

10
Sistemas Digitales I
011000010111001101100001011011100111101001100001

Características del VHDL

01101010011001010110000101101110
• Permite realizar diseños parametrizables mediante la utilización de
parámetros genéricos.

• Soporta metodologías de diseño de arriba hacia abajo (top-down), de


abajo hacia arriba (bottom-up) o mixtas.

• Soporta tres tipos diferentes de descripción de sistemas digitales:


estructural, de flujo de datos y comportamental.

• Permite realizar la descripción de un sistema mediante la combinación de


los diferentes tipos de descripciones, lo que constituye una descripción
mixta.

11
Sistemas Digitales I
011000010111001101100001011011100111101001100001

Estructura de VHDL

01101010011001010110000101101110
• VHDL está formado por la pareja Entidad-Arquitectura (Entity-
Architecture). A la pareja entidad-arquitectura se le llama modelo en VHDL.
Un fichero nombre.vhd puede contener uno o varios modelos.

Por lo tanto, un diseño en VHDL será


un fichero texto (no un dibujo), escrito
en cualquier editor, donde en la
primera parte aparece la declaración
de la entidad (entity) y a continuación
la definición de la arquitectura
(architecture).

12
Sistemas Digitales I
011000010111001101100001011011100111101001100001

Estructura del modelo en VHDL

01101010011001010110000101101110
• La entidad describe su conexión con el mundo externo, se declaran los
terminales de entrada y de salida, en VHDL estos terminales se llaman
port (puertos), del circuito o sistema que se desea diseñar.

• La arquitectura, separada de la
entidad pero asociada estrechamente
con ésta describe la operación del
bloque o en otros términos lo que
hace el circuito o cómo lo hace.

13
Sistemas Digitales I
011000010111001101100001011011100111101001100001

Entidad

01101010011001010110000101101110
• En la declaración de entidades, se definen las entradas, salidas y tamaño
de un circuito, explicitando cuales son, de qué tamaño (de 0 a n bits), modo
(entrada, salida, ...) y tipo (integer, bit,...) .

• Las entidades pueden definir bien las entradas y salidas de un diseño más
grande o las entradas y salidas de un chip directamente.

• La declaración de entidades es análoga al símbolo esquemático de lo que


queremos implementar, el cual describe las conexiones de un componente al
resto del proyecto, es decir, si hay una entrada o puerto de 8 bits, o dos
salidas o puertos de 4 bits, etc.

14
Sistemas Digitales I
011000010111001101100001011011100111101001100001
Sintaxis para la declaración de la
entidad

01101010011001010110000101101110
• Cabecera del programa

• Se indica que a continuación


viene los puertos (o grupos
señales) de entrada y/o salida
Aquí se declaran las entradas
y/o salidas con la sintaxis que
se verá a continuación. Las
líneas empezadas por dos
guiones son ignoradas por el
compilador. Así mismo, recordamos que el compilador no distingue las
mayúsculas de las minúsculas.

• Se indica que se ha acabado la declaración de puertos de entrada y/o


salida, y que se ha acabado la entidad
15
Sistemas Digitales I
011000010111001101100001011011100111101001100001

Modo de las señales

01101010011001010110000101101110
• En VHDL las señales pueden ser de cuatro modos diferentes.

16
Sistemas Digitales I
011000010111001101100001011011100111101001100001

Tipo de las señales

01101010011001010110000101101110
17
Sistemas Digitales I
011000010111001101100001011011100111101001100001

Designación de puertos

01101010011001010110000101101110
nombre_variable: modo tipo; • Forma genérica de designar un puerto

• El primer puerto es un bit de entrada, y su


Puertoa: in bit;
nombre es "puertoa"

Puertob: in bit_vector vector(0 to 7); • El segundo puerto es un vector de 8 bits de


entrada siendo el MSB el puertob(0) y el LSB el
puertob(7)
Puertoc: out bit_vector vector(3 downto 0); • El tercer puerto es un vector de 4 bits de
salida siendo el MSB el puertoc(3) y el LSB el
puertoc(0)
Puertod: buffer bit;
• El cuarto puerto es un buffer de un solo bit,
cuyo nombre es "puertod"
Puertoe: inout std_logic; • El quinto puerto es una entrada/salida del
tipo estándar logic de un solo bit

18
Sistemas Digitales I
011000010111001101100001011011100111101001100001
Ejemplo de declaración de
Entidad

01101010011001010110000101101110
Escriba la declaración de identidad En este caso ejemplo1 es el
para un circuito digital con dos nombre asignado a la entidad,
entradas (a, b) y una salida f, como
el mostrado: IN es el modo de las señales de
entrada a y b. Se pueden escribir
en una misma línea separadas por
comas o en líneas aparte,

OUT es el modo de la señal de


salida,
Solución:
ENTITY ejemplo1 IS Bit es el tipo de las señales de
PORT ( a, b : IN bit ; f : OUT bit ) ; entrada y de salida.
END ejemplo1 ;
19
Sistemas Digitales I
011000010111001101100001011011100111101001100001

Arquitectura

01101010011001010110000101101110
• La arquitectura indica el tipo de procesado que se realiza con la
información correspondiente a las señales de entrada, (declarados
previamente en la entidad) para llegar a tener los puertos de salida
(también declarados en la entidad).

• En la declaración de arquitecturas es donde reside todo el


funcionamiento de un circuito, ya que es ahí donde se indica que hacer
con cada entrada, para obtener la salida.

• Si la entidad es vista como una "caja negra", para la cual lo único


importante son las entradas y las salidas, entonces, la arquitectura es el
conjunto de detalles interiores de la caja negra.

20
Sistemas Digitales I
011000010111001101100001011011100111101001100001
Estructura general de una
arquitectura

01101010011001010110000101101110
• Cabecera de la arquitectura.

• Declaraciones de apoyo,
que se verán más adelante

• Se da comienzo al programa

• Conjunto de sentencias,
bucles, procesos,
funciones,... que dan
operatividad al programa.

• Fin del programa

21
Sistemas Digitales I
011000010111001101100001011011100111101001100001

Estructura de un programa escrito


en VHDL

01101010011001010110000101101110
La estructura más común de un programa VHDL
consiste en tres partes:

1. Declaración de las bibliotecas utilizadas (library).

2. Una entidad (entity).

3. Una arquitectura (arquitecture).

Además los comentarios se inician con dos guiones


seguidos y terminan al final de la línea,

22
Sistemas Digitales I
011000010111001101100001011011100111101001100001

Bibliotecas

01101010011001010110000101101110
• El lenguaje VHDL se organiza y trabaja con bibliotecas.

• Una biblioteca VHDL es un lugar donde el compilador VHDL almacena


información referente a un proyecto de diseño particular, incluyendo
documentos intermedios que son usados en el análisis, la simulación y la
síntesis.

• Una biblioteca estándar muy usada es la biblioteca IEEE.

• La biblioteca IEEE es solo de lectura y es del tipo global pues permite ser
usada por varios programas a la vez. El diseñador no puede interactuar
con ella ni modificar su contenido.

• Para usarla se debe escribir al inicio del programa:


library ieee;
23
Sistemas Digitales I
011000010111001101100001011011100111101001100001

Bibliotecas

01101010011001010110000101101110
24
Sistemas Digitales I
011000010111001101100001011011100111101001100001

Bibliotecas

01101010011001010110000101101110
• Los diseñadores que trabajan con VHDL, pueden definir sus propios
paquetes o bibliotecas lo que les permite reutilizar diseños realizados
anteriormente como parte de nuevos diseños.

• Para que el diseñador tenga la opción de generar sus propios esquemas


y posibilidad de utilizarlos en otros diseños o modificarlos, el compilador
VHDL genera, automáticamente, una biblioteca, llamada work.

• En la biblioteca work si se puede escribir, pero ella no contiene todas las


definiciones u otras informaciones que se necesitan para llevar a cabo un
diseño HDL.

• Cada proyecto posee su propia biblioteca work, que no es mas que una
biblioteca local que responde solo a un proyecto particular.

25
Sistemas Digitales I
011000010111001101100001011011100111101001100001

Tipos de descripciones

01101010011001010110000101101110
El lenguaje VHDL permite crear más de una forma o alternativa en la
escritura de la arquitectura.
A estas alternativas se les acostumbra a llamar estilos o aproximaciones.

• Estructural o lógica.

• Por Flujo de datos (dataflow) o transferencia de registros (RTL).

• Por comportamiento (behavioral), funcional o algorítmica.

26
Sistemas Digitales I
011000010111001101100001011011100111101001100001
Por Flujo de datos (dataflow) o
transferencia de registros (RTL)

01101010011001010110000101101110
• Se utilizan declaraciones de asignación de señales de tal forma que la
información sea transferida de señal a señal y de la entrada a la salida
usando únicamente asignaciones concurrentes.

• Este estilo de escritura también es llamada lógica de transferencia de


registros (RTL).

• Esta forma de diseño simplifica considerablemente los diseños VHDL,


pues los hace más compactos, mantenibles y comprensibles.

27
Sistemas Digitales I
011000010111001101100001011011100111101001100001

Sintaxis para la descripción por


flujo de datos de una arquitectura

01101010011001010110000101101110
• En la aproximación
por flujo de datos se
utilizan declaraciones
de asignación de
señales, así como
operadores lógicos
que no se emplean
en el estilo de
escritura estructural

28
Sistemas Digitales I
011000010111001101100001011011100111101001100001

Operadores Lógicos

01101010011001010110000101101110
• Std_logic_Vector: Aritméticos, De Relación.
• Pero ojo, usar: use ieee.std_logic_signed.all;

29
Sistemas Digitales I
011000010111001101100001011011100111101001100001

Declaraciones concurrentes

01101010011001010110000101101110
• La descripción por flujo de datos utiliza en su escritura ecuaciones simples
de asignación de señales, declaraciones de asignación condicional de
señales (usando when-else) o de asignación de señales seleccionadas
(usando with-select-when).

30
Sistemas Digitales I
011000010111001101100001011011100111101001100001

Asignación de señales

01101010011001010110000101101110
• El miembro de la derecha del
operador de asignación <= se
le conoce como expresión,
cuyo valor se obtiene
evaluándola completa.
• Luego ese valor se deposita
en el miembro de la izquierda.
• En la implementación de
circuitos simples, el miembro
de la derecha es la función
minimizada, que asigna un
valor de verdad a la salida.

31
Sistemas Digitales I
011000010111001101100001011011100111101001100001
Asignación condicional de
señales

01101010011001010110000101101110
• Cuando una señal cambia de
valor se dice que se ha
producido un evento.

• La existencia de eventos da
lugar a otro evento. De esta
manera se actualizan los
valores de las señales.

• De esta manera cuando la


expresión booleana cambie de
valor, la expresión que se le
asigne a la señal será distinta.

32
Sistemas Digitales I
011000010111001101100001011011100111101001100001
Asignación de la señal
seleccionada

01101010011001010110000101101110
• Este tipo de declaración de asignación
evalúa la expresión que acompaña a la
declaración with y cuando el valor
coincide con una de las alternativas
señaladas después de la palabra clave
when, entonces el valor
correspondiente a esta alternativa se le
asigna al nombre de la señal.
• Cuando el valor de la señal para varias
alternativas es el mismo, pueden ser
expresadas como una lista de valores
separadas por barras verticales “|”
• La palabra clave others sirve para
cubrir todos los casos posibles
faltantes.
33
Sistemas Digitales I
011000010111001101100001011011100111101001100001

Ejercicio

01101010011001010110000101101110
34
Sistemas Digitales I
011000010111001101100001011011100111101001100001

Ejercicio

01101010011001010110000101101110
35
Sistemas Digitales I

Вам также может понравиться