Documente Academic
Documente Profesional
Documente Cultură
Soy un SPLD
Sustituye a 50 SPLDs
Soy un CPLD
PALs y GALs
Clasificacin de los PLDs
Productos comerciales
Fabricante SPLD
Altera Clsicos,FLASHLogic
SPLDs Atmel
Cypress
PAL
PAL
Lattice GAL
Philips PLA,PAL
Vantis PAL
Fabricante CPLD
Altera MAX 5000,7000 Y 9000
Atmel ATF, ATV
CPLDs Cypress FLASH370, ULTRA37000
PLDs Lattice
Philips
IspLSI 1000 a 8000
XPLA
Vantis MACH 1 a 5
Xilinx XC9500, CoolRunner
Fabricante FPGA
Actel ACT 1 a 3 , MX, SX
Altera FLEX 6000,8000 Y 10K
FPGAs Atmel
Lucent
AT6000, AT40K
ORCA 1 a 3
QuickLogic pASIC1 a 3
Vantis VF1
Xilinx XC4000,Virtex, Spartan
Xilinx vs. Altera
CPLDs
FPGAs
Software
Estructura VHDL
VHDL su estructura
El lenguaje de descripcin en hardware VHDL se estructura en mdulos o unidades
funcionales identificados mediante una palabra reservada y particular de este
lenguaje.
Library = Bibliotecas
Entity = Entidad
Architecture = Arquitectura
Package = Paquete
Component = Componente
Entidad
Representa la caracterizacin del dispositivo fsico; es decir,
exhibe las entradas y salidas del circuito (llamados pins) que el
diseador ha considerado pertinentes para integrar su idea o
aplicacin.
Cada una de las seales de entrada y salida en una entidad es
referida como un puerto, el cual es equivalente a una terminal
(pin) de un smbolo esquemtico. Todos los puertos que son
declarados deben de tener un nombre, un modo y un tipo de
dato.
Entidad - Modos
Modo in. Seales de entrada a la entidad.
Unidireccional
Modo out. Seales de salida.
Modo inout. Seales de entrada/salida.
Bidireccional, retroalimentacin de seales
dentro y fuera de la entidad.
Modo buffer. Permite realizar
retroalimentaciones dentro de la entidad;
pero a diferencia del modo inout, el puerto
declarado se comporta como una terminal
exclusiva de salida.
Entidad Tipos de datos
Algunos de los tipos de valores mas utilizados son:
Bit : 0s y 1s lgicos.
Boolean: Valores de verdadero o falso en una expresin.
Bit_vector: Un conjunto de bits.
Integer: Un numero entero.
Objetos y Tipos de Datos
DOWNTO Descendente
TO Ascendente
Entidad
entity Control is
port (Q: in bit_vector(3 downto 0);
F: out bit_vector(0 to 7) );
end Control;
DOWNTO Descendente
TO Ascendente
Ejercicio 1
Describir la entidad del siguiente
Bloque.
Identificadores
Nombres o etiquetas que se usan para referirse a: Variables,
Constantes, Seales, Procesos, Entidades, etc.
Estn formados por nmeros, letras (maysculas o minsculas) y
guin bajo _ con las reglas especificadas en la tabla siguiente.
Longitud (Nmero de Caracteres): Sin restricciones
Palabras reservadas por VHDL no pueden ser identificadores
En VHDL, un identificador en maysculas es igual a su contraparte
en minsculas
Paquetes
Bibliotecas
Libreras y paquetes
Para llamar un paquete es necesario llamar a la
librera/biblioteca que lo contiene (donde ha sido compilado)
Sintaxis: use
nombre_librera.nombre_paquete.all;
Ejemplo: use ieee.std_logic_1164.all;
X0 Z0
X1 Circuito Z1
Y0 Multiplicador Z2
Y1 Z3
Estilo de descripcin o
Niveles de Descripcin utilizados Modelizacin
A B F0 F1
0 0 1 1
0 1 1 1
1 0 0 1
1 1 0 0
Flujo de datos sentencia when else
EJEMPLO TABLA
library IEEE;
use IEEE.STD_LOGIC_1164.all;
entity Tabla is A
end Behavioral; 1 0 0 1
1 1 0 0
Ejercicio 01
Un jurado est formado por tres jueces A, B, C, cada juez emite su voto a favor
oprimiendo un botn enfrente de l. Se desea construir un circuito que encienda una
luz e indique si la mayor parte del jurado vot a favor y no la encienda en cualquier
otro caso.
Resolver por descripcin de flujo de datos con when-else y por operadores lgicos
Ejercicio 02
BCD a Decimal (Display 7 segmentos nodo comn )
Conversin
Sentencia bsica de asignacin concurrente
(WITH SELECT)
with variable_de_seleccin select
salida <= valor1 when valor_variable1,
valor2 when valor_variable2,
valor3 when others; A0 A1 F
with A select
0 0 1
F <= 1 when 00,
0 when 01, 0 1 0
1 when 10, 1 0 1
1 when others;
1 1 1
Descripcin de multiplexores
Descripcin de multiplexores mediante
ecuaciones booleanas
Ejercicio 3
Comparador
S1 S0 F
A[3:0]
F[3:0]
0 0 A
B[3:0]
0 1 B
1 0 MAYOR
1 1 MENOR
S[1:0]
Sol. Ejercicio 3
Ejercicio 4
Disee un comparador de dos nmeros A y B, cada uno formado por dos bits, la salida
del comparador tambin es de dos bits y est representada por la variable Z de tal
forma que s:
A=B entonces Z=11
A<B entonces Z=01
A>B entonces Z=10
Ejercicio 5
Disee un circuito combinacional que detecte nmeros primos de 4 bits. Realice la
tabla de verdad y elabore un programa que describa su funcin. Utilice instrucciones
del tipo withselect- when.
Process
Un Process en VHDL se debe de considerar como parte de una seria de declaraciones
concurrentes; sin embargo, su comportamiento interno debe ser analizado de forma
secuencial para su sntesis o evaluacin.
Los procesos se definen con la etiqueta process, la cual incluye el nombre del proceso
y la lista de sensibilidad (sensitivity list) de seales que disparan el proceso. De tal
forma que cada vez que cambia el valor de alguna de las seales incluida en la lista, se
ejecutan las instrucciones del proceso.
Los procesos se componen de una parte declarativa y de otra procedimental. En la
primera se incluyen las seales y variables de mbito local. En la segunda las
operaciones secuenciales.
Procesos (process)
Enunciados de Asignacin de
Variables
Proceso (process)
Enunciados de Asignacin de
Seales
Enunciados if
Enunciados case
Enunciados Secuenciales
Enunciados loop
Enunciados next
Enunciados exit
Nota importante:
Enunciados de Subprogramas
Una seal que se vea involucrada dentro de un
proceso no recibe inmediatamente el valor asignado, Enunciados return
slo hasta el final del mismo. Una variable que sea
utilizada dentro de un proceso s recibe el valor de Enunciados wait
forma inmediata. Enunciados null
Programacin de Estructuras Bsicas
SEALES Y VARIABLES
VARIABLES:
Es similar al concepto de variable en otros lenguajes. Su valor puede ser
alterado en cualquier instante y se le puede asignar un valor inicial. Las
variables slo se declaran en los procesos o subprogramas.
Utilizadas en ejecuciones en serie.
SEALES:
Se declaran igual que las constantes y variables. La diferencia es que pueden
ser normal, register y bus. Si no se especifica nada en la declaracin el
compilador entender que es del tipo normal. Se puede decir que la seal
tiene dos partes una donde se escribe y otra donde se lee. Las seales pueden
ser declaradas slo en las arquitecturas, paquetes (PACKAGE) o en bloques
concurrentes (BLOCK).
Utilizadas en ejecuciones concurrentes.
Programacin de Estructuras Bsicas
SEALES Y VARIABLES
Enunciados CASE:
SINTAXIS
case expression is
when choices => { sequential_statement }
when choices => { sequential_statement }
end case;
DESCRIPCION
expression: evala a un entero, o tipo enumerado.
sequential_statement: uno o mas enunciados secuenciales.
choices: opciones.
La ltima opcin puede ser others (valor por omisin del resto de
las opciones).
Operadores Relacionales
Operadores Relacionales
Caractersticas.
Uso: Para fines de comparacin de datos.
Operadores incluidos en los paquetes: std_numeric y std_logic_arith
Los operadores de Igualdad y Desigualdad (= , /=) utilizan todos los tipos
de datos.
Los operadores (<, <=, >, >=) son definidos para los tipos escalar y
arreglos unidimensionales de tipos de datos enumerados o enteros.
Operador Significado
= Igual
/= Diferente
< Menor
<= Menor o Igual
> Mayor
>= Mayor o Igual
Estilo de Modelizacin - Funcional
Ejemplo
a
c
b Comparador
Uso de if-then-else
(construccin secuencial)
si a = b entonces c = 1
si a b entonces c = 0
Procesos (process)
F6
0 0 1 B
A1 F5
A0 F4 0 1 0 MAYOR
B1 F3
B0 F2 0 1 1 MENOR
F0
1 0 0 IGUAL
1 0 1 A+B
S0 S1 S2
1 1 0 A*B
1 1 1 0
- - - -
Solucin
MODIFICAR