SlideShare una empresa de Scribd logo
Introducción a 
VHDL 
¿ Qué es VHDL ? 
¿ Qué es FPGA ? 
¿ Qué significa PLD ? 
¿ Qué es un HDL ? 
¿ Cuál es la estructura básica de un diseño 
Edmundo Barajas Ramírez 1 
en VHDL ?
Estilos de Descripción 
Según el nivel de Abstracción: 
 Flujo de datos entre registros RTL. 
 Comportamiento ( Behavior ). 
Edmundo Barajas Ramírez 2 
 Estructural.
Modelado de Flujo de Datos RTL 
(Register Transfer Level) 
 Se hace uso de los operadores predefinidos 
en las bibliotecas estándar del lenguaje y se 
describe por medio de asignaciones como 
establece el flujo de datos entre señales y 
puertos del circuito. 
Edmundo Barajas Ramírez 3
Modelado de Comportamiento 
 En la descripción por comportamiento se 
define el funcionamiento del circuito a través 
de algoritmos, se usan declaraciones de 
mayor nivel de abstracción como IF THEN, 
ELSIF, CASE THEN. Las funciones lógicas 
a implementar quedan definidas por la 
calidad de herramientas de síntesis. 
Edmundo Barajas Ramírez 4
Modelado Estructural 
 Se utilizan componentes previamente 
compilados y se interconectan entre si. (el 
diseñador tiene mas control de la lógica que 
se implementa). 
 La forma del código se asemeja a un “net-list” 
de un diagrama esquemático. 
Edmundo Barajas Ramírez 5
Tipos de Datos 
 VHDL ofrece los objetos tipo BIT_VECTOR 
-- arreglos de bit´s para definir “buses”: 
a : OUT BIT_VECTOR(7 DOWNTO 0); 
b : IN BIT_VECTOR( 0 TO 3); 
Edmundo Barajas Ramírez 6
Tipos de Datos 
 Entre vectores se pueden hacer 
asignaciones de uno o varios Bit´s. 
Ejemplos: a = 00001111, b =1011 
a(5) = b(3); 
a = 00101111 
…… 
a(5 DOWTO 3) = b(1 to 3) 
a = 00101111 
Edmundo Barajas Ramírez 7
Tipos MLV (Multi Valued Logic) 
IEEE std_logic_1164.all 
Edmundo Barajas Ramírez 8 
 ‘U’ Un_initialized 
 ‘Z’ High Impedance 
 ‘-’ Don´t-care 
 Strong Drive 
- ’x’ unknow 
- ‘0’ Logic 0 
- ‘1’ Logic 1 
 Week Drive 
- ‘W’ unknow 
- ‘L’ Logic 0 
- ‘H’ Logic 1
El Paradigma de VHDL 
 CONCURRENCIA: Las instrucciones no se 
ejecutan en secuencia como en otros 
lenguajes convencionales. Las instrucciones 
al modelar hardware se ejecutan en 
paralelo, a menos que se programe un 
proceso, el cual es secuencial. 
 X= A OR B; Z= A AND X; 
 Z = A AND X; X= A OR B; 
Edmundo Barajas Ramírez 9
Concurrencia 
 Resultados de Síntesis 
X = A OR B 
Z = X AND C 
Edmundo Barajas Ramírez 10
Concurrencia 
 Resultados de Síntesis 
Edmundo Barajas Ramírez 11 
Z = C AND X 
X = A OR B
Objetos en VHDL 
 Señales: Actuan como conexiones internas 
del circuito entre un componente y otro. 
Sintaxis: SIGNAL nombre: TIPO [ rango ] 
Ejemplos: 
SIGNAL X: BIT; -- para el ejemplo anterior. 
SIGNAL cuenta: BIT_VECTOR(7 DOWNTO 0); 
SIGNAL temp: INTEGER RANGE 0 TO 255; 
Edmundo Barajas Ramírez 12
Objetos en VHDL 
 CONSTANTES: Permiten definir valores 
fijos para facilitar la lectura del código. Solo 
son validas dentro de la unidad de diseño 
que se declaran (Entity, Architecture, 
Process). 
Sintaxis: CONSTANT nombre: TIPO := valor 
Ejemplos: 
CONSTANT tp: TIME := 16 ns; 
CONSTANT v_ini: BIT_VECTOR(1 TO 0):= “10”; 
Edmundo Barajas Ramírez 13
Objetos en VHDL 
Elementos que se manipulan 
 Variables: Solo se utilizan dentro de 
funciones, procedimientos y procesos. Su 
valor actualiza inmediatamente despues de 
la asignación. 
Sintaxis: VARIABLE nombre: TIPO [ rango]; 
Ejemplo: 
VARIABLE cuenta: INTEGER RANGE 0 TO 15; 
Edmundo Barajas Ramírez 14
Sintaxis de asignación a un 
Objeto según su clase 
 Para una señal o puerto: “ = ” 
 Para una constante, variable y valor inicial “ := ” 
 Bit o std_logic: Usar comillas simles ‘x’ 
 Bit_vector o std_logic_vector: Usar comillas 
dobles. Ejemplo: Para un vector de 5 bit’s 
“10011” 
 Enteros: Asignación directa, no usar comillas. 
Edmundo Barajas Ramírez 15
Sintaxis de asignación a un 
Objeto según su clase 
Edmundo Barajas Ramírez 16 
Ejemplos: 
signal a: std_logic; 
signal b: std_logic_vector(5 downto 0); 
signal c: boolean; 
variable e: integer range 0 to 255; 
BEGIN 
a = ‘1’; --usar comillas simples si no es vector 
b = “10111”; --usar comillas dobles se es vector 
c = TRUE; --puede tomar valores FALSE, TRUE 
d := 34; --en enteros no usar comillas
Otros Operadores 
 Operadores de Relación: 
=, /=; --para todos los tipos 
, =, , =; --para todos los tipos escalar y 
--arreglos con rango discreto. 
 Operadores aritméticos: 
+, - (concatenación), *, /, MOD, REM, 
Edmundo Barajas Ramírez 17 
**(exponente).
Especificación 
de la Base 
Edmundo Barajas Ramírez 18 
Para Vectores: 
m= H”D3”; --Hexadecimal 
n = O”234”; --Octal 
p = B”100110”; --Binario 
Para Enteros: 
q = 16#B3#; --Hexadecimal 
r = 10#234#; --Decimal 
s = 2#100111#; --Binario 
Base por defecto: 
t = 187+r; --Decimal, sin comillas
Ejemplo: uso de std_logic 
a b c f 
0 0 0 1 
0 0 1 0 
0 1 0 0 
0 1 1 1 
1 0 0 0 
1 0 1 0 
1 1 0 1 
Edmundo Barajas Ramírez 19 
Entidad 
Prueba 
a 
b 
c 
F(a,b,c) 
1 1 1 1
Ejemplo: uso de std_logic 
--Ejemplo combinacional básico 
library IEEE 
use ieee.std_logic_1164.all 
entity tabla is port ( 
Edmundo Barajas Ramírez 20 
a,b,c: in std_logic; 
f : out std_logic ); 
end tabla; 
architecture ejemplo of tabla is 
begin 
f = ‘1’ when (a=‘0’ and b=‘0’ and c=‘0’) else 
‘1’ when (a=‘0’ and b=‘1’ and c=‘1’) else 
‘1’ when (a=‘1’ and b=‘1’ and c=‘0’) else 
‘1’ when (a=‘1’ and b=‘1’ and c=‘1’) else 
‘0’ ; 
end ejemplo;
Ejercicio: uso de std_logic 
 Una función F depende de cuatro variables 
D,C,B,A donde A es la variable menos 
significativa. La función F adopta el valor de 
uno si el número formado por las cuatro 
variables es inferior o igual a ocho y superior 
a tres. En caso contrario la función F es cero. 
Edmundo Barajas Ramírez 21
Ejercicio: uso de std_logic 
Solución 
Edmundo Barajas Ramírez 22 
library ieee 
Use ieee.std_logic_1164.all 
Entity funcion is port( 
D,C,B,A: in std_logic; 
f : out std_logic); 
End funcion; 
Architecture a_func of funcion is 
Begin 
F = ‘1’ when (D=‘0’ and C=‘0’ and B=‘1’ and A=‘1’) else 
‘1’ when (D=‘0’ and C=‘1’ and B=‘0’ and A=‘0’) else 
‘1’ when (D=‘0’ and C=‘1’ and B=‘0’ and A=‘1’) else 
‘1’ when (D=‘0’ and C=‘1’ and B=‘1’ and A=‘0’) else 
‘1’ when (D=‘0’ and C=‘1’ and B=‘1’ and A=‘1’) else 
‘1’ when (D=‘1’ and C=‘0’ and B=‘0’ and A=‘0’) else 
‘0’ ; 
End a_func;
Declaraciones concurrentes 
asignadas a señales 
 En este tipo de declaración encontramos las 
funciones de salida mediante la ecuación booleana 
que describe el comportamiento de cada una de las 
compuertas. 
Edmundo Barajas Ramírez 23
Declaraciones concurrentes 
asignadas a señales 
Library ieee; 
Use ieee.std_logic_1164.all; 
Entity logic is port( 
a,b,c,d,e,f: in std_logic; 
f : out std_logic); 
End logic; 
Architecture booleana of logic is 
Begin 
x1 = a xor b; 
x2 = (((c and d) or (a xor b)) nand ((e xor f) and 
Edmundo Barajas Ramírez 24 
(c and d))); 
x3 = (e xor f) and (c and d); 
End booleana;
Uso de std_logic_vector 
Library ieee; 
Use ieee.std_logic_1164.all; 
Entity circuito is port( 
a: std_logic_vector (1 downto 0); 
c: out std_logic); 
Architecture arq_cir of circuito is 
Begin 
with a select 
c = ‘1’ when “00”, 
‘0’ when “01”, 
‘1’ when “10”, 
‘0’ when others 
End arq_cir; 
Edmundo Barajas Ramírez 25 
A(0) A(1) C 
0 0 1 
0 1 0 
1 0 1 
1 1 0
Tarea 
 Modelar en VHDL un circuito medio sumador 
 Modelar en VHDL un circuito sumador total 
 Modelar en VHDL un circuito de cuatro 
entradas llamadas num y una salida que 
indique con un ‘1’ si num es primo y un ‘0’ 
cuando no lo es. 
Edmundo Barajas Ramírez 26

Más contenido relacionado

La actualidad más candente

Tipos de dato y expresiones en C++
Tipos de dato y expresiones en C++Tipos de dato y expresiones en C++
Tipos de dato y expresiones en C++
Obmaro García
 
Variables, Constantes y Tipos de datos en C
Variables, Constantes y Tipos de datos en CVariables, Constantes y Tipos de datos en C
Variables, Constantes y Tipos de datos en C
Marvin Romero
 
Lenguaje c (expresiones logicas)
Lenguaje c (expresiones logicas)Lenguaje c (expresiones logicas)
Lenguaje c (expresiones logicas)Eloy Rodriguez
 
Elementos de programacion t1
Elementos de programacion t1Elementos de programacion t1
Elementos de programacion t1
Juan David Sanchez S
 
Operadores y Expresiones
Operadores y ExpresionesOperadores y Expresiones
Operadores y ExpresionesCarlos Pes
 
53692670 arduino-programacion
53692670 arduino-programacion53692670 arduino-programacion
53692670 arduino-programacionCesar Castelo
 
C++ unidad1 semana1
C++ unidad1 semana1C++ unidad1 semana1
C++ unidad1 semana1
winnijbn
 
Informe tecnico u4 final
Informe tecnico u4 finalInforme tecnico u4 final
Informe tecnico u4 final
Irving Che
 
Introduccion a Tablas de Verdad
Introduccion a Tablas de VerdadIntroduccion a Tablas de Verdad
Introduccion a Tablas de Verdad
alipichu
 
Transparencias4
Transparencias4Transparencias4
Transparencias4
karlalopezbello
 
Identificadores, variables y constantes
Identificadores, variables y constantesIdentificadores, variables y constantes
Identificadores, variables y constantes
Carlos Pes
 
Introduccion tablasverdad
Introduccion tablasverdadIntroduccion tablasverdad
Introduccion tablasverdadAlicia Bentos
 
Lenguaje c
Lenguaje cLenguaje c
Programa para calcular valores de resistencias
Programa para calcular valores de resistenciasPrograma para calcular valores de resistencias
Programa para calcular valores de resistenciasUlises Hernandez
 
Javascript - Módulo 4: Booleano, if/else, string, número, DOM, eventos e inte...
Javascript - Módulo 4: Booleano, if/else, string, número, DOM, eventos e inte...Javascript - Módulo 4: Booleano, if/else, string, número, DOM, eventos e inte...
Javascript - Módulo 4: Booleano, if/else, string, número, DOM, eventos e inte...
David Zapateria Besteiro
 
Actividad N° 7 - Unidad 4
Actividad N° 7 - Unidad 4 Actividad N° 7 - Unidad 4
Actividad N° 7 - Unidad 4
Pablo Agustin Novillo Audicio
 
Presentacion electronica digital - Compuertas Logicas
Presentacion electronica digital - Compuertas LogicasPresentacion electronica digital - Compuertas Logicas
Presentacion electronica digital - Compuertas Logicas
Cruz Rodriguez
 

La actualidad más candente (19)

Tipos de dato y expresiones en C++
Tipos de dato y expresiones en C++Tipos de dato y expresiones en C++
Tipos de dato y expresiones en C++
 
Variables, Constantes y Tipos de datos en C
Variables, Constantes y Tipos de datos en CVariables, Constantes y Tipos de datos en C
Variables, Constantes y Tipos de datos en C
 
Lenguaje c (expresiones logicas)
Lenguaje c (expresiones logicas)Lenguaje c (expresiones logicas)
Lenguaje c (expresiones logicas)
 
Elementos de programacion t1
Elementos de programacion t1Elementos de programacion t1
Elementos de programacion t1
 
Operadores y Expresiones
Operadores y ExpresionesOperadores y Expresiones
Operadores y Expresiones
 
53692670 arduino-programacion
53692670 arduino-programacion53692670 arduino-programacion
53692670 arduino-programacion
 
C++ unidad1 semana1
C++ unidad1 semana1C++ unidad1 semana1
C++ unidad1 semana1
 
Introduccion c
Introduccion cIntroduccion c
Introduccion c
 
Informe tecnico u4 final
Informe tecnico u4 finalInforme tecnico u4 final
Informe tecnico u4 final
 
Introduccion a Tablas de Verdad
Introduccion a Tablas de VerdadIntroduccion a Tablas de Verdad
Introduccion a Tablas de Verdad
 
Transparencias4
Transparencias4Transparencias4
Transparencias4
 
Identificadores, variables y constantes
Identificadores, variables y constantesIdentificadores, variables y constantes
Identificadores, variables y constantes
 
Introduccion tablasverdad
Introduccion tablasverdadIntroduccion tablasverdad
Introduccion tablasverdad
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Vhdl
VhdlVhdl
Vhdl
 
Programa para calcular valores de resistencias
Programa para calcular valores de resistenciasPrograma para calcular valores de resistencias
Programa para calcular valores de resistencias
 
Javascript - Módulo 4: Booleano, if/else, string, número, DOM, eventos e inte...
Javascript - Módulo 4: Booleano, if/else, string, número, DOM, eventos e inte...Javascript - Módulo 4: Booleano, if/else, string, número, DOM, eventos e inte...
Javascript - Módulo 4: Booleano, if/else, string, número, DOM, eventos e inte...
 
Actividad N° 7 - Unidad 4
Actividad N° 7 - Unidad 4 Actividad N° 7 - Unidad 4
Actividad N° 7 - Unidad 4
 
Presentacion electronica digital - Compuertas Logicas
Presentacion electronica digital - Compuertas LogicasPresentacion electronica digital - Compuertas Logicas
Presentacion electronica digital - Compuertas Logicas
 

Destacado

Troubleshooting SQL Server: Un enfoque práctico
Troubleshooting SQL Server: Un enfoque práctico Troubleshooting SQL Server: Un enfoque práctico
Troubleshooting SQL Server: Un enfoque práctico
SolidQ
 
Pascual Mantemin 2006
Pascual Mantemin 2006Pascual Mantemin 2006
Pascual Mantemin 2006
Rodrigo Pascual
 
PLC - Powerline Communication
PLC - Powerline CommunicationPLC - Powerline Communication
PLC - Powerline Communicationst2t009
 
Partes de motherboard y microprocesador
Partes de motherboard y microprocesadorPartes de motherboard y microprocesador
Partes de motherboard y microprocesadorSteven Nuñez
 
PLC (Controladores logicos programables)
PLC (Controladores logicos programables)PLC (Controladores logicos programables)
PLC (Controladores logicos programables)Siul_G
 
Trabajo para ingles 2
Trabajo para ingles 2Trabajo para ingles 2
Trabajo para ingles 2
luffyx97
 
Sql Server - Troubleshooting De Bloqueos (Parte I)
Sql Server - Troubleshooting De Bloqueos (Parte I)Sql Server - Troubleshooting De Bloqueos (Parte I)
Sql Server - Troubleshooting De Bloqueos (Parte I)
JOSE AHIAS LOPEZ PORTILLO
 
PLC Alternativo
PLC AlternativoPLC Alternativo
PLC Alternativo
Luis Zurita
 
Principios de Instrumentación - Símbolos, Automatización y Regulaciones
Principios de Instrumentación - Símbolos, Automatización y RegulacionesPrincipios de Instrumentación - Símbolos, Automatización y Regulaciones
Principios de Instrumentación - Símbolos, Automatización y Regulaciones
James Robles
 
Plc (presentacio)
Plc (presentacio)Plc (presentacio)
Plc (presentacio)Gissell03
 
Principios de PLC - Hardware, Configuración e Instrucciones Básicas
Principios de PLC - Hardware, Configuración e Instrucciones BásicasPrincipios de PLC - Hardware, Configuración e Instrucciones Básicas
Principios de PLC - Hardware, Configuración e Instrucciones Básicas
James Robles
 
Introducción Controlador Lógico Programable master
Introducción Controlador Lógico Programable masterIntroducción Controlador Lógico Programable master
Introducción Controlador Lógico Programable master
Alex Fernandez Chavez
 
Controladores Logicos Programables
Controladores Logicos ProgramablesControladores Logicos Programables
Controladores Logicos Programables
David Levy
 
curso de plc
curso de plccurso de plc
curso de plc
Gustavo Garcia
 
Neumatica
Neumatica Neumatica

Destacado (20)

Troubleshooting SQL Server: Un enfoque práctico
Troubleshooting SQL Server: Un enfoque práctico Troubleshooting SQL Server: Un enfoque práctico
Troubleshooting SQL Server: Un enfoque práctico
 
Pascual Mantemin 2006
Pascual Mantemin 2006Pascual Mantemin 2006
Pascual Mantemin 2006
 
PLC - Powerline Communication
PLC - Powerline CommunicationPLC - Powerline Communication
PLC - Powerline Communication
 
Partes de motherboard y microprocesador
Partes de motherboard y microprocesadorPartes de motherboard y microprocesador
Partes de motherboard y microprocesador
 
Controladores lógicos programables
Controladores lógicos programablesControladores lógicos programables
Controladores lógicos programables
 
PLC (Controladores logicos programables)
PLC (Controladores logicos programables)PLC (Controladores logicos programables)
PLC (Controladores logicos programables)
 
Trabajo para ingles 2
Trabajo para ingles 2Trabajo para ingles 2
Trabajo para ingles 2
 
Sql Server - Troubleshooting De Bloqueos (Parte I)
Sql Server - Troubleshooting De Bloqueos (Parte I)Sql Server - Troubleshooting De Bloqueos (Parte I)
Sql Server - Troubleshooting De Bloqueos (Parte I)
 
11 Intro
11 Intro11 Intro
11 Intro
 
PLC Alternativo
PLC AlternativoPLC Alternativo
PLC Alternativo
 
Arquitectura de un plc
Arquitectura de un plcArquitectura de un plc
Arquitectura de un plc
 
Principios de Instrumentación - Símbolos, Automatización y Regulaciones
Principios de Instrumentación - Símbolos, Automatización y RegulacionesPrincipios de Instrumentación - Símbolos, Automatización y Regulaciones
Principios de Instrumentación - Símbolos, Automatización y Regulaciones
 
Plc (presentacio)
Plc (presentacio)Plc (presentacio)
Plc (presentacio)
 
Principios de PLC - Hardware, Configuración e Instrucciones Básicas
Principios de PLC - Hardware, Configuración e Instrucciones BásicasPrincipios de PLC - Hardware, Configuración e Instrucciones Básicas
Principios de PLC - Hardware, Configuración e Instrucciones Básicas
 
Controladores logicos programables (plc)
Controladores logicos programables (plc)Controladores logicos programables (plc)
Controladores logicos programables (plc)
 
Introducción Controlador Lógico Programable master
Introducción Controlador Lógico Programable masterIntroducción Controlador Lógico Programable master
Introducción Controlador Lógico Programable master
 
Estructura plc
Estructura plcEstructura plc
Estructura plc
 
Controladores Logicos Programables
Controladores Logicos ProgramablesControladores Logicos Programables
Controladores Logicos Programables
 
curso de plc
curso de plccurso de plc
curso de plc
 
Neumatica
Neumatica Neumatica
Neumatica
 

Similar a Vhdl2

Programacion PLD
Programacion PLDProgramacion PLD
Programacion PLD
davic_exe
 
Por que java
Por que javaPor que java
Por que javareivax
 
A1 u1-16230227
A1 u1-16230227A1 u1-16230227
A1 u1-16230227
erikalejo
 
Conceptos basicos de_vhdl
Conceptos basicos de_vhdlConceptos basicos de_vhdl
Conceptos basicos de_vhdl
Angie Cardenas
 
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
 
Fgl029 guiano2arquitecturasvhdl (1)
Fgl029 guiano2arquitecturasvhdl (1)Fgl029 guiano2arquitecturasvhdl (1)
Fgl029 guiano2arquitecturasvhdl (1)
Alveiro2
 
⭐⭐⭐⭐⭐ 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
Victor Asanza
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivasstarduslex
 
Lenguajes diapositivas
Lenguajes diapositivasLenguajes diapositivas
Lenguajes diapositivasstarduslex
 
Lenguajes diapositivas
Lenguajes diapositivasLenguajes diapositivas
Lenguajes diapositivasstarduslex
 
C
CC
Introduccion a la programacion en c 18
Introduccion a la programacion en c 18Introduccion a la programacion en c 18
Introduccion a la programacion en c 18
fitomaster
 
Elementos basicos de_programacion
Elementos basicos de_programacionElementos basicos de_programacion
Elementos basicos de_programacion
thaynasantos1997
 
ELEMENTOS DE PROGRA 30-05.pdf
ELEMENTOS DE PROGRA 30-05.pdfELEMENTOS DE PROGRA 30-05.pdf
ELEMENTOS DE PROGRA 30-05.pdf
Rosmary Delgado Sola Delgado
 
Elementos basicos de programacion
Elementos basicos de programacionElementos basicos de programacion
Elementos basicos de programacion
rotflol
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxJose Manuel Mansilla Carrasco
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxfreddymadriz
 

Similar a Vhdl2 (20)

7_vhdl.pdf
7_vhdl.pdf7_vhdl.pdf
7_vhdl.pdf
 
Programacion PLD
Programacion PLDProgramacion PLD
Programacion PLD
 
P03.Programación en c para pics
P03.Programación en c para picsP03.Programación en c para pics
P03.Programación en c para pics
 
Por que java
Por que javaPor que java
Por que java
 
A1 u1-16230227
A1 u1-16230227A1 u1-16230227
A1 u1-16230227
 
Conceptos basicos de_vhdl
Conceptos basicos de_vhdlConceptos basicos de_vhdl
Conceptos basicos de_vhdl
 
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
 
Fgl029 guiano2arquitecturasvhdl (1)
Fgl029 guiano2arquitecturasvhdl (1)Fgl029 guiano2arquitecturasvhdl (1)
Fgl029 guiano2arquitecturasvhdl (1)
 
Micro2 tema 1
Micro2 tema 1Micro2 tema 1
Micro2 tema 1
 
⭐⭐⭐⭐⭐ 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
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivas
 
Lenguajes diapositivas
Lenguajes diapositivasLenguajes diapositivas
Lenguajes diapositivas
 
Lenguajes diapositivas
Lenguajes diapositivasLenguajes diapositivas
Lenguajes diapositivas
 
C
CC
C
 
Introduccion a la programacion en c 18
Introduccion a la programacion en c 18Introduccion a la programacion en c 18
Introduccion a la programacion en c 18
 
Elementos basicos de_programacion
Elementos basicos de_programacionElementos basicos de_programacion
Elementos basicos de_programacion
 
ELEMENTOS DE PROGRA 30-05.pdf
ELEMENTOS DE PROGRA 30-05.pdfELEMENTOS DE PROGRA 30-05.pdf
ELEMENTOS DE PROGRA 30-05.pdf
 
Elementos basicos de programacion
Elementos basicos de programacionElementos basicos de programacion
Elementos basicos de programacion
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 

Último

Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
rafaelsalazar0615
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
Emilio Casbas
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
sarasofiamontezuma
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
samuelvideos
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 

Último (20)

Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 

Vhdl2

  • 1. Introducción a VHDL ¿ Qué es VHDL ? ¿ Qué es FPGA ? ¿ Qué significa PLD ? ¿ Qué es un HDL ? ¿ Cuál es la estructura básica de un diseño Edmundo Barajas Ramírez 1 en VHDL ?
  • 2. Estilos de Descripción Según el nivel de Abstracción: Flujo de datos entre registros RTL. Comportamiento ( Behavior ). Edmundo Barajas Ramírez 2 Estructural.
  • 3. Modelado de Flujo de Datos RTL (Register Transfer Level) Se hace uso de los operadores predefinidos en las bibliotecas estándar del lenguaje y se describe por medio de asignaciones como establece el flujo de datos entre señales y puertos del circuito. Edmundo Barajas Ramírez 3
  • 4. Modelado de Comportamiento En la descripción por comportamiento se define el funcionamiento del circuito a través de algoritmos, se usan declaraciones de mayor nivel de abstracción como IF THEN, ELSIF, CASE THEN. Las funciones lógicas a implementar quedan definidas por la calidad de herramientas de síntesis. Edmundo Barajas Ramírez 4
  • 5. Modelado Estructural Se utilizan componentes previamente compilados y se interconectan entre si. (el diseñador tiene mas control de la lógica que se implementa). La forma del código se asemeja a un “net-list” de un diagrama esquemático. Edmundo Barajas Ramírez 5
  • 6. Tipos de Datos VHDL ofrece los objetos tipo BIT_VECTOR -- arreglos de bit´s para definir “buses”: a : OUT BIT_VECTOR(7 DOWNTO 0); b : IN BIT_VECTOR( 0 TO 3); Edmundo Barajas Ramírez 6
  • 7. Tipos de Datos Entre vectores se pueden hacer asignaciones de uno o varios Bit´s. Ejemplos: a = 00001111, b =1011 a(5) = b(3); a = 00101111 …… a(5 DOWTO 3) = b(1 to 3) a = 00101111 Edmundo Barajas Ramírez 7
  • 8. Tipos MLV (Multi Valued Logic) IEEE std_logic_1164.all Edmundo Barajas Ramírez 8 ‘U’ Un_initialized ‘Z’ High Impedance ‘-’ Don´t-care Strong Drive - ’x’ unknow - ‘0’ Logic 0 - ‘1’ Logic 1 Week Drive - ‘W’ unknow - ‘L’ Logic 0 - ‘H’ Logic 1
  • 9. El Paradigma de VHDL CONCURRENCIA: Las instrucciones no se ejecutan en secuencia como en otros lenguajes convencionales. Las instrucciones al modelar hardware se ejecutan en paralelo, a menos que se programe un proceso, el cual es secuencial. X= A OR B; Z= A AND X; Z = A AND X; X= A OR B; Edmundo Barajas Ramírez 9
  • 10. Concurrencia Resultados de Síntesis X = A OR B Z = X AND C Edmundo Barajas Ramírez 10
  • 11. Concurrencia Resultados de Síntesis Edmundo Barajas Ramírez 11 Z = C AND X X = A OR B
  • 12. Objetos en VHDL Señales: Actuan como conexiones internas del circuito entre un componente y otro. Sintaxis: SIGNAL nombre: TIPO [ rango ] Ejemplos: SIGNAL X: BIT; -- para el ejemplo anterior. SIGNAL cuenta: BIT_VECTOR(7 DOWNTO 0); SIGNAL temp: INTEGER RANGE 0 TO 255; Edmundo Barajas Ramírez 12
  • 13. Objetos en VHDL CONSTANTES: Permiten definir valores fijos para facilitar la lectura del código. Solo son validas dentro de la unidad de diseño que se declaran (Entity, Architecture, Process). Sintaxis: CONSTANT nombre: TIPO := valor Ejemplos: CONSTANT tp: TIME := 16 ns; CONSTANT v_ini: BIT_VECTOR(1 TO 0):= “10”; Edmundo Barajas Ramírez 13
  • 14. Objetos en VHDL Elementos que se manipulan Variables: Solo se utilizan dentro de funciones, procedimientos y procesos. Su valor actualiza inmediatamente despues de la asignación. Sintaxis: VARIABLE nombre: TIPO [ rango]; Ejemplo: VARIABLE cuenta: INTEGER RANGE 0 TO 15; Edmundo Barajas Ramírez 14
  • 15. Sintaxis de asignación a un Objeto según su clase Para una señal o puerto: “ = ” Para una constante, variable y valor inicial “ := ” Bit o std_logic: Usar comillas simles ‘x’ Bit_vector o std_logic_vector: Usar comillas dobles. Ejemplo: Para un vector de 5 bit’s “10011” Enteros: Asignación directa, no usar comillas. Edmundo Barajas Ramírez 15
  • 16. Sintaxis de asignación a un Objeto según su clase Edmundo Barajas Ramírez 16 Ejemplos: signal a: std_logic; signal b: std_logic_vector(5 downto 0); signal c: boolean; variable e: integer range 0 to 255; BEGIN a = ‘1’; --usar comillas simples si no es vector b = “10111”; --usar comillas dobles se es vector c = TRUE; --puede tomar valores FALSE, TRUE d := 34; --en enteros no usar comillas
  • 17. Otros Operadores Operadores de Relación: =, /=; --para todos los tipos , =, , =; --para todos los tipos escalar y --arreglos con rango discreto. Operadores aritméticos: +, - (concatenación), *, /, MOD, REM, Edmundo Barajas Ramírez 17 **(exponente).
  • 18. Especificación de la Base Edmundo Barajas Ramírez 18 Para Vectores: m= H”D3”; --Hexadecimal n = O”234”; --Octal p = B”100110”; --Binario Para Enteros: q = 16#B3#; --Hexadecimal r = 10#234#; --Decimal s = 2#100111#; --Binario Base por defecto: t = 187+r; --Decimal, sin comillas
  • 19. Ejemplo: uso de std_logic a b c f 0 0 0 1 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 Edmundo Barajas Ramírez 19 Entidad Prueba a b c F(a,b,c) 1 1 1 1
  • 20. Ejemplo: uso de std_logic --Ejemplo combinacional básico library IEEE use ieee.std_logic_1164.all entity tabla is port ( Edmundo Barajas Ramírez 20 a,b,c: in std_logic; f : out std_logic ); end tabla; architecture ejemplo of tabla is begin f = ‘1’ when (a=‘0’ and b=‘0’ and c=‘0’) else ‘1’ when (a=‘0’ and b=‘1’ and c=‘1’) else ‘1’ when (a=‘1’ and b=‘1’ and c=‘0’) else ‘1’ when (a=‘1’ and b=‘1’ and c=‘1’) else ‘0’ ; end ejemplo;
  • 21. Ejercicio: uso de std_logic Una función F depende de cuatro variables D,C,B,A donde A es la variable menos significativa. La función F adopta el valor de uno si el número formado por las cuatro variables es inferior o igual a ocho y superior a tres. En caso contrario la función F es cero. Edmundo Barajas Ramírez 21
  • 22. Ejercicio: uso de std_logic Solución Edmundo Barajas Ramírez 22 library ieee Use ieee.std_logic_1164.all Entity funcion is port( D,C,B,A: in std_logic; f : out std_logic); End funcion; Architecture a_func of funcion is Begin F = ‘1’ when (D=‘0’ and C=‘0’ and B=‘1’ and A=‘1’) else ‘1’ when (D=‘0’ and C=‘1’ and B=‘0’ and A=‘0’) else ‘1’ when (D=‘0’ and C=‘1’ and B=‘0’ and A=‘1’) else ‘1’ when (D=‘0’ and C=‘1’ and B=‘1’ and A=‘0’) else ‘1’ when (D=‘0’ and C=‘1’ and B=‘1’ and A=‘1’) else ‘1’ when (D=‘1’ and C=‘0’ and B=‘0’ and A=‘0’) else ‘0’ ; End a_func;
  • 23. Declaraciones concurrentes asignadas a señales En este tipo de declaración encontramos las funciones de salida mediante la ecuación booleana que describe el comportamiento de cada una de las compuertas. Edmundo Barajas Ramírez 23
  • 24. Declaraciones concurrentes asignadas a señales Library ieee; Use ieee.std_logic_1164.all; Entity logic is port( a,b,c,d,e,f: in std_logic; f : out std_logic); End logic; Architecture booleana of logic is Begin x1 = a xor b; x2 = (((c and d) or (a xor b)) nand ((e xor f) and Edmundo Barajas Ramírez 24 (c and d))); x3 = (e xor f) and (c and d); End booleana;
  • 25. Uso de std_logic_vector Library ieee; Use ieee.std_logic_1164.all; Entity circuito is port( a: std_logic_vector (1 downto 0); c: out std_logic); Architecture arq_cir of circuito is Begin with a select c = ‘1’ when “00”, ‘0’ when “01”, ‘1’ when “10”, ‘0’ when others End arq_cir; Edmundo Barajas Ramírez 25 A(0) A(1) C 0 0 1 0 1 0 1 0 1 1 1 0
  • 26. Tarea Modelar en VHDL un circuito medio sumador Modelar en VHDL un circuito sumador total Modelar en VHDL un circuito de cuatro entradas llamadas num y una salida que indique con un ‘1’ si num es primo y un ‘0’ cuando no lo es. Edmundo Barajas Ramírez 26