Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Circuitos Digitales

VHDL
by

Dalitita villanueva

on 16 October 2012

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Circuitos Digitales

Entity Que es VHDL??? ARCHITECTURE juntos Programemos VHDL: VHSIC (Very High Speed Integrated Circuits)
Hardware Description Language.
Creado por el Departamento de Defensa de EE.UU. y
la IEEE a mediados de los 80’s.
Otros HDL: Verilog y ABEL
VHDL está descrito en el IEEE standard 1076-1993 Un HDL es en intrínsecamente paralelo, esto es, los
comandos, los cuales corresponden a compuertas
lógicas, son ejecutados en paralelo, tan pronto como se
presenta una nueva entrada. Un HDL imita el
comportamiento de un sistema físico, usualmente
digital.

También permite la incorporación de especificaciones de tiempo (retardos en compuertas) así como la descripción de un sistema como la interconexión de diferentes componentes. Palabras reservadas no pueden utilizarse como
identificadores o nombres de señal.
No es sensible a la capitalización de las letras (A=a)
Comentarios inician con -- y terminan al fin de la línea
VHDL ignora espacios extra y cambios de línea
Se debe declarar el tipo de cada objeto en el programa
Cada sentencia termina con ; Estructura Básica
De Un Archivo VHDL Es la declaración de las entradas y salidas. lo que define cómo se comporta un circuito Process Es una declaración secuencial usada dentro de un proceso, de un procedimiento o de una función que seleccionen y ejecuten una secuencia de la declaración entre una lista de alternativas, basados en el valor de una expresión dada.   Case IF ... THEN ... ELSE LOOP es la forma de hacer bucles en VHDL. Sería el equivalente a un FOR o WHILE de un lenguaje convencional. LOOP NEXT permite detener la ejecución actual y seguir con la siguiente. NEXT la sentencia EXIT hace que se salga del bucle superior al que se ejecuta. EXIT ejemplo Maquina de estados 1 salida (z)
2 entradas (x, clk)
4 estados (q0,q1,q2,q3,q4) Que necesitamos? cuando estamos en q0
salida = 0
si x =1
siguiente estado = q1
si x=0
siguiente estado = q4 Que hace? - Library
-Entity
-Architecture
-Process Pasémoslo a VHDL cuando estamos en q1
salida = 0
si x =1
siguiente estado = q2
si x=0
siguiente estado = q4 cuando estamos en q2
si x =1
siguiente estado = q3
salida =1
si x=0
siguiente estado = q4
salida =0 cuando estamos en q4
salida = 0
si x =1
siguiente estado = q1
si x=0
siguiente estado = q4 cuando estamos en q3
salida = 0
si x =1
siguiente estado = q3
si x=0
siguiente estado = q3 entity diag is port(
clk, x: in std_logic;
z: out std_logic);
end diag; * Library
-Entity
-Architecture
-Process architecture arq_diag of diag is
type estados is ( q0, q1, q2, q3, q4);
signal edo_pres, edo_fut : estados; ARCHITECTURE begin
proceso1: process (edo_pres, x) begin
case edo_pres is
when q0 => z<='0';
if x = '0' then
edo_fut <= q4;
else
edo_fut <= q1;
end if; Process when q1 => z<='0';
if x = '0' then
edo_fut <= q4;
else
edo_fut <= q2;
end if; library ieee;
use ieee.std_logic_1164.all; 1 salida (z)
2 entradas (x, clk) ENTITY 4 estados (q0,q1,q2,q3,q4) * Library
*Entity
-Architecture
-Process * Library
*Entity
*Architecture
-Process cuando estamos en q0
salida = 0
si x =1
siguiente estado = q1
si x=0
siguiente estado = q4 cuando estamos en q1
salida = 0
si x =1
siguiente estado = q2
si x=0
siguiente estado = q4 * Library
*Entity
*Architecture
-Process proceso2: process (clk) begin
if (clk'event and clk='1') then
edo_pres <= edo_fut;
end if;
end process proceso2;
end arq_diag; when q2 =>
if x = '0' then
edo_fut <= q4;
z<='0';
else
edo_fut <= q3;
z<='1';
end if; * Library
*Entity
*Architecture
-Process cuando estamos en q2
si x =1
siguiente estado = q3
salida =1
si x=0
siguiente estado = q4
salida =0 when q3 => z<='0';
if x = '0' then
edo_fut <= q3;
else
edo_fut <= q3;
end if; cuando estamos en q3
salida = 0
si x =1
siguiente estado = q3
si x=0
siguiente estado = q3 * Library
*Entity
*Architecture
-Process when q4 => z<='0';
if x = '0' then
edo_fut <= q4;
else
edo_fut <= q1;
end if;
end case;
end process proceso1; cuando estamos en q4
salida = 0
si x =1
siguiente estado = q4
si x=0
siguiente estado = q1 * Library
*Entity
*Architecture
-Process library ieee;
use ieee.std_logic_1164.all;
entity diag is port(
clk, x: in std_logic;
z: out std_logic);
end diag;
architecture arq_diag of diag is
type estados is ( q0, q1, q2, q3, q4);
signal edo_pres, edo_fut : estados;
begin
proceso1: process (edo_pres, x) begin
case edo_pres is
when q0 => z<='0';
if x = '0' then
edo_fut <= q4;
else
edo_fut <= q1;
end if;
when q1 => z<='0';
if x = '0' then
edo_fut <= q4;
else
edo_fut <= q2;
end if;
when q2 =>
if x = '0' then
edo_fut <= q4;
z<='0'; Programa completo else
edo_fut <= q3;
z<='1';
end if;
when q3 => z<='0';
if x = '0' then
edo_fut <= q3;
else
edo_fut <= q3;
end if;
when q4 => z<='0';
if x = '0' then
edo_fut <= q4;
else
edo_fut <= q1;
end if;
end case;
end process proceso1;

proceso2: process (clk) begin
if (clk'event and clk='1') then
edo_pres <= edo_fut;
end if;
end process proceso2;
end arq_diag; Librerias VHDL ¿Que es una librería VHDL? Para q1 Para q2 Para q3 Las librerías VHDL, forman parte de una característica importante del lenguaje VHDL.
En ellas se guardan entidades y paquetes que se pueden usar en los archivos VDHL. Una librería VHDL contiene elementos de diseño común que se pueden usar en el archivo fuente de VHDL para la realización del diseño. Para q4 Proceso 2 para cambiar el estado actual por el estado siguiente Dentro de las librerías se encuentran unidades de diseño. Una unidad de diseño es la mínima sección de código copilable separadamente. Estas unidades se construyen combinando construcciones del lenguaje. Existen 5 tipos diferentes de unidades de diseño. 1-La declaración de entidad. En esta se identifican los dispositivos, definiendo su interfaz. 2- El cuerpo de arquitectura. Esta asociado a una determinada Declaración de Entidad, describiendo el funcionamiento lógico del dispositivo identificado por esta 3- La declaración del paquete. Contiene la vista publica de los paquetes. 4 - El cuerpo del paquete. Aquí se definen los elementos declarados en este. 5 - La declaracion de configuracion. Maneja el emplazamiento de componentes en modelos estructurales Paquetes Los paquetes VHDL realizan una función equivalente a los de la librerías en los lenguajes de programación. Son unidades de códigos que pueden utilizarse desde otras unidades mediante una serie de clausulas de visibilidad.Una analogía son el #include del lenguaje de programación C. Algunos paquetes de la libreria IEEE:

STD_LOGIC_1164
STD_LOGIC_ARITH
STD_LOGIC_SIGNED
STD_LOGIC_UNSIGNED
STD_LOGIC_MISC Std_logic_1164 Este paquete define un estandar para diseñadores para usar en describir los tipos de datos interconectados en el modelado VHDL. std_logic_arith Contiene funciones aritmeticas, de comparacion y de conversion para los tipos SIGNED, UNSIGNED, SMALL_INT, INTEGER, STD_ULOGIC, STD_LOGIC Y STD_LOGIC_VECTOR Std_logic_unsigned Contiene funciones (sin signo) aritmeticas, de comparacion y de conversion para el tipo STD_LOGIC_VECTOR. std_logic_signed Contiene funciones (con signo) aritmeticas, de comparacion y de conversion para el tipo STD_LOGIC_VECTOR. std_logic_misc Define tipos, subtipos, constantes y funciones para la librería STD_LOGIC_1164. and or
nand xor
xnor not Operadores lógicos EJEMPLO 1) Expresiones entre parentesis
2) Complementos
3) funcion AND
4) funcin OR Operadores aritméticos Operadores relacionales GRACIAS Villanueva Langarica Elva Dali
Mendez Ochoa Lourdes Esperanza
Mendoza Arredonde Luis Ernesto
Valencia Madrigal Efrain Quienes somos? Equipo VHDL
Full transcript