26 - 2circuitos PAL, PLA, GAL - ARDUINO

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 44

Circuitos PAL, PLA, GAL , FPGA

DIGITAL II

PhD. Carlos D. Gordón Gallegos


UTA -FISEI, Digital II 1
Motivación

UTA -FISEI, Digital II 2


Circuitos PAL, PLA, GAL , FPGA

Objetivo
• Describir la arquitectura básica de los
dispositivos PAL, PLA, GAL , FPGA.

UTA -FISEI, Digital II 3


Circuitos PAL, GAL
• Dos de los principales tipos simples de dispositivos de
lógica programable (SPLD) son la PAL y la GAL.

• PAL significa dispositivo lógico de matriz programable


(Programmable Array Logic) mientras que GAL
significa dispositivo lógico de matriz genérica (Generic
Array Logic). Generalmente.

• Una PAL es un dispositivo programable una sola vez


(OTP, One-Time Programmable) mientras que una GAL
es un tipo de PAL, que es reprogramable; sin embargo,
puesto que algunos dispositivos SPLD reprogramables
se siguen denominando dispositivos PAL.
UTA -FISEI, Digital II 4
Circuitos PAL, GAL
• El término GAL es una designación originalmente
utilizada por Lattice Semicon-ductor y posteriormente
licenciada a otros fabricantes.
• La estructura básica de los dispositivos PAL y GAL es
una matriz AND programable junto con una matriz OR
fija, lo cual constituye una arquitectura básica de tipo
suma de productos.
• Los dispositivos complejos de lógica programable
(CPLD, Complex Programmable Logic Device) son,
básicamente, un único dispositivo con múltiples SPLD
que proporciona más capacidad, para diseños lógicos
de mayor envergadura.

UTA -FISEI, Digital II 5


SPLD: la PAL
La estructura PAL permite implementar cualquier
expresión lógica de tipo suma de productos (SOP, sum of-
products) con un número definido de variables.
Como se ha visto anteriormente, cualquier función de
lógica combinacional puede expresarse en forma SOP.

UTA -FISEI, Digital II 6


SPLD: la PAL

UTA -FISEI, Digital II 7


SPLD: la GAL
La GAL es esencialmente una PAL que puede
reprogramarse. Tiene el mismo tipo de organización
AND/OR que la PAL. La diferencia básica es que la GAL
utiliza una tecnología de proceso reprogramable, como por
ejemplo EEPROM (E2CMOS), en lugar de emplear fusibles.

UTA -FISEI, Digital II 8


Circuitos PAL, GAL

UTA -FISEI, Digital II 9


Circuitos PAL, GAL
• Ejemplo

UTA -FISEI, Digital II 10


Circuitos PAL, GAL
• Ejemplo

UTA -FISEI, Digital II 11


Circuitos PAL, GAL

UTA -FISEI, Digital II 12


Circuitos CPLD

Un dispositivo CPLD (Complex


Programmable Logic Device)
consta básicamente de múltiples
matrices SPLD con
interconexiones programables.

UTA -FISEI, Digital II 13


Circuitos CPLD
• Diagrama de bloques básico de un CPLD genérico.

UTA -FISEI, Digital II 14


CPLD DE ALTERA
Altera fabrica varias familias de dispositivos CPLD
incluyendo las familias:
MAX II, MAX 3000 y Max 7000.

Hay que tener siempre presente que otras familias


pueden variar hasta cierto punto en lo que
respecta a su arquitectura y/o en lo que respecta a
parámetros tales como la densidad, la tecnología
de proceso, el consumo de potencia, la tensión de
alimentación
y la velocidad.
UTA -FISEI, Digital II 15
CPLD DE ALTERA
• Diagrama de bloques básico CPLD - serie MAX 7000 Altera

UTA -FISEI, Digital II 16


PAL - PLA
La arquitectura de la familia CoolRunner II de Xilinx
está basada en una PLA (Programmable Logic Array,
matriz de lógica programable) en lugar de en una
estructura PAL (Programmable Array Logic,
dispositivo lógico de matriz programable).
La PAL tiene una matriz AND programable seguida
de una matriz OR fija y genera una expresión suma
de productos.

La matriz PLA tiene una matriz AND programable


seguida de una matriz OR programable.
UTA -FISEI, Digital II 17
PAL - PLA

• Matriz de tipo PAL • Matriz de tipo PLA

UTA -FISEI, Digital II 18


FPGA

Una FPGA (Field-Programmable Gate Array,


matriz de puertas programable sobre el
terreno) difiere en cuanto a la arquitectura,
no utiliza matrices de tipo PAL/PLA
y tiene unas densidades mucho mayores que
los dispositivos CPLD.

Una FPGA típica tiene un número de puertas


equivalentes mucho mayor que un
dispositivo CPLD típico.
UTA -FISEI, Digital II 19
FPGA

Los tres elementos básicos en una FPGA son:

1. El bloque lógico configurable (CLB,


Configurable Logic Block),

2. Las interconexiones, y

3. Los bloques de entrada/salida (E/S)

UTA -FISEI, Digital II 20


FPGA

Estructura
de FPGA

UTA -FISEI, Digital II 21


FPGA
Bloques lógicos configurables

Normalmente, un bloque lógico de FPGA está compuesto


por varios módulos lógicos más pequeños, que son las
unidades componentes básicas y que en cierto modo
resultan análogos a las macroceldas de un CPLD.

Cada CLB está formado por múltiples módulos lógicos


más pequeños y por una serie de inter-conexiones
programables locales que se emplean para conectar
entre sí los módulos lógicos que componen el CLB.

UTA -FISEI, Digital II 22


FPGA

UTA -FISEI, Digital II 23


FPGA
Módulos lógicos.
Un módulo lógico de un bloque lógico de una FPGA puede
configurarse para implementar lógica combinacional,
lógica registrada o una combinación de ambas. Se emplea
un flip-flop que forma parte de la lógica asociada para
implementar lógica registrada.

El módulo lógico típico está basado en LUT. Una LUT (Look-


Up Table) es un tipo de memoria programable que se
utiliza para generar funciones lógicas combinacionales
suma de productos. La LUT realiza, esencialmente, el
mismo trabajo que una PAL o una PLA.

UTA -FISEI, Digital II 24


FPGA
Módulos lógicos.

UTA -FISEI, Digital II 25


Módulo FPGA

Los dispositivos FPGA, son esencialmente


como "pizarras en blanco", que el usuario
final puede programar para implementar
cualquier diseño lógico.

También hay disponibles dispositivos FPGA


que contienen, asimismo, lógica
implementada en hardware mediante lo que
se denomina un módulo hardware.

UTA -FISEI, Digital II 26


Módulo FPGA

Un módulo hardware es una parte de la lógica


dentro de una FPGA que el fabricante incluye para
proporcionar una función específica y que no
puede reprogramarse.

Por ejemplo, si un cliente necesita un pequeño


microprocesador como parte del diseño de un
sistema, el cliente puede programar ese
microprocesador dentro de la FPGA o bien el
fabricante puede proporcionar el microprocesador
en forma de módulo hardware.
UTA -FISEI, Digital II 27
Módulo FPGA

Si la función integrada presenta algunas características


programables se la conoce con el nombre de módulo
software.

Una ventaja de utilizar módulos hardware es que puede


implementarse el mismo diseño empleando una parte
mucho más pequeña de la capacidad disponible en la
FPGA, por comparación con el caso en que el usuario
programara él mismo dicha función; como resultado, se
consume menos espacio del chip y se requiere también un
menor tiempo de desarrollo por parte del usuario.

UTA -FISEI, Digital II 28


FPGA

UTA -FISEI, Digital II 29


DISPOSITIVOS FPGA DE ALTERA

Altera suministra varias familias de


dispositivos FPGA, incluyendo las series
Stratix II, Stratix, Cyclone y la familia ACEX.

Hay que tener presente que los dispositivos


de la familia pueden diferir básicamente en
ciertos aspectos de su arquitectura y/o en lo
que se refiere a parámetros tales
Como la densidad, la velocidad y la potencia.

UTA -FISEI, Digital II 30


DISPOSITIVOS FPGA DE ALTERA

El bloque LAB (Logic Array Block)


La arquitectura de la familia Stratix II y de otras
familias de Altera es similar.
Tienen la clásica estructura basada en tablas LUT
para los módulos lógicos, que Altera denomina
módulos lógicos adaptativos (ALM, Adaptive Logic
Module) y con los que se generan las funciones
suma de productos. Asimismo, Altera denomina
bloques de matriz lógica (LAB) a los bloques lógicos
configurables que se muestran en el dispositivo
genérico.
UTA -FISEI, Digital II 31
DISPOSITIVOS FPGA DE ALTERA
El módulo ALM (Adaptive Logic Module)

El módulo ALM es la unidad básica de diseño en la FPGA


Stratix II.

Cada ALM contiene una sección de lógica combinacional


basada en LUT, junto con otra lógica asociada que puede
programarse para obtener dos salidas de lógica
combinacional o registrada.

Asimismo, el ALM tiene lógica de suma, flip-flops y otras


secciones de lógica que permiten implementar funciones
aritméticas, de recuento y de registros de desplazamiento.
UTA -FISEI, Digital II 32
DISPOSITIVOS FPGA DE ALTERA
Diagrama simplificado de un módulo ALM Stratix II.

UTA -FISEI, Digital II 33


FPGA: Funciones integradas
La FPGA Stratix II contiene funciones de memoria
integrada, asi como funciones de procesamiento
digital de señal (DSP, Digital Signal Processing).
Las funciones DSP, como por ejemplo los filtros
digitales, se utilizan comúnmente en muchos tipos
de sistemas. Como puede ver en el diagrama de
bloques, los bloques integrados están distribuidos
a todo lo largo de la matriz de interconexión de la
FPGA, mientras que los elementos de
entrada/salida (IOE, Input/Output Element) están
situados alrededor del perímetro de la FPGA.
UTA -FISEI, Digital II 34
FPGA: Funciones integradas
Diagrama de bloques de la FPGA Stratix II

UTA -FISEI, Digital II 35


Práctica FPGA - Arduino
PRACTICA 1

/*
FPGA - ARDUINO

Función AND con 2 variables


En Arduino, disponemos de los siguientes operadores lógicos:
&& Operador lógico AND
|| Operador lógico OR
! Operador lógico NOT
& Operador de referencia AND
| Operador de referencia OR
^ Operador Lógico XOR
~ Operador negador bit a bit
*/

UTA -FISEI, Digital II 35


Práctica FPGA - Arduino
PRACTICA 1

UTA -FISEI, Digital II 35


Práctica FPGA - Arduino
PRACTICA 1
int var1 = 1; //Pin de entrada del pulsador 1
int var2 = 2; //Pin de entrada del pulsador 2
int led = 8; //Pin de salida para el led(rojo)
int estado1 = 0; //Para almacenar el estado de la variable1
int estado2 = 0; //Para almacenar el estado de la variable2
int resultado = 0; //Para almacenar el resultado

void setup() {
pinMode(var1, INPUT); //Iniciliza el pin de entrada 1 como salida
pinMode(var2, INPUT); //Iniciliza el pin de entrada 2 como salida
pinMode(led, OUTPUT); //Iniciliza el pin del led como salida
}

void loop(){
estado1 = digitalRead(var1); //Lee el estado del botón y lo almacena
estado2 = digitalRead(var2); //Lee el estado del botón y lo almacena
resultado = (estado1 && estado2); //Función AND con los dos estados
digitalWrite(led, resultado); //Escribimos el resultado en el led
}

UTA -FISEI, Digital II 35


Práctica FPGA - Arduino
PRACTICA 1

UTA -FISEI, Digital II 35


Práctica FPGA - Arduino
PRACTICA 1

UTA -FISEI, Digital II 35


Práctica FPGA - Arduino
PRACTICA 1

UTA -FISEI, Digital II 35


Práctica FPGA - Arduino
PRACTICA 1

UTA -FISEI, Digital II 35


Práctica FPGA - Arduino

PRACTICA 2: Implementar la Función 𝒀 = 𝑨𝑩𝑪 + 𝑨𝑩 + 𝑨𝑪

PRACTICA 3: Función 6 variables

PRACTICA 4: Decodificador BCD a 7 Segmentos

UTA -FISEI, Digital II 35


Muchas Gracias

UTA - FISEI, Digital II 36

También podría gustarte