SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
Ingeniero Dagoberto Rodríguez Cedeño Página 1
CONCEPTOS BASICOS DE VHDL
Ingeniero Dagoberto Rodríguez Cedeño
Concepto.
“VHDL” viene “VHSIC Hardware Description Languaje” (Lenguaje de
Descripción de Hardware VHSIC). A su vez VHSIC quiere decir “Very
High Speed Integrated Circuit” (Circuito Integrado de Muy Alta
Velocidad), lo que fue un programa del Departamento de Defensa de
Estados Unidos para estimular la investigación sobre tecnología de CI
de alto rendimiento.
Estructura de programa en VHDL.
ELEMENTOS DE DESCRIPCION DE VHDL.
Bibliotecas (Library): Almacenan los elementos de diseño:
tipo de datos, operadores, componentes, objetos, funciones,...
Esos elementos de diseño se organizan en Paquetes.
Packages: Son unidades de almacenamiento de elementos y
tienen que hacerse “visibles” para poder ser utilizados.
Ingeniero Dagoberto Rodríguez Cedeño Página 2
Hay 2 bibliotecas que siempre son visibles por defecto: std (la
standard) y work (la de trabajo) y que no es necesario declarar.
Entidades (Entity): Es el modelo de interfaz de un circuito con
el exterior mediante unos terminales de entrada y de salida. Es
la caja negra que define las entradas y salidas.
Arquitectura (Architecture): Describe el funcionamiento del
circuito.
SINTAXIS DECLARACION DE ENTIDAD:
Ingeniero Dagoberto Rodríguez Cedeño Página 3
Caja negra:
Puertos de una entidad (Modo de la dirección de la
señal):
Modo Descripción
IN En este modo las señales solo entran en la entidad
OUT Las señales salen de la entidad
BUFFER
Este modo se utiliza para las señales que además de salir de la entidad
pueden usarse como entradas realimentadas
INOUT
Este modo se utiliza para señales bidireccionales. Se emplea en salida con
tres estados. Se puede asignar como sustituto de los tres modos
anteriores, pero no se aconseja pues dificulta la comprensión del
programa.
Ingeniero Dagoberto Rodríguez Cedeño Página 4
SINTAXIS DECLARACION DE ARQUITECTURA:
Librerías:
Una librería es una colección de piezas de código usualmente
empleadas. Esto permite poder reusar esas piezas ó compartirlas con
otros diseños.
Sintáxis:
LIBRARY <nombre de la librería>;
USE <nombre de un package>;
Ejemplos:
LIBRARY ieee;
USE ieee.std_logic_1164;
El código es escrito en forma de Funciones (Functions), Procesos
(Process), Procedimientos (Procedures) ó Componentes
(Components) y luego ubicados dentro de Paquetes (Packages) para
ser compilados dentro de la Librería destino.
Ingeniero Dagoberto Rodríguez Cedeño Página 5
Librerías más comunes del paquete VHDL actualizado
en 1993:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;
USE ieee.std_logic_signed.all;
USE ieee.std_logic_unsigned.all;
LIBRARY std;
Librería que no requiere ser declarada en un diseño.
Contiene declaraciones de tipos de datos y funciones de entrada-
salida de texto entre otros.
USE std.standard.all;
USE std.texto.all;
Standard: donde se definen los tipos lógicos y numéricos básicos.
TEXTO: Define tipos para la creación de texto y procedimientos para
el ingreso e impresión de textos.
LIBRARY work;
USE work.all;
Librería que no requiere ser declarada en un diseño.
Es donde se salvan todos los archivos relacionados con el diseño en
curso (creados por el compilador, simulador, etc.).
USE ieee.std_logic_1164:
Especifica el STD_LOGIC (8 niveles) y el STD_ULOGIC (9 niveles)
para sistemas lógicos multinivel.
De todos estos niveles sólo 3 son sintetizables sin restricciones; el
resto sirven para simulación.
USE ieee.std_logic_arith:
Especifica tipos de datos con y sin signo, operaciones aritméticas y de
comparación numérica y funciones para conversión de datos.
Ingeniero Dagoberto Rodríguez Cedeño Página 6
USE ieee.std_logic_signed:
Permite operaciones con signo con datos tipo STD_LOGIC_VECTOR.
USE ieee.std_logic_unsigned:
Permite operaciones sin signo con datos tipo STD_LOGIC_VECTOR.
Sintaxis definición de paquete.
PACKAGE nombre_paquete IS
Declaración de tipos
Declaración de señales.
Declaración de constantes
Declaración de componentes
Definición de funciones
Definición de procedimientos
END nombre_paquete
PACKAGE BODY nombre_paquete IS
Declaración de tipos
Declaración de constantes
Definición de funciones
Definición de procedimientos
END nombre_paquete
Sintaxis de una declaración de componente.
COMPONENT nombre_componente
PORT (Nombre de señal: modo tipo de señal;
...
Nombre de señal: modo tipo de señal);
END COMPONENT;
Tipo de señal:
TIPO Características
BIT En este tipo las señales solo toman los valores de "1" y "0"
Booleana En este tipo las señales solo toman los valores de True y False
Std_logic
En este tipo las señales toman 9 valores, entre ellos tenemos:
"1", "0", "Z" (para el 3er estado), "-" (para los opcionales).
Integer
En este tipo las señales toman valores enteros. Los 1 y los 0
se escriben sin “
Ingeniero Dagoberto Rodríguez Cedeño Página 7
Bit_Vector
En este tipo los valores de las señales son una cadena de unos
y ceros. Ejemplo: “1000”
Std_Logic_Vector
En este tipo los valores de las señales son una cadena de los
nueve valores permisibles para el tipo std_logic.
Character
Contiene todos los caracteres ISO de 8 bits, donde los
primeros 128 son los caracteres ASCII.
Literales:
Enteros.
Punto flotante.
Literales físicos (ejemplo ns).
Bases (ejemplo 2#1011#, 8#17#, 16#9FD#).
Caracteres ASCII (ejemplo `M´, `5´).
Cadena de caracteres (ejemplo: “esto es un string”).
Otros.
Constantes, variables y señales:
Constantes (ejemplo: CONSTANT retardo: tiem:=3ns;)
Variables: Locales en un proceso. No salen del entorno de
declaración en procesos ó subprogramas. Son ejecutadas
secuencialmente.
Señales: Se modifican mediante sentencias de asignación pero no se
hace efectivo hasta que todos losprocesos terminan. Son de uso
global.
Operadores:
Lógicos: AND, OR, NAND, NOR, XOR, XNOR, NOT para tipos BIT,
BOOLEAN y arrays de ellos.
Relacionales: =, /=, <, <=, >, >= donde los operandos deben ser
del mismo tipo y el resultado es BOOLEAN.
Shift: SLL, SRL, SLA, SRA, ROL, ROR donde el operando izquierdo
debe ser BIT ó BOOLEAN y el derecho INTEGER.
Ingeniero Dagoberto Rodríguez Cedeño Página 8
Suma y resta: + y -.
MULT y DIV: *, /, MOD y REM.
Misceláneos: exponenciación (**) y valor absoluto (ABS).Los
comentarios comienzan con doble línea “--”.
Las sentencias terminan con “;”.
Identificadores:
No hay longitud máxima.
No hay diferencia entre mayúsculas y minúsculas.
Deben empezar con carácter alfabético.
No pueden terminar con underline.
Tipos de descripciones en VHDL:
En HDL se describen en general sucesos inherentemente
concurrentes pues en la arquitectura de una entidad (entre
BEGIN y END) se definen sentencias concurrentes.
Sin embargo en VHDL aparece la noción de PROCESOS (Process),
que si bien describen eventos que se producen como cualquier
sentencia concurrente, son analizados internamente en forma
secuencial para su síntesis y/o simulación.
Es por eso que se encuentran sentencias de asignación propias de
acciones concurrentes y otras exclusivas para procesos secuenciales.
Ejemplos:
Concurrentes: Declaración de señales. Sentencias: WHEN..ELSE,
PROCESS, etc.
Secuenciales: Declaración de variables. Sentencias: IF..THEN..ELSE,
CASE, DO…WHILE, WHILE, FOR, etc.
Ambas: Asignación a señales, declaración de tipos y constantes,
sentencia ASSERT, retardos (AFTER), etc.
Ingeniero Dagoberto Rodríguez Cedeño Página 9
TIPOS DE DISEÑO EN VHDL ESTRUCTURAL:
En forma similar a las herramientas de diseño que trabajan con
lenguajes de NETLIST, VHDL puede ser utilizado para diseñar ó
simular un sistema digital, especificando por un lado sus
componentes y por el otro sus interconexiones.
POR COMPORTAMIENTO (ó FUNCIONAL):
VHDL puede ser usado para diseñar un sistema digital, describiendo
el comportamiento del mismo a través de dos formas diferentes:
“algorítmica” y por “flujo de datos”.
Esta modalidad es muy utilizada en procesos de simulación ya
que permite simular un sistema sin necesidad de conocer su
estructura interna.
DISEÑO ESTRUCTURAL
Es una forma de diseñar instanciando subcomponentes que realizan
operaciones mas pequeñas del modelo completo.
Ejemplo:
Diseño del mismo mux 4:1 pero con una descripción “estructural”
de la arquitectura que ahora denominaremos “netlist”.
La misma está formada por compuertas de tres tipos diferentes
(andgate, inverter y orgate) interconectadas convenientemente.
Cada tipo de compuerta está especificado como un COMPONENTE
diferente.
“andgate” es de 3 puertos de entrada y uno de salida.
“orgate” es de 4 puertos de entrada y uno de salida.
“inverter” es de un puerto de entrada y uno de salida.
La forma de describir que hace cada compuertas está en la sección:
BEGIN ..... END de la estructura “netlist”;
Ingeniero Dagoberto Rodríguez Cedeño Página 10
ARCHITECTURE netlist OF mux IS
COMPONENT andgate
PORT(a, b, c, : IN BIT; c : OUT BIT);
END COMPONENT;
COMPONENT inverter
PORT(in1 : IN BIT; x : OUT BIT);
END COMPONENT;
COMPONENT orgate
PORT(a, b, c, d : IN BIT; x : OUT BIT);
END COMPONENT;
SIGNAL s0_inv, s1_inv, x1, x2, x3, x4 : BIT;
BEGIN
U1 : inverter (s0, s0_inv);
U2 : inverter (s1, s1_inv);
U3 : andgate(a, s0_inv, s1_inv, x1);
U4 : andgate(b, s0, s1_inv, x2);
U5 : andgate(c, s0_inv, s1_inv, x3);
U6 : andgate(d, s0_inv, s1_inv, x4);
U7 : orgate(x2 => b, x1 => a, x4 => d, x3 => c, x => z);
END netlist;
DISEÑO ALGORÍTMICO
Otra forma de describir la funcionalidad de un dispositivo es la de
hacerlo algorítmicamente dentro de una sentencia “PROCESS”.
La sentencia PROCESS consta de una serie de partes:
La primera es la lista de sensibilidad.
La segunda la declarativa
La tercera es la de statement. Comienza en “BEGIN”.... .
Ingeniero Dagoberto Rodríguez Cedeño Página 11
Ejemplo:
Diseño del mismo multiplexor “mux2” en una arquitectura ahora
denominada “secuencial” donde la misma contiene sólo una sentencia
“PROCESS....END PROCESS”.
(a, b, c, d, s0, s1) es la lista de sensibilidad.
“sel” es una variable local que se declara (similar a NODE en AHDL).
La ejecución de la sentencia PROCESS comienza en “BEGIN” y
termina en “END PROCESS”.
En esta sección se han utilizado las funciones “IF” y “CASE” para
describir el comportamiento del multiplexor.
Ingeniero Dagoberto Rodríguez Cedeño Página 12
DISEÑO POR FLUJO DE DATOS
Ejemplo de compuerta AND de 2 entradas
Declaración de arreglo y matrices:
Arreglos:
type word is array(31 downto 0) of bit;
Word (2) es el dato que se encuentre en las posición con índice 2
Matrices:
type memoria is array (0 to 7, 0 to 63) of bit;
Ingeniero Dagoberto Rodríguez Cedeño Página 13
Sintaxis: If, Case, For, While, Do…While
If:
if (<constant_expression>)
begin : <if_block_name>
// Generate Items
end
// If-Else
if(<constant_expression>)
begin : <if_block_name>
// Generate Items
end
else
begin : <else_block_name>
// Generate Items
end
Case:
case <expression> is
when <constant_expression> =>
-- Sequential Statement(s)
when <constant_expression> =>
-- Sequential Statement(s)
when others =>
-- Sequential Statement(s)
end case;
Ingeniero Dagoberto Rodríguez Cedeño Página 14
For:
For (<genvar_id> = <constant_expr>; <constant_expr>;
<genvar_id> = <constant_expr>)
begin : <required_block_name>
// Generate Items
End
While:
while(<expression>)
begin
// Statements
end
Do…While:
do
begin
// Statements
end
while(<expression>);
Herramientas:
• Warp
• Altera
• Xilinx
• ActiveVHDL
• GHDL (GNU)
• Max+Plus II
• Quartus II
• ModelSim/ISE
• Otros programas están incluyendo en sus últimas versiones la
capacidad de programar FPGA usando sus propios lenguajes,
pero también incluyen módulos en VHDL, por ejemplo Protel
DXP, Labview o Matlab.
Ingeniero Dagoberto Rodríguez Cedeño Página 15
BIBLIOGRAFIA:
1. Roth, Charles H. Fundamentos de Diseño Lógico. Ed. Thomson.
2. John F. Wakerly, Diseño digital, principios y prácticas
3. www.altera.com
4. Uyemura, John P. Introducción al Diseño de Sistemas Digitales. Ed.
Thomson.

Más contenido relacionado

La actualidad más candente

Amplificador en Base Comun y Colector Comun
Amplificador en Base Comun y Colector ComunAmplificador en Base Comun y Colector Comun
Amplificador en Base Comun y Colector Comuniscped
 
DETERMINACIÓN DE LA TRANSFORMADA DE LAPLACE EN CIRCUITOS (RCL) DEPENDIENTES D...
DETERMINACIÓN DE LA TRANSFORMADA DE LAPLACE EN CIRCUITOS (RCL) DEPENDIENTES D...DETERMINACIÓN DE LA TRANSFORMADA DE LAPLACE EN CIRCUITOS (RCL) DEPENDIENTES D...
DETERMINACIÓN DE LA TRANSFORMADA DE LAPLACE EN CIRCUITOS (RCL) DEPENDIENTES D...Anthony K. Floreano Alfaro
 
Modulación digital con portadora análoga
Modulación digital con portadora análogaModulación digital con portadora análoga
Modulación digital con portadora análogaJoaquin Vicioso
 
4.TDM Multiplexacion por division de tiempo
4.TDM Multiplexacion por division de tiempo4.TDM Multiplexacion por division de tiempo
4.TDM Multiplexacion por division de tiempoEdison Coimbra G.
 
Ejercicios resueltos y_propuestos_adc_da
Ejercicios resueltos y_propuestos_adc_daEjercicios resueltos y_propuestos_adc_da
Ejercicios resueltos y_propuestos_adc_daCesar Gil Arrieta
 
Fuente regulada
Fuente reguladaFuente regulada
Fuente reguladabeto938
 
Aplicaciones del Circuito TTL
Aplicaciones del Circuito TTLAplicaciones del Circuito TTL
Aplicaciones del Circuito TTLIvan Nietø
 
Fuente de alimentación simétrica regulada y variable
Fuente de alimentación simétrica regulada y variableFuente de alimentación simétrica regulada y variable
Fuente de alimentación simétrica regulada y variableDulce
 
Transmisor Fm indirecto-de-armstrong
Transmisor Fm indirecto-de-armstrongTransmisor Fm indirecto-de-armstrong
Transmisor Fm indirecto-de-armstrongJose Carlos Oñate
 

La actualidad más candente (20)

Amplificador en Base Comun y Colector Comun
Amplificador en Base Comun y Colector ComunAmplificador en Base Comun y Colector Comun
Amplificador en Base Comun y Colector Comun
 
MUX-DEMUX 2 a 1
MUX-DEMUX 2 a 1MUX-DEMUX 2 a 1
MUX-DEMUX 2 a 1
 
Conexión darlington transistor
Conexión darlington transistorConexión darlington transistor
Conexión darlington transistor
 
Practica Amplificador clase AB
Practica Amplificador clase ABPractica Amplificador clase AB
Practica Amplificador clase AB
 
Ac ac monofasicos
Ac ac monofasicosAc ac monofasicos
Ac ac monofasicos
 
DETERMINACIÓN DE LA TRANSFORMADA DE LAPLACE EN CIRCUITOS (RCL) DEPENDIENTES D...
DETERMINACIÓN DE LA TRANSFORMADA DE LAPLACE EN CIRCUITOS (RCL) DEPENDIENTES D...DETERMINACIÓN DE LA TRANSFORMADA DE LAPLACE EN CIRCUITOS (RCL) DEPENDIENTES D...
DETERMINACIÓN DE LA TRANSFORMADA DE LAPLACE EN CIRCUITOS (RCL) DEPENDIENTES D...
 
3.4. Configuración en Emisor Común
3.4. Configuración en Emisor Común3.4. Configuración en Emisor Común
3.4. Configuración en Emisor Común
 
Resonancia en paralelo
Resonancia en paraleloResonancia en paralelo
Resonancia en paralelo
 
Modulación digital con portadora análoga
Modulación digital con portadora análogaModulación digital con portadora análoga
Modulación digital con portadora análoga
 
4.TDM Multiplexacion por division de tiempo
4.TDM Multiplexacion por division de tiempo4.TDM Multiplexacion por division de tiempo
4.TDM Multiplexacion por division de tiempo
 
íNdice de modulación
íNdice de modulacióníNdice de modulación
íNdice de modulación
 
Ejercicios resueltos y_propuestos_adc_da
Ejercicios resueltos y_propuestos_adc_daEjercicios resueltos y_propuestos_adc_da
Ejercicios resueltos y_propuestos_adc_da
 
Fuente regulada
Fuente reguladaFuente regulada
Fuente regulada
 
practica2completa
practica2completapractica2completa
practica2completa
 
Circuitos secuenciales
Circuitos secuencialesCircuitos secuenciales
Circuitos secuenciales
 
Aplicaciones del Circuito TTL
Aplicaciones del Circuito TTLAplicaciones del Circuito TTL
Aplicaciones del Circuito TTL
 
Fuente de alimentación simétrica regulada y variable
Fuente de alimentación simétrica regulada y variableFuente de alimentación simétrica regulada y variable
Fuente de alimentación simétrica regulada y variable
 
Circuitos disparo
Circuitos disparoCircuitos disparo
Circuitos disparo
 
Transmisor Fm indirecto-de-armstrong
Transmisor Fm indirecto-de-armstrongTransmisor Fm indirecto-de-armstrong
Transmisor Fm indirecto-de-armstrong
 
8 2 convertidor-analogico_-digital
8 2 convertidor-analogico_-digital8 2 convertidor-analogico_-digital
8 2 convertidor-analogico_-digital
 

Similar a Conceptos basicos de_vhdl

Electrónica digital: lógica programable VHDL parte 2
Electrónica digital: lógica programable VHDL parte 2Electrónica digital: lógica programable VHDL parte 2
Electrónica digital: lógica programable VHDL parte 2SANTIAGO PABLO ALBERTO
 
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
 
Introduccción a VHDL por https://vhdl.es
Introduccción a VHDL por https://vhdl.esIntroduccción a VHDL por https://vhdl.es
Introduccción a VHDL por https://vhdl.esJavier Castillo
 
FaMAF - Clase Vhdl LeccióN 02
FaMAF - Clase Vhdl LeccióN 02FaMAF - Clase Vhdl LeccióN 02
FaMAF - Clase Vhdl LeccióN 02guest4b46762
 
Programacion PLD
Programacion PLDProgramacion PLD
Programacion PLDdavic_exe
 
Electrónica digital: introducción al lenguaje de descripción hardware VHDL
Electrónica digital: introducción al lenguaje de descripción hardware VHDLElectrónica digital: introducción al lenguaje de descripción hardware VHDL
Electrónica digital: introducción al lenguaje de descripción hardware VHDLSANTIAGO PABLO ALBERTO
 
⭐⭐⭐⭐⭐ PRÁCTICA: RESOLUCIÓN DE CIRCUITOS COMBINATORIALES CON VHDL
⭐⭐⭐⭐⭐ PRÁCTICA: RESOLUCIÓN DE CIRCUITOS COMBINATORIALES CON VHDL⭐⭐⭐⭐⭐ PRÁCTICA: RESOLUCIÓN DE CIRCUITOS COMBINATORIALES CON VHDL
⭐⭐⭐⭐⭐ PRÁCTICA: RESOLUCIÓN DE CIRCUITOS COMBINATORIALES CON VHDLVictor Asanza
 
Informe tecnico u4 final
Informe tecnico u4 finalInforme tecnico u4 final
Informe tecnico u4 finalIrving Che
 
Elementos basicos de_programacion
Elementos basicos de_programacionElementos basicos de_programacion
Elementos basicos de_programacionthaynasantos1997
 
Vhdl organización y arquitectura
Vhdl organización y arquitectura Vhdl organización y arquitectura
Vhdl organización y arquitectura Juan S V
 
Fgl029 guiano2arquitecturasvhdl (1)
Fgl029 guiano2arquitecturasvhdl (1)Fgl029 guiano2arquitecturasvhdl (1)
Fgl029 guiano2arquitecturasvhdl (1)Alveiro2
 

Similar a Conceptos basicos de_vhdl (20)

Electrónica digital: lógica programable VHDL parte 2
Electrónica digital: lógica programable VHDL parte 2Electrónica digital: lógica programable VHDL parte 2
Electrónica digital: lógica programable VHDL parte 2
 
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
 
Introduccción a VHDL por https://vhdl.es
Introduccción a VHDL por https://vhdl.esIntroduccción a VHDL por https://vhdl.es
Introduccción a VHDL por https://vhdl.es
 
FaMAF - Clase Vhdl LeccióN 02
FaMAF - Clase Vhdl LeccióN 02FaMAF - Clase Vhdl LeccióN 02
FaMAF - Clase Vhdl LeccióN 02
 
IDLconVHDL2010.pdf
IDLconVHDL2010.pdfIDLconVHDL2010.pdf
IDLconVHDL2010.pdf
 
Sd3
Sd3Sd3
Sd3
 
VHDL - Presentacion Brayan.pptx
VHDL - Presentacion Brayan.pptxVHDL - Presentacion Brayan.pptx
VHDL - Presentacion Brayan.pptx
 
4.v h d l
4.v h d l4.v h d l
4.v h d l
 
Programacion PLD
Programacion PLDProgramacion PLD
Programacion PLD
 
Electrónica digital: introducción al lenguaje de descripción hardware VHDL
Electrónica digital: introducción al lenguaje de descripción hardware VHDLElectrónica digital: introducción al lenguaje de descripción hardware VHDL
Electrónica digital: introducción al lenguaje de descripción hardware VHDL
 
Pascal
PascalPascal
Pascal
 
⭐⭐⭐⭐⭐ PRÁCTICA: RESOLUCIÓN DE CIRCUITOS COMBINATORIALES CON VHDL
⭐⭐⭐⭐⭐ PRÁCTICA: RESOLUCIÓN DE CIRCUITOS COMBINATORIALES CON VHDL⭐⭐⭐⭐⭐ PRÁCTICA: RESOLUCIÓN DE CIRCUITOS COMBINATORIALES CON VHDL
⭐⭐⭐⭐⭐ PRÁCTICA: RESOLUCIÓN DE CIRCUITOS COMBINATORIALES CON VHDL
 
ELEMENTOS DE PROGRA 30-05.pdf
ELEMENTOS DE PROGRA 30-05.pdfELEMENTOS DE PROGRA 30-05.pdf
ELEMENTOS DE PROGRA 30-05.pdf
 
Informe tecnico u4 final
Informe tecnico u4 finalInforme tecnico u4 final
Informe tecnico u4 final
 
Elementos basicos de_programacion
Elementos basicos de_programacionElementos basicos de_programacion
Elementos basicos de_programacion
 
01-VHDL-ALuca.ppt
01-VHDL-ALuca.ppt01-VHDL-ALuca.ppt
01-VHDL-ALuca.ppt
 
Vhdl organización y arquitectura
Vhdl organización y arquitectura Vhdl organización y arquitectura
Vhdl organización y arquitectura
 
Fgl029 guiano2arquitecturasvhdl (1)
Fgl029 guiano2arquitecturasvhdl (1)Fgl029 guiano2arquitecturasvhdl (1)
Fgl029 guiano2arquitecturasvhdl (1)
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 

Último

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 

Último (16)

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 

Conceptos basicos de_vhdl

  • 1. Ingeniero Dagoberto Rodríguez Cedeño Página 1 CONCEPTOS BASICOS DE VHDL Ingeniero Dagoberto Rodríguez Cedeño Concepto. “VHDL” viene “VHSIC Hardware Description Languaje” (Lenguaje de Descripción de Hardware VHSIC). A su vez VHSIC quiere decir “Very High Speed Integrated Circuit” (Circuito Integrado de Muy Alta Velocidad), lo que fue un programa del Departamento de Defensa de Estados Unidos para estimular la investigación sobre tecnología de CI de alto rendimiento. Estructura de programa en VHDL. ELEMENTOS DE DESCRIPCION DE VHDL. Bibliotecas (Library): Almacenan los elementos de diseño: tipo de datos, operadores, componentes, objetos, funciones,... Esos elementos de diseño se organizan en Paquetes. Packages: Son unidades de almacenamiento de elementos y tienen que hacerse “visibles” para poder ser utilizados.
  • 2. Ingeniero Dagoberto Rodríguez Cedeño Página 2 Hay 2 bibliotecas que siempre son visibles por defecto: std (la standard) y work (la de trabajo) y que no es necesario declarar. Entidades (Entity): Es el modelo de interfaz de un circuito con el exterior mediante unos terminales de entrada y de salida. Es la caja negra que define las entradas y salidas. Arquitectura (Architecture): Describe el funcionamiento del circuito. SINTAXIS DECLARACION DE ENTIDAD:
  • 3. Ingeniero Dagoberto Rodríguez Cedeño Página 3 Caja negra: Puertos de una entidad (Modo de la dirección de la señal): Modo Descripción IN En este modo las señales solo entran en la entidad OUT Las señales salen de la entidad BUFFER Este modo se utiliza para las señales que además de salir de la entidad pueden usarse como entradas realimentadas INOUT Este modo se utiliza para señales bidireccionales. Se emplea en salida con tres estados. Se puede asignar como sustituto de los tres modos anteriores, pero no se aconseja pues dificulta la comprensión del programa.
  • 4. Ingeniero Dagoberto Rodríguez Cedeño Página 4 SINTAXIS DECLARACION DE ARQUITECTURA: Librerías: Una librería es una colección de piezas de código usualmente empleadas. Esto permite poder reusar esas piezas ó compartirlas con otros diseños. Sintáxis: LIBRARY <nombre de la librería>; USE <nombre de un package>; Ejemplos: LIBRARY ieee; USE ieee.std_logic_1164; El código es escrito en forma de Funciones (Functions), Procesos (Process), Procedimientos (Procedures) ó Componentes (Components) y luego ubicados dentro de Paquetes (Packages) para ser compilados dentro de la Librería destino.
  • 5. Ingeniero Dagoberto Rodríguez Cedeño Página 5 Librerías más comunes del paquete VHDL actualizado en 1993: LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all; USE ieee.std_logic_signed.all; USE ieee.std_logic_unsigned.all; LIBRARY std; Librería que no requiere ser declarada en un diseño. Contiene declaraciones de tipos de datos y funciones de entrada- salida de texto entre otros. USE std.standard.all; USE std.texto.all; Standard: donde se definen los tipos lógicos y numéricos básicos. TEXTO: Define tipos para la creación de texto y procedimientos para el ingreso e impresión de textos. LIBRARY work; USE work.all; Librería que no requiere ser declarada en un diseño. Es donde se salvan todos los archivos relacionados con el diseño en curso (creados por el compilador, simulador, etc.). USE ieee.std_logic_1164: Especifica el STD_LOGIC (8 niveles) y el STD_ULOGIC (9 niveles) para sistemas lógicos multinivel. De todos estos niveles sólo 3 son sintetizables sin restricciones; el resto sirven para simulación. USE ieee.std_logic_arith: Especifica tipos de datos con y sin signo, operaciones aritméticas y de comparación numérica y funciones para conversión de datos.
  • 6. Ingeniero Dagoberto Rodríguez Cedeño Página 6 USE ieee.std_logic_signed: Permite operaciones con signo con datos tipo STD_LOGIC_VECTOR. USE ieee.std_logic_unsigned: Permite operaciones sin signo con datos tipo STD_LOGIC_VECTOR. Sintaxis definición de paquete. PACKAGE nombre_paquete IS Declaración de tipos Declaración de señales. Declaración de constantes Declaración de componentes Definición de funciones Definición de procedimientos END nombre_paquete PACKAGE BODY nombre_paquete IS Declaración de tipos Declaración de constantes Definición de funciones Definición de procedimientos END nombre_paquete Sintaxis de una declaración de componente. COMPONENT nombre_componente PORT (Nombre de señal: modo tipo de señal; ... Nombre de señal: modo tipo de señal); END COMPONENT; Tipo de señal: TIPO Características BIT En este tipo las señales solo toman los valores de "1" y "0" Booleana En este tipo las señales solo toman los valores de True y False Std_logic En este tipo las señales toman 9 valores, entre ellos tenemos: "1", "0", "Z" (para el 3er estado), "-" (para los opcionales). Integer En este tipo las señales toman valores enteros. Los 1 y los 0 se escriben sin “
  • 7. Ingeniero Dagoberto Rodríguez Cedeño Página 7 Bit_Vector En este tipo los valores de las señales son una cadena de unos y ceros. Ejemplo: “1000” Std_Logic_Vector En este tipo los valores de las señales son una cadena de los nueve valores permisibles para el tipo std_logic. Character Contiene todos los caracteres ISO de 8 bits, donde los primeros 128 son los caracteres ASCII. Literales: Enteros. Punto flotante. Literales físicos (ejemplo ns). Bases (ejemplo 2#1011#, 8#17#, 16#9FD#). Caracteres ASCII (ejemplo `M´, `5´). Cadena de caracteres (ejemplo: “esto es un string”). Otros. Constantes, variables y señales: Constantes (ejemplo: CONSTANT retardo: tiem:=3ns;) Variables: Locales en un proceso. No salen del entorno de declaración en procesos ó subprogramas. Son ejecutadas secuencialmente. Señales: Se modifican mediante sentencias de asignación pero no se hace efectivo hasta que todos losprocesos terminan. Son de uso global. Operadores: Lógicos: AND, OR, NAND, NOR, XOR, XNOR, NOT para tipos BIT, BOOLEAN y arrays de ellos. Relacionales: =, /=, <, <=, >, >= donde los operandos deben ser del mismo tipo y el resultado es BOOLEAN. Shift: SLL, SRL, SLA, SRA, ROL, ROR donde el operando izquierdo debe ser BIT ó BOOLEAN y el derecho INTEGER.
  • 8. Ingeniero Dagoberto Rodríguez Cedeño Página 8 Suma y resta: + y -. MULT y DIV: *, /, MOD y REM. Misceláneos: exponenciación (**) y valor absoluto (ABS).Los comentarios comienzan con doble línea “--”. Las sentencias terminan con “;”. Identificadores: No hay longitud máxima. No hay diferencia entre mayúsculas y minúsculas. Deben empezar con carácter alfabético. No pueden terminar con underline. Tipos de descripciones en VHDL: En HDL se describen en general sucesos inherentemente concurrentes pues en la arquitectura de una entidad (entre BEGIN y END) se definen sentencias concurrentes. Sin embargo en VHDL aparece la noción de PROCESOS (Process), que si bien describen eventos que se producen como cualquier sentencia concurrente, son analizados internamente en forma secuencial para su síntesis y/o simulación. Es por eso que se encuentran sentencias de asignación propias de acciones concurrentes y otras exclusivas para procesos secuenciales. Ejemplos: Concurrentes: Declaración de señales. Sentencias: WHEN..ELSE, PROCESS, etc. Secuenciales: Declaración de variables. Sentencias: IF..THEN..ELSE, CASE, DO…WHILE, WHILE, FOR, etc. Ambas: Asignación a señales, declaración de tipos y constantes, sentencia ASSERT, retardos (AFTER), etc.
  • 9. Ingeniero Dagoberto Rodríguez Cedeño Página 9 TIPOS DE DISEÑO EN VHDL ESTRUCTURAL: En forma similar a las herramientas de diseño que trabajan con lenguajes de NETLIST, VHDL puede ser utilizado para diseñar ó simular un sistema digital, especificando por un lado sus componentes y por el otro sus interconexiones. POR COMPORTAMIENTO (ó FUNCIONAL): VHDL puede ser usado para diseñar un sistema digital, describiendo el comportamiento del mismo a través de dos formas diferentes: “algorítmica” y por “flujo de datos”. Esta modalidad es muy utilizada en procesos de simulación ya que permite simular un sistema sin necesidad de conocer su estructura interna. DISEÑO ESTRUCTURAL Es una forma de diseñar instanciando subcomponentes que realizan operaciones mas pequeñas del modelo completo. Ejemplo: Diseño del mismo mux 4:1 pero con una descripción “estructural” de la arquitectura que ahora denominaremos “netlist”. La misma está formada por compuertas de tres tipos diferentes (andgate, inverter y orgate) interconectadas convenientemente. Cada tipo de compuerta está especificado como un COMPONENTE diferente. “andgate” es de 3 puertos de entrada y uno de salida. “orgate” es de 4 puertos de entrada y uno de salida. “inverter” es de un puerto de entrada y uno de salida. La forma de describir que hace cada compuertas está en la sección: BEGIN ..... END de la estructura “netlist”;
  • 10. Ingeniero Dagoberto Rodríguez Cedeño Página 10 ARCHITECTURE netlist OF mux IS COMPONENT andgate PORT(a, b, c, : IN BIT; c : OUT BIT); END COMPONENT; COMPONENT inverter PORT(in1 : IN BIT; x : OUT BIT); END COMPONENT; COMPONENT orgate PORT(a, b, c, d : IN BIT; x : OUT BIT); END COMPONENT; SIGNAL s0_inv, s1_inv, x1, x2, x3, x4 : BIT; BEGIN U1 : inverter (s0, s0_inv); U2 : inverter (s1, s1_inv); U3 : andgate(a, s0_inv, s1_inv, x1); U4 : andgate(b, s0, s1_inv, x2); U5 : andgate(c, s0_inv, s1_inv, x3); U6 : andgate(d, s0_inv, s1_inv, x4); U7 : orgate(x2 => b, x1 => a, x4 => d, x3 => c, x => z); END netlist; DISEÑO ALGORÍTMICO Otra forma de describir la funcionalidad de un dispositivo es la de hacerlo algorítmicamente dentro de una sentencia “PROCESS”. La sentencia PROCESS consta de una serie de partes: La primera es la lista de sensibilidad. La segunda la declarativa La tercera es la de statement. Comienza en “BEGIN”.... .
  • 11. Ingeniero Dagoberto Rodríguez Cedeño Página 11 Ejemplo: Diseño del mismo multiplexor “mux2” en una arquitectura ahora denominada “secuencial” donde la misma contiene sólo una sentencia “PROCESS....END PROCESS”. (a, b, c, d, s0, s1) es la lista de sensibilidad. “sel” es una variable local que se declara (similar a NODE en AHDL). La ejecución de la sentencia PROCESS comienza en “BEGIN” y termina en “END PROCESS”. En esta sección se han utilizado las funciones “IF” y “CASE” para describir el comportamiento del multiplexor.
  • 12. Ingeniero Dagoberto Rodríguez Cedeño Página 12 DISEÑO POR FLUJO DE DATOS Ejemplo de compuerta AND de 2 entradas Declaración de arreglo y matrices: Arreglos: type word is array(31 downto 0) of bit; Word (2) es el dato que se encuentre en las posición con índice 2 Matrices: type memoria is array (0 to 7, 0 to 63) of bit;
  • 13. Ingeniero Dagoberto Rodríguez Cedeño Página 13 Sintaxis: If, Case, For, While, Do…While If: if (<constant_expression>) begin : <if_block_name> // Generate Items end // If-Else if(<constant_expression>) begin : <if_block_name> // Generate Items end else begin : <else_block_name> // Generate Items end Case: case <expression> is when <constant_expression> => -- Sequential Statement(s) when <constant_expression> => -- Sequential Statement(s) when others => -- Sequential Statement(s) end case;
  • 14. Ingeniero Dagoberto Rodríguez Cedeño Página 14 For: For (<genvar_id> = <constant_expr>; <constant_expr>; <genvar_id> = <constant_expr>) begin : <required_block_name> // Generate Items End While: while(<expression>) begin // Statements end Do…While: do begin // Statements end while(<expression>); Herramientas: • Warp • Altera • Xilinx • ActiveVHDL • GHDL (GNU) • Max+Plus II • Quartus II • ModelSim/ISE • Otros programas están incluyendo en sus últimas versiones la capacidad de programar FPGA usando sus propios lenguajes, pero también incluyen módulos en VHDL, por ejemplo Protel DXP, Labview o Matlab.
  • 15. Ingeniero Dagoberto Rodríguez Cedeño Página 15 BIBLIOGRAFIA: 1. Roth, Charles H. Fundamentos de Diseño Lógico. Ed. Thomson. 2. John F. Wakerly, Diseño digital, principios y prácticas 3. www.altera.com 4. Uyemura, John P. Introducción al Diseño de Sistemas Digitales. Ed. Thomson.