You are on page 1of 8

Universidad Autónoma Metropolitana

Unidad Azcapotzalco.

División: Ciencias Básicas e Ingeniería.

Departamento de Electrónica

Diseño Lógico F307

“Introducción al VHDL. Dispositivos


lógicos programables”

Fecha: 20/12/2023

Grupo: CEL81 Trimestre: 23-O

Alumna:

Medina Nieto Cira Lizbeth 2202002599

Profesor: Sánchez Rangel Francisco Javier


Introducción al VHDL. Dispositivos lógicos programables.

PROM: Programmable Read Only Memory (Memoria programable de solo


lectura)
Una Memoria Programable de Solo es un tipo de memoria semiconductor que se utiliza
para almacenar datos de manera permanente. A diferencia de la memoria RAM (Random
Access Memory), que es volátil y se borra cuando se apaga la energía, una PROM retiene la
información incluso cuando no hay alimentación eléctrica.
La característica principal de una PROM es que puede ser programada una sola vez
durante la fabricación o por el usuario final, y después de la programación, los datos
almacenados no se pueden cambiar. Esto la hace diferente de las memorias RAM o las
memorias flash, que son reprogramables.
La programación de una PROM se realiza mediante un proceso que quema o "quema" los
bits en las ubicaciones de memoria específicas. Los datos se escriben de manera
irreversible durante este proceso, y una vez programada, la información no puede ser
alterada ni borrada. Esto hace que la PROM sea adecuada para almacenar datos que deben
permanecer inalterados a lo largo del tiempo.

Es importante destacar que existe otra variante de memoria programable conocida como
"EPROM" (Erasable Programmable Read-Only Memory), que, a diferencia de la PROM,
permite borrar y reprogramar los datos mediante la exposición a luz ultravioleta. También
hay tecnologías más modernas, como la "Flash EEPROM" (Electrically Erasable
Programmable Read-Only Memory), que permiten la reprogramación eléctrica sin
necesidad de luz ultravioleta. Estas variantes son más flexibles en términos de
reprogramación en comparación con la PROM convencional.
La estructura interna de una PROM es relativamente simple en comparación con otras
formas de memoria programable.
1. Matriz de Celdas de Memoria: La PROM consta de una matriz de celdas de
memoria. Cada celda de memoria almacena un bit de información (0 o 1).
2. Líneas de Datos y Dirección: Hay líneas de datos y líneas de dirección que se
utilizan para acceder a ubicaciones específicas en la matriz de celdas. Las líneas de
dirección seleccionan la ubicación de memoria a la que se accede, y las líneas de
datos transportan la información leída o escrita.
3. Fusibles o Antifusibles: Cada celda de memoria tiene un elemento que puede
programarse irreversiblemente para representar un bit particular. En el pasado, se
utilizaban "fusibles" que se podían quemar para establecer el bit en 1. Si el fusible
estaba intacto, el bit era 0. En algunos casos, se utilizaban "antifusibles", que eran
originalmente no conductores y se quemaban para volverse conductores y
representar un bit 1.
4. Decodificadores y Controladores: La PROM también incluye circuitos de
decodificación y controladores que interpretan las señales de dirección y controlan
el acceso a las celdas de memoria.
5. Programación: Durante la fase de programación, se configuran los bits en las
celdas de memoria para representar los datos deseados. Este proceso es irreversible
en el caso de las PROM tradicionales, ya que los fusibles o antifusibles se queman o
configuran de una manera que no se puede revertir.

PLA: Programmable Logic Array (Arreglo lógico programable)


Un Arreglo Lógico Programable (PLA, por sus siglas en inglés, Programmable Logic Array)
es un dispositivo lógico digital programable que se utiliza para implementar funciones
lógicas específicas. Consiste en una matriz de dispositivos lógicos interconectados que
pueden ser programados para realizar tareas lógicas particulares. Los PLAs son
comúnmente utilizados en el diseño de circuitos digitales y en la implementación de
funciones combinacionales.
Un PLA típico consta de dos partes principales:
1. Matriz AND (AND Array): Esta parte del PLA consiste en una matriz de
compuertas AND. Cada fila de la matriz representa un producto lógico de las
entradas (a través de las variables de entrada y sus complementos) y genera un
término de la función lógica deseada. Los términos generados en esta matriz AND
se combinan mediante una operación OR en la etapa siguiente.
2. Matriz OR (OR Array): La matriz OR se encarga de combinar los productos
lógicos generados en la matriz AND. Cada columna de la matriz OR se conecta a la
salida y representa una suma lógica de los términos generados por las compuertas
AND correspondientes.
La programación de un PLA implica configurar las conexiones de las compuertas AND y
OR para implementar la función lógica deseada. Esto se hace mediante la programación de
las interconexiones y, en algunos casos, la programación de las compuertas lógicas
específicas utilizadas en cada posición de la matriz.
Los PLAs ofrecen flexibilidad en el diseño de funciones lógicas, ya que permiten a los
diseñadores adaptar el circuito para cumplir con requisitos específicos sin tener que
cambiar físicamente el hardware. Sin embargo, los PLAs han sido en gran medida
reemplazados por dispositivos más modernos, como los Dispositivos Lógicos Programables
(PLD) y los FPGA (Arreglos de Compuertas Programables en Campo), que ofrecen una
mayor capacidad y flexibilidad en comparación con los PLAs tradicionales.

PAL: Programmable Array Logic (Lógica de arreglos programables)


Programmable Array Logic (PAL) es un tipo de dispositivo lógico programable que se
utiliza para implementar funciones lógicas específicas en circuitos digitales. Fue
desarrollado por Monolithic Memories Inc. en la década de 1970 y se convirtió en una
alternativa popular a los dispositivos lógicos fijos.
La estructura básica de un PAL consiste en un conjunto de entradas, una matriz
programable de compuertas AND y una matriz fija de compuertas OR. Aquí hay una
descripción de sus componentes principales:
1. Entradas: Las entradas del PAL son señales de entrada que provienen de otros
componentes del circuito. Pueden ser variables de entrada o sus complementos.
2. Matriz AND (AND Array): Esta matriz está formada por compuertas AND
programables. Cada producto lógico en esta matriz es el resultado de la operación
lógica AND entre las entradas o sus complementos. La programación se realiza
configurando las interconexiones entre las entradas y las compuertas AND.
3. Matriz OR (OR Array): La matriz OR es fija y está formada por compuertas OR.
Cada salida de la matriz AND está conectada a una entrada de la matriz OR. La
salida de la matriz OR proporciona el resultado final de la función lógica
implementada.
La programación de un PAL implica establecer las interconexiones en la matriz AND, lo
que determina qué entradas se utilizan y en qué combinaciones, y esto configura la función
lógica que el PAL implementará.

Es importante destacar que, a diferencia de los dispositivos PLAs (Programmable Logic


Arrays), que también son programables pero tienen una matriz OR programable, los PAL
tienen una matriz OR fija, lo que los hace más sencillos pero menos flexibles en
comparación con los PLAs.
Aunque los PAL han sido superados en gran medida por tecnologías más modernas, como
los FPGA (Field-Programmable Gate Arrays), siguen siendo parte de la historia de los
dispositivos lógicos programables.

GAL: Generic Logic Array (Arreglo lógico genérico)


Un Generic Array Logic (GAL) es un tipo de dispositivo lógico programable que comparte
algunas similitudes con el PAL (Programmable Array Logic) pero con algunas diferencias
clave. Fue desarrollado por Lattice Semiconductor como una mejora sobre los PALs y tiene
algunas características distintivas.
Al igual que el PAL, un GAL también consta de una matriz de compuertas AND y una
matriz de compuertas OR. Sin embargo, a diferencia del PAL, en un GAL, ambas matrices
son programables. Esto significa que tanto las compuertas AND como las compuertas OR
pueden ser programadas por el usuario para implementar funciones lógicas específicas.
Las características principales de un GAL incluyen:
1. Matriz AND programable: Permite al usuario configurar las interconexiones
entre las entradas y las compuertas AND, al igual que en un PAL.
2. Matriz OR programable: A diferencia de los PAL, en un GAL, la matriz OR
también es programable. Esto proporciona una mayor flexibilidad en la
implementación de funciones lógicas.
3. Programación: La programación de un GAL implica establecer las
interconexiones en ambas matrices para definir la función lógica deseada. Este
proceso se realiza mediante la programación de fusibles antifusibles o mediante
tecnologías más modernas, como las celdas lógicas programables eléctricamente.
4. Versatilidad: La capacidad de programar tanto la matriz AND como la matriz OR
hace que los GAL sean más versátiles en comparación con los PAL. Esto permite
una adaptación más precisa a los requisitos de diseño específicos.
Al igual que con otros dispositivos lógicos programables, los GALs han sido en gran
medida superados por tecnologías más modernas, como los FPGA (Field-Programmable
Gate Arrays). Estos últimos ofrecen una mayor capacidad de lógica programable y
flexibilidad, lo que ha llevado a una disminución en el uso de los GAL en aplicaciones
modernas.
CPLD: Complex Programmable Logic Device (Dispositivo lógico
programable complejo)
Un Complex Programmable Logic Device (CPLD) es un tipo de dispositivo lógico
programable que se utiliza en el diseño de circuitos digitales. Estos dispositivos son
especialmente útiles para implementar funciones lógicas complejas en sistemas digitales.

Las características principales de un CPLD incluyen:


1. Matriz de Bloques Lógicos: Un CPLD consta de una matriz de bloques lógicos
programables. Cada bloque lógico tiene un conjunto de compuertas lógicas y flip-
flops que pueden ser configurados para realizar funciones específicas.
2. Conexiones Programables: Las interconexiones entre los bloques lógicos y las
entradas/salidas del dispositivo son programables. Esto proporciona flexibilidad en
la configuración de las conexiones para adaptarse a las necesidades específicas del
diseño.
3. Elementos de Entrada/Salida Configurables: Los CPLDs cuentan con
elementos de entrada/salida (I/O) configurables que permiten conectar el
dispositivo a otros componentes del sistema.
4. Programación: La programación de un CPLD implica cargar un archivo de
descripción del hardware (HDL) o una descripción de alto nivel del diseño en el
dispositivo. La configuración puede realizarse mediante tecnologías como
antifusibles, fusibles, o incluso mediante dispositivos de memoria reprogramable.
5. Baja Complejidad Relativa: En comparación con los FPGA (Field-
Programmable Gate Arrays), los CPLDs tienden a tener una complejidad relativa
más baja. Son ideales para implementar funciones lógicas más pequeñas y
específicas en sistemas embebidos.
Los CPLDs se utilizan en una variedad de aplicaciones, como controladores de dispositivos,
sistemas embebidos, y en general, en situaciones donde se requiere una implementación
de funciones lógicas personalizadas en hardware. Aunque han sido superados en capacidad
por los FPGA en muchas aplicaciones, los CPLDs siguen siendo relevantes para ciertos
diseños donde la complejidad y la capacidad de E/S son adecuadas.

FPGA: Field-Programmable Gate Array (Arreglos de compuertas programables de


campo)
Un FPGA es un tipo de dispositivo lógico programable que se utiliza para implementar
funciones lógicas personalizadas en hardware digital. A diferencia de los CPLDs (Complex
Programmable Logic Devices), los FPGA son más versátiles y pueden manejar diseños de
mayor complejidad. Aquí hay algunas características clave de los FPGAs:
1. Matriz de Compuertas Programables: Los FPGAs contienen una gran matriz
de compuertas lógicas y bloques de memoria configurables. La interconexión entre
estas compuertas y bloques puede ser programada por el usuario para adaptarse a
requisitos específicos de diseño.
2. Configuración y Reprogramación: La configuración de un FPGA se realiza
mediante un archivo de descripción del hardware (HDL) que describe la lógica y las
conexiones deseadas. Estos dispositivos son reprogramables, lo que significa que
pueden ser reconfigurados para implementar diferentes funciones lógicas en el
mismo hardware.
3. Elementos de Entrada/Salida (I/O) Configurables: Los FPGAs cuentan con
pines de entrada/salida configurables que permiten conectar el dispositivo a otros
componentes del sistema.
4. Flexibilidad: Debido a su capacidad de reprogramación y a la complejidad de su
arquitectura, los FPGAs son adecuados para una amplia variedad de aplicaciones,
como procesamiento de señales digitales, comunicaciones, control de hardware, y
más.
Los FPGAs ofrecen un nivel significativo de flexibilidad y rendimiento, lo que los hace
populares en el desarrollo de prototipos, diseño de sistemas embebidos y en situaciones
donde se requiere adaptabilidad y capacidad de procesamiento en tiempo real.

Bibliografía
- Harris & Harris. Digital Design and Computer Architecture.
- Brown & Rose. Field Programmanle Gate Arrays
- F. Wakerly. Digital Design: Principles and Practices.
- D. Ercegovac & Lang. Introduction to Digital Systems.
- M. Santarini. Complex Programmable Logic Devices: Technology, Trends, and
Applications.

You might also like