0% encontró este documento útil (0 votos)
45 vistas69 páginas

Introduccion Al VHDL

Este documento introduce los lenguajes de descripción de hardware (HDL) y describe sus características principales como VHDL y Verilog. Explica conceptos como entidades, señales, procesos y simulación para modelar el comportamiento electrónico.

Cargado por

Nicolas Celis
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
45 vistas69 páginas

Introduccion Al VHDL

Este documento introduce los lenguajes de descripción de hardware (HDL) y describe sus características principales como VHDL y Verilog. Explica conceptos como entidades, señales, procesos y simulación para modelar el comportamiento electrónico.

Cargado por

Nicolas Celis
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Introducción al

HDL
Lenguajes de Descripción de Hardware
HDL Leguaje de Descripción de Hardware

• Década de los 70 se crearon los HDL como


una opción al diseño de sistemas electrónicos
• IDL de IBM, TI-HDL de Texas Instruments, ZEUS
de General Electric. Estos solo disponibles
para la empresas
• A nivel Académico = AHPL, DDL, CDL, ISPS etc.
• En los 80 surgen VHDL, Verilog, ABEL, AHDL
• La Principal Características es que permiten
describir en distintos nivel de Abstracción.
LENGUAJES DE DESCRIPCIÓN DE
HARDWARE: ¿Porqué?

Diseño con HDL: • Facilita diseño


fiable
• Ahorra tiempo
• Facilita verificación
• Ahorra dinero
• Documentación del
• Facilita diseño modular diseño es más fácil
• Facilita diseño portable • Facilita diseños
• Independiza el diseño grandes por
de la implementación equipos de muchos
ingenieros
Lenguajes de Descripción de Hardware

•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: Desarrollado por 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.
Etapas de fabricación de CI

Precisión y
Especificaciones de
Complejidad funcionalidad

Funcional
Diseño lógico
de compuertas

Arquitectural

Conexión FPGA interna Niveles de


Físico Abstracción
Metodología Diseños con Lógicas programable
Requisitos, restricciones y

funcional
Nivel
especificaciones funcionales

Iteración de Corrección, retroalimentación y validación


Biblioteca de
celdas
Captura del diseño (esquemáticos)

arquitectural
Diseño
Simulación- Funcional lógica, Fallos

Diseño Físico
Ubicación y conexiones (layout)

Estimulaos de
simulación
Verificación y Análisis

producción
Fabricación y
Fabricación

Test de prototipos

producción
VHDL

1 Standard 2 Standard

1988 VHDL 1994

IEEE88 IEEE94

Surge como un
proyecto del ministerio
de defensa USA en 1982
Características principales

– Hereda Muchos conceptos de lo lenguajes de alto nivel


PASCAL, ADA o C
– Descripción a varios niveles
– Simulación activa por eventos ( Event-driven)
– Modularidad
– Extensibilidad
– Flexible a la creación de nuevos tipos de datos
– Posibilidad de usar bibliotecas de diseños
Modos de Operación del VHDL

CONCURRENCIA
Funcionamiento en paralelo de procesos, similar a los circuitos
Combinacionales, donde todos funcionan al tiempo

SECUENCIALIDAD
Modo de programación típico, donde una sentencia se ejecuta
después de la otra, en un orden determinad. Funcionamiento similar
a los circuitos secuenciales que poseen operación dependiendo del
tiempo
Concurrencia

w<= not a;
x <= a and b;
y <= c and w;
z <= x or y;
Cuncurrencia

t En VHDL se usan los Process para trabajar paralelismo


t Todos los procesos e ejecutan en paralelo
t Los procesos deben poder comunicarse (sincronizarse entre
ellos) para esto se usa las señales
t Cada proceso tiene un conjunto de señales a los que es
sensibles, cada vez que se produzca un cambio en esta se
ejecuta el proceso
Elementos
fundamentales
de diseño
Unidades Básicas de Diseño

Arquitectura
Entidad
Define el
definen las entradas
comportamiento del
y salidas
sistema

Declaración del Cuerpo de


Configuracion Paquete
Paquete
Unidades Primarias y
Segundarias
Primarias

Declaración del
Entidad Paquete Configuracion

Segundarias

Arquitectura
Cuerpo de Paquete
Entidad

definen las

Entidad
entradas y salidas

entity programa is
port(
-- puertos de salidas Nombre de la entidad
---puertos de entradas
--puertos de I/O
--puertos de buffers Definición de los Puertos
de entrada y salida
); end programa;

Fin de la entidad
Entidad

definen las

Tipos de definiciones
entradas y salidas

nombre_variable: modo tipo;

• puertoa: in bit; Es un bit de entrada, y su nombre


es "puertoa“

• puertob: in bit_vector(0 to 7); Es un vector de 8 bits de


entrada siendo el MSB el puertob(0) y
el LSB el puertob(7)

• puertoc: out bit_vector(3 downto 0); Es un vector de 4 bits de


salida siendo el MSB el puertoc(3)

• puertoe: inout std_logic; Es una entrada/salida del tipo


estándar logic de un solo
bit
Tipos de datos
• puertoa: buffer bit; el buffer permite hacer realimentación
interna dentro de la entidad, pero a diferencia del puerto de
Inout el pin se muestra como una terminal de salida
Norma IEEE 1164 Entidad

definen las
entradas y salidas

use IEEE.std_logic_1164.all;

.'U' Sin iniciar .'X' Desconocido


IEEE .'W' No importa débil .'0' 0 Forzado
.'L' 0 Débil (pull down).'1' 1 Forzado
.'H' 1 Débil (pull up) .'Z' Alta impedancia
.'-' No importa
TIPOS DE
DATOS
Objetos en VHDL

• Constantes:
constant pi : real := 3.1415927;
constant bits_palabra : integer := 32;
constant uno : bit := ‘1’;

• Variables:
Valor modificable inmediatamente por una afectation (:=)
variable stop : boolean;
variable flag : bit;
Señales

M5
M1 M4

SEÑALES

M2 M3

Señales:
Modelan las entradas/salidas de un dispositivo. Se trata de una forma de onda que cambia con el
tiempo: la modificación se realiza en la próxima interacción de la simulación (retardo delta)
signal estado_actual : state;
Operadores
Operadores

Relaciona- Dezplaza
Lógicos Edición
les miento

Operaciones Operaciones de Operaciones de


lógicas: comparación: desplazamien. Operaciones de
and or = /= < sll srl sla adición:
nand nor <= > >= sra rol + - &
xor xnor ror
Operadores
Operadores

Multipli. Diversas
Signo

Operaciones de
Operaciones de Operaciones
multiplicación:
signo: diversas:
* / mod
+ - not abs
rem
**
Arquitectura

Arquitectura Define el
comportamiento del
sistema

el nombre de una entidad


Cabecera de la
arquitectura.

architecture ARQ of programa is

--declaración de señales y
otros accesorios
--núcleo del programa

end ARQ
Conjunto de sentencias,
bucles, procesos, funciones
dan operatividad al programa
Fin de la Arquitectura
Estilos de Descripción de Hardware

Algorítmico Flujo de Estructural


datos

Similar a la Ecuaciones Componentes


Programación Expresiones Por Referencia
De alto nivel
Algorítmico o Comportamental

• Incluye sentencias y órdenes


típicas de un lenguaje de
Algorítmico programación (if, then,
case,...), sin importarnos como
quedará la distribución de
puertas lógicas dentro del
integrado

Similar a la • Es necesario un proceso al ser


Programación
De alto nivel
una estructura secuencial.
Como se genera el proyecto

• Se hace exactamente lo mismo que en los ejemplos


anteriores para crear el proyecto
• Sin embargo cuando se crea el archivo ya no se
realiza en Esquemático sino VHDL
• Y da el espacio para la edición del programa, y se
siguen los mismos pasos como hasta ahora
Reglas

• Es importante señalar que los nombres de las


variables es como el programación no debe
tener números ni símbolos al inicio
Ejemplo

Modo Comportamental

Es importante que la entidad se llame


A B como el proyecto

Comparador

C
RTL View
RTL View
Procesos

• Un proceso es un conjunto de frases


• Semánticamente, se trata de una bucle infinito, a menos que exista
una frase wait o una lista de sensibilidad
• Un modelo VHDL puede verse como un conjunto que se ejecuta en
paralelo
• Las señales se utilizan para controlar la activación de los procesos
• Un programa principal en VHDL es un conjunto de procesos, en
donde cada uno se ejecuta en paralelo dentro de un bucle infinito
(excepto cuando existe un wait explícito o una lista de sensibilidad).
La lista de sensibilidad es incompatible con los waits: se utiliza uno o
el otro.
• El orden de escritura de los procesos es indiferente
P P4
P1

P2 P3
Flujo de Datos

Flujo de
datos

Ecuaciones
Expresiones
Flujo de datos

A B

Comparador

C
Estructural

Estructural

Componentes
Por Referencia
Estructural

A B

Comparador

C
Como usar un solo proyecto

Buscar en Project la parte de add/remove file


Como usar un solo proyecto

En la parte de de File Name se busca el archivo a agregar en caso de que


Este otro archivo se señala y se borra el que está

Una vez añadido


Si se puede compilar
Ejemplos Básicos
de VHDL
• Lenguajes de Descripción de Hardware
Circuito Combinacional Básico

• Dado el siguiente circuito representarlo en VHDL

Que forma de diseño utilizo?..


Estructural
Ejemplo2
When -Else
• Combinación de las Unidades Concurrentes
– Esto se puede realizar porque no importa en
orden cuando se ejecuten ya que todas se hacen
al tiempo no tiene precedencia
Ejemplo
Estructural Vs Modo de flujo
de datos
Flujo de datos
When select
Simulación
Ejemplo

Respuesta
ejemplo
Simulación
Ejemplo Buffer
Simulación
Mux
Mux
Simulación
Mux2
RTL View
Precedencia de operadores

Formato de Números
Celda Sumadora
B(3:0) A(3:0)

Cin Σ

S(3:0)
Cout
Simulación
Sumador
B(3:0) A(3:0)

Cin Σ

S(3:0)
Cout
Decodificador

DEC

Y(7:0)

Seleccion(2:0)
Decodifcador
Decodificador con Habilitador

entra
DEC

Y(7:0)

Seleccion(2:0)
Decodificador con Habilitador
N BCD a b c d e f g HEX
0 Display
0000 0 0 0 0 0 0 1 01
1 0001 1 0 0 1 1 1 1 4F
2 0010 0 0 1 0 0 1 0 12
Ánodo Común 3 0011 0 0 0 0 1 1 0 06
4 0100 1 0 0 1 1 0 0 4C
5 0101 0 1 0 0 1 0 0 24
6 0110 0 1 0 0 0 0 0 20
7 0111 0 0 0 1 1 1 1 0F
8 1000 0 0 0 0 0 0 0 00
9 1001 0 0 0 1 1 0 0 0C
A 1010 0 0 0 1 0 0 0 08
B 1011 1 1 0 0 0 0 0 60
C 1100 0 1 1 0 0 0 1 31
D 1101 1 0 0 0 0 1 0 42
E 1110 0 0 0 0 1 1 0 06
F 1111 0 1 1 1 0 0 0 38
Display
Display

También podría gustarte