Академический Документы
Профессиональный Документы
Культура Документы
01101010011001010110000101101110
1
Sistemas Digitales I
011000010111001101100001011011100111101001100001
VHDL
01101010011001010110000101101110
Objetivos:
Al finalizar esta sesión el estudiante será capaz de:
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.
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.
10
Sistemas Digitales I
011000010111001101100001011011100111101001100001
01101010011001010110000101101110
• Permite realizar diseños parametrizables mediante la utilización de
parámetros genéricos.
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.
12
Sistemas Digitales I
011000010111001101100001011011100111101001100001
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.
14
Sistemas Digitales I
011000010111001101100001011011100111101001100001
Sintaxis para la declaración de la
entidad
01101010011001010110000101101110
• Cabecera del programa
01101010011001010110000101101110
• En VHDL las señales pueden ser de cuatro modos diferentes.
16
Sistemas Digitales I
011000010111001101100001011011100111101001100001
01101010011001010110000101101110
17
Sistemas Digitales I
011000010111001101100001011011100111101001100001
Designación de puertos
01101010011001010110000101101110
nombre_variable: modo tipo; • Forma genérica de designar un puerto
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,
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).
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.
21
Sistemas Digitales I
011000010111001101100001011011100111101001100001
01101010011001010110000101101110
La estructura más común de un programa VHDL
consiste en tres partes:
22
Sistemas Digitales I
011000010111001101100001011011100111101001100001
Bibliotecas
01101010011001010110000101101110
• El lenguaje VHDL se organiza y trabaja con bibliotecas.
• 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.
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.
• 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.
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.
27
Sistemas Digitales I
011000010111001101100001011011100111101001100001
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.
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