Estado Actual de La Lógica Programable

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

Capítulo 1

Estado actual de la
lógica programable

Introducción

En la actualidad el nivel de integración alcanzado con el desarrollo de la


microelectrónica ha hecho posible desarrollar sistemas completos dentro de
un solo circuito integrado SOC (System On Chip), con lo cual se han mejo-
rado de manera notoria características como velocidad, confiabilidad, consu-
mo de potencia y sobre todo el área de diseño. Esta última característica nos
ha permitido observar día a día cómo los sistemas de uso industrial, militar y
de consumo han minimizado el tamaño de sus desarrollos; por ejemplo, los
teléfonos celulares, computadoras personales, calculadoras de bolsillo, agen-
das electrónicas, relojes digitales, sistemas de audio, sistemas de telecomuni-
caciones, etc., no son más que aplicaciones típicas que muestran la evolución
de los circuitos integrados también conocidos como chips.
El proceso de miniaturización de los sistemas electrónicos comenzó con
la interconexión de elementos discretos como resistencias, capacitores, resis-
tores, bobinas, etc., todos colocados en un chasis reducido y una escasa
separación entre ellos. Posteriormente se diseñaron y construyeron los pri-
meros circuitos impresos —aún vigentes—, que relacionan e interconectan
los elementos mencionados a través de cintas delgadas de cobre adheridas a
un soporte aislante (por lo general baquelita) que permite el montaje de es-
tos elementos [1].
Más tarde, el desarrollo del transistor de difusión planar, construido du-
rante 1947 y 1948, permitió en 1960 la fabricación del primer circuito inte-
grado monolítico. Este integra cientos de transistores, resistencias, diodos y
capacitores, todos fabricados sobre una pastilla de silicio. Como es del cono-
cimiento general, el término monolítico se deriva de las raíces griegas
2 V H D L : El arte de programar sistemas digitales

"mono" y "lithos" que significan uno y piedra, respectivamente; por tanto,


dentro de la tecnología de los circuitos integrados un circuito monolítico es-
tá construido sobre una piedra única o cristal de silicio que contiene tanto
elementos activos (transistores, diodos), como elementos pasivos (resisten-
cias, capacitores), y las conexiones entre ellos [1].
La fabricación de los circuitos monolíticos se basa en los principios de
materiales, procesos y diseño que constituyen la tecnología altamente desa-
rrollada de los transistores y diodos individuales. Dicha fabricación incluye la
preparación de la oblea o base, el crecimiento epitaxial, la difusión de impu-
rezas, la implantación de iones, la oxidación, la fotolitografía, la metalización
y la limpieza química [ 1 ].
La integración de sistemas se ha ido superando a medida que surgen nue-
vas tecnologías de fabricación. Esto ha permitido obtener componentes
estándares de mayor complejidad y que brindan mayores beneficios. Sin em-
bargo, el desarrollo de nuevos productos requiere bastante tiempo, por lo
cual sólo se emplea cuando se necesita un alto volumen de producción.
Una forma más rápida y directa de integrar aplicaciones es mediante la
lógica programable, la cual permite independizar el proceso de fabricación
del proceso de diseño fuera de la fábrica de semiconductores. Esta idea fue
desarrollada por Hon y Sequin [2] y Conway y Mead [3] a finales de los años
sesenta.

1.1 Dispositivos lógicos programables (PLD)

Los dispositivos lógicos programables (o PLD, por sus siglas en inglés) favore-
cen la integración de aplicaciones y desarrollos lógicos mediante el empaque-
tamiento de soluciones en un circuito integrado. El resultado es la reducción
de espacio físico dentro de la aplicación; es decir, se trata de dispositivos fa-
bricados y revisados que se pueden personalizar desde el exterior mediante
diversas técnicas de programación. El diseño se basa en bibliotecas y mecanis-
mos específicos de mapeado de funciones, mientras que su implementación
tan sólo requiere una fase de programación del dispositivo que el diseñador
suele realizar en unos segundos [4].
En la actualidad, el diseño de ASIC (circuitos integrados desarrollados
para aplicaciones específicas) domina las tendencias en el desarrollo de apli-
caciones a nivel de microelectrónica. Este diseño presenta varias opciones de
desarrollo, como se observa en la tabla 1.1. A nivel de ASIC los desarrollos
full y semi custom ofrecen grandes ventajas en sistemas que emplean circuitos
diseñados para una aplicación en particular. Sin embargo, su diseño ahora
sólo es adecuado en aplicaciones que requieren un alto volumen de produc-
ción; por ejemplo, sistemas de telefonía celular, computadoras portátiles, cá-
maras de video, etcétera.
Estado actual de la lógica programable 3

Los FPGA (arreglos de compuertas programables en campo) y CPLD


(dispositivos lógicos programables complejos) ofrecen las mismas ventajas de
un ASIC, sólo que a un menor costo; es decir, el costo por desarrollar un
ASIC es mucho más alto que el que precisaría un FPGA o un CPLD, con la
ventaja de que ambos son circuitos reprogramables, en los cuales es posible
modificar o borrar una función programada sin alterar el funcionamiento del
circuito [4].

Categoría Características

Diseño totalmente a la • Total libertad de diseño, pero el desarrollo requiere todas las
media (Full-Custom) etapas del proceso de fabricación: preparación de la oblea o ba-
se, crecimiento epitaxial, difusión de impurezas, implantación
de iones, oxidación, fotolitografía, metalización y limpieza quí-
mica [1].

Los riesgos y costos son muy elevados; sólo se justifican ante


grandes volúmenes o proyectos con restricciones (área, veloci-
dad, consumo de potencia, etcétera) [4].

Matrices de puertas • Existe una estructura regular de dispositivos básicos (transisto-


predifundidas (Semi- res) prefabricada que se puede personalizar mediante un cone-
custom/gate arrays) xionado específico que sólo necesita las últimas etapas del proce-
so tecnológico.

• El diseño está limitado a las posibilidades de la estructura prefa-


bricada y se realiza con base en una biblioteca de celdas preca-
racterizadas para cada familia de dispositivos [4].

Celdas estándares pre- • No se trabaja con alguna estructura fija prefabricada en particu-
caracterizadas (Semi- lar, pero sí con bibliotecas de celdas y módulos precaracterizados
custom/standard cells) y específicos para cada tecnología.

• Libertad de diseño (en función de las facilidades de la bibliote-


ca); pero el desarrollo exige un proceso de fabricación completo
[4].

Lógica programable • Se trata de dispositivos fabricados y revisados que se pueden per-


(FPGA, CPLD). sonalizar desde el exterior mediante diversas técnicas de progra-
mación.

• El diseño se basa en bibliotecas y mecanismos específicos de ma-


peado de funciones, mientras que su implementación tan sólo re-
quiere una fase de programación del dispositivo, que por lo gene-
ral realiza el diseñador en unos pocos segundos[4].

Tabla 1.1 Tecnologías de fabricación de circuitos integrados.


4 VHDL: El arte de programar sistemas digitales

En la actualidad existe una gran variedad de dispositivos lógicos progra-


mables, los cuales se usan para reemplazar circuitos SSI (pequeña escala de
integración), MSI (mediana escala de integración) e incluso circuitos VLSI
(muy alta escala de integración), ya que ahorran espacio y reducen de mane-
ra significativa el número y el costo de los diseños. Estos dispositivos, llama-
dos PLD (tabla 1.2), se clasifican por su arquitectura —la forma funcional en
que se encuentran ordenados los elementos internos que proporcionan al
dispositivo sus características.

Dispositivo Descripción

PROM Programmable Read-Only Memory: memoria programable


de sólo lectura

PLA Programmable Logic Array: arreglo lógico programable

PAL Programmable Array Logic: lógica de arreglos programables

GAL Generic Logic Array: arreglo lógico genérico

CPLD Complex PLD: dispositivo lógico programable complejo

FPGA Field Program Gate Array: arreglos de compuertas pro-


grammes en campo

Tabla 1.2 Dispositivos lógicos programables.

1.1.1 Estructura interna de un P L D

Los dispositivos PROM, PLA, PAL y GAL están formados por arreglos o ma-
trices que pueden ser fijos o programables, mientras que los CPLD y FPGA
se encuentran estructurados mediante bloques lógicos configurables y celdas
lógicas de alta densidad, respectivamente.
La arquitectura básica de un PLD está formada por un arreglo de com-
puertas AND y OR conectadas a las entradas y salidas del dispositivo. La fi-
nalidad de cada una de ellas se describe a continuación.

a) Arreglo AND. Está formado por varias compuertas AND interconecta-


das a través de alambres, los cuales cuentan con un fusible en cada pun-
to de intersección [Fig. 1.1a)]. En esencia, la programación del arreglo
Estado actual de la lógica programable 5

consiste en fundir o apagar los fusibles para eliminar las variables que no
serán utilizadas [Fig. 1.1b)]. Obsérvese cómo en cada entrada a las com-
puertas AND queda intacto el fusible que conecta la variable selecciona-
da con la entrada a la compuerta. En este caso, una vez que los fusibles
se funden no pueden volver a programarse.

Figura 1.1 Arreglos AND: a) no programado y b) programado.


6 V H D L : El arte de programar sistemas digitales

b) Arreglo O R . Está formado por un conjunto de compuertas OR conecta-


das a un arreglo programable, el cual contiene un fusible en cada punto
de intersección. Este tipo de arreglo es similar al de compuertas A N D ex-
plicado en el punto anterior, ya que de igual manera se programa fundien-
do los fusibles para eliminar las variables no utilizadas. En la figura 1.2 se
observa el arreglo OR programado y sin programar.

Figura 1.2 Estructura básica de PLD.

De acuerdo con lo anterior, observemos en la tabla 1.3 la estructura de


los dispositivos lógicos programables básicos.
Estado actual de la lógica programable 7

Dispositivo E s q u e m a básico

La memoria programable de sólo


lectura (PROM) está formada
por un arreglo no programable de
compuertas AND conectadas
como decodificador y un arreglo
programable OR.

El arreglo lógico programable


(PLA) es un PLD formado por
un arreglo AND y un arreglo
OR, ambos programables.

El arreglo lógico programable


(PAL) se encuentra formado
por los arreglos AND programable
y OR fijo con lógica de salida.

Tabla 1.3 Dispositivos lógicos programables.

• La PROM no se utiliza como un dispositivo lógico, sino como una memo-


ria direccionable, debido a las limitaciones que presenta con las compuer-
tas AND fijas.
• En esencia, el PLA se desarrolló para superar las limitaciones de la me-
moria PROM. Este dispositivo se llama también FPLA (arreglo lógico
programable en campo), ya que es el usuario y no el fabricante quien lo
programa.
• El PAL se desarrolló para superar algunas limitaciones del PLA, como
retardos provocados por la implementación de fusibles adicionales, que
resultan de la utilización de dos arreglos programables y de la compleji-
dad del circuito. Un ejemplo típico de estos dispositivos es la familia
PAL16R8, la cual fue desarrollada por la compañía AMD (Advanced Mi-
cro Devices) e incluye los dispositivos PAL16R4, PAL16R6, PAL16L8,
PAL16R8, dispositivos programables por el usuario para reemplazar
circuitos combinacionales y secuenciales SSI y MSI en un circuito.

En la figura 1.3 se muestra la arquitectura interna del PAL16L8. Como


se puede observar, esta arquitectura está formada básicamente por circuitos
combinacionales (compuertas AND, OR, buffers tri-estado e inversores), los
cuales permiten la realización de funciones lógicas booleanas de la forma su-
ma de productos (SOP). Cada término producto específico se programa en
el arreglo AND, mientras que en el arreglo OR se realiza la suma lógica de
los términos que se enviarán a las salidas del dispositivo.
8 V H D L : El arte de programar sistemas digitales

(6, 9, 11, 13, 15, 17, 19, 21)

Figura 1.3 Arquitectura interna del PAL16L8.


Estado actual de la lógica programable 9

1.1.2 Arreglo Lógico Genérico (GAL)

El arreglo lógico genérico (GAL) es similar al PAL, ya que se forma con arre-
glos AND programable y OR fijo, con una salida lógica programable. Las dos
principales diferencias entre los dispositivos GAL y PAL radican en que el
primero es reprogramable y contiene configuraciones de salida programables.
Los dispositivos GAL se pueden programar una y otra vez, ya que usan la
tecnología E 2 CMOS (Ellectrically Erasable CMOS: CMOS borrable eléctri-
camente), en lugar de tecnología bipolar y fusibles (Fig. 1.4).

Figura 1.4 Diagrama de bloques del arreglo GAL.

Programación de un arreglo G A L

A diferencia de un PAL, el GAL está formado por celdas programables, las


cuales se pueden reprogramar las veces que sea necesario. Como se observa
en la figura 1.5, cada fila se conecta a una entrada de la compuerta AND y
cada columna a una variable de entrada y sus complementos. Cuando se
programa una celda, ésta se activa mediante la aplicación de cualquier com-
binación de las variables de entrada o sus complementos a la compuerta
AND. Esto permite la implementación de cualquier función (producto de
términos) requerida.
10 V H D L : El arte de programar sistemas digitales

Figura 1.5 Programación del dispositivo G A L .

Arquitectura de un dispositivo G A L

Con el fin de esquematizar una arquitectura GAL, se toma como ejemplo el


dispositivo G A L 2 2 V 1 0 [Fig. 1.6a)]. Este circuito cuenta con 22 líneas de en-
trada y sus complementos, lo que da un total de 44 líneas de entrada a cada
compuerta A N D (estas entradas se encuentran representadas por las líneas
verticales en el diagrama). La intersección que forman las líneas de entrada
con los términos producto (líneas horizontales), representa cada una de
las celdas que se pueden programar para conectar una variable de entrada
(o su complemento) a una línea de término producto [Fig. 1.6b)], donde es
posible apreciar la forma de obtener la suma de productos.
Estado actual de la lógica programable 11

Macro-
b cell

Macro-
> cell

Macro-
cell

Macro-
cell

Macro-
cell

Macro-
cell

Macro-
, cell

Macro-
kcell

Macro-
. cell

riMacro-
'"fr cell

Figura 1.6a Arquitectura del GAL22V10.


12 VHDL: El arte de programar sistemas digitales

Figura 1.6b Realización de una suma de productos dentro de un GAL.

Macroceldas lógicas de salida. Una macrocelda lógica de salida (u OLMC,


de output logic macrocell) está formada por circuitos lógicos que se pueden
programar como lógica combinacional o secuencial [5]. Las configuracio-
nes combinacionales se implementan por medio de programación, mientras
que en las secuenciales la salida resulta de un flip-flop. En la figura 1.7 se ob-
serva la arquitectura de una macrocelda del dispositivo GAL22V10, la cual
de manera general está formada por un flip-flop y dos multiplexores.

Figura 1.7 Arquitectura de una macrocelda OLMC 22VIO.

Puede haber de ocho a dieciséis entradas de las compuertas AND en la


compuerta OR. Esto indica las operaciones producto que pueden efectuarse
en cada macrocelda. El área punteada está formada por dos multiplexores y
Estado actual de la lógica programable 13

un flip-flop; el multiplexor 1 de 4 conecta una de sus cuatro líneas de entra-


da al buffer triestado de salida, en función de las líneas de selección SO y S I .
Por otro lado, el multiplexor de 1 de 2 conecta por medio del buffer la salida
del flip-flop o la salida del buffer triestado al arreglo AND; esto se determi-
na por medio de S1. Cada una de las líneas de selección se programa mediante
un grupo de celdas especiales que se encuentran en el arreglo AND.

1.2 Dispositivos lógicos programables de alto nivel de integración

Los PLD de alto nivel de integración se crearon con el objeto de integrar ma-
yor cantidad de dispositivos en un circuito (sistema en un chip SOC). Se
caracterizan por la reducción de espacio y costo, además de ofrecer una me-
jora sustancial en el diseño de sistemas complejos, dado que incrementan la
velocidad y las frecuencias de operación. Además, brindan a los diseñadores
la oportunidad de enviar productos al mercado con más rapidez y les permi-
ten realizar cambios en el diseño sin afectar la lógica, agregando periféricos
de entrada/salida sin consumir una gran cantidad de tiempo, dado que los
circuitos son reprogramables en el campo de trabajo.

1.2.1 Dispositivos lógicos programables complejos (CPLD)

Un circuito CPLD consiste en un arreglo de múltiples PLD agrupados como


bloques en un chip. En algunas ocasiones estos dispositivos también se cono-
cen como EPLD (Enhanced PLD: PLD mejorado), Super PAL, Mega PAL,
[6j etc. Se califican como de alto nivel de integración, ya que tienen una
gran capacidad equivalente a unos 50 PLD sencillos.
En su estructura básica, cada CPLD contiene múltiples bloques lógicos
(similares al GAL22V10) conectados por medio de señales canalizadas des-
de la interconexión programable (PI). Esta unidad PI se encarga de inter-
conectar los bloques lógicos y los bloques de entrada/salida del dispositivo
sobre las redes apropiadas (Fig. 1.8).
14 VHDL: El arte de programar sistemas digitales

Figura 1.8 Arquitectura básica de un CPLD.

Los bloques lógicos, también conocidos como celdas generadoras de fun-


ciones, están formados por un arreglo de productos de términos que imple-
menta los productos efectuados en las compuertas AND, un esquema de
distribución de términos que permite crear las sumas de los productos pro-
venientes del arreglo AND y por macroceldas similares a las incorporadas en
la GAL22V10 (Fig. 1.9). En ocasiones las celdas de entrada/salida se consi-
deran parte del bloque lógico, aunque la mayoría de los fabricantes coincide
en que son externas. Cabe mencionar que el tamaño de los bloques lógicos
es importante, ya que determina cuánta lógica se puede implementar dentro
del CPLD; esto es, fija la capacidad del dispositivo.

Figura 1.9 Bloque lógico programable.


Estado actual de la lógica programable 15

a) Arreglos de productos de términos. Es la parte del CPLD que identifica


el porcentaje de términos implementados por cada macrocelda y el núme-
ro máximo de productos de términos por bloque lógico. Esto es similar al
arreglo de compuertas AND programable de un dispositivo GAL22V10.
b) Esquema de distribución de términos. Es el mecanismo utilizado para
distribuir los productos de términos a las macroceldas; esto se realiza me-
diante el arreglo programable de compuertas OR de un PLD. Los diferen-
tes fabricantes de CPLD implementan la distribución de productos de
términos con diferentes esquemas. Mientras algunos como la GAL22V10
usan un esquema de distribución variable (los cuales pueden variar en
8,10,12,14 o 16 productos por macrocelda), los CPLD como la familia
MAX de Altera Corporation y Cypress Semiconductor, distribuyen cua-
tro productos de términos por macrocelda, además de utilizar "productos
de términos expandidos", que se asignan a una o varias macroceldas.
c) Macroceldas. Una macrocelda de un CPLD está configurada interna-
mente por flip-flops y un control de polaridad que habilita cada afirma-
ción o negación de una expresión. Los CPLD suelen tener macroceldas
de entrada/salida, de entrada y ocultas, mientras que los PLD sólo tienen
macroceldas de entrada/salida.

La cantidad de macroceldas que contiene un CPLD es importante, debi-


do a que cada uno de los bloques lógicos que conforman el dispositivo se
expresan en términos del número de macroceldas que contiene. Por lo gene-
ral, cada bloque lógico puede tener de cuatro a sesenta macroceldas; ahora
bien, mientras mayor sea la cantidad, mayor será la complejidad de las fun-
ciones que se pueden implementar.

1.2.2 Arreglos de compuertas programables en campo (FPGA)

Los dispositivos FPGA se basan en lo que se conoce como arreglos de coni'


puertas, los cuales consisten en la parte de la arquitectura que contiene tres
elementos configurabies: bloques lógicos configurables (CLB), bloques de
entrada y de salida (IOB) y canales de comunicación [7]. A diferencia
de los CPLD, la densidad de los FPGA se establece en cantidades equivalen-
tes a cierto número de compuertas.
Por adentro, un FPGA está formado por arreglos de bloques lógicos con-
figurables (CLB), que se comunican entre ellos y con las terminales de en-
trada/salida (E/S) por medio de alambrados llamados canales de comunica'
ción. Cada FPGA contiene una matriz de bloques lógicos idénticos, por lo
general de forma cuadrada, conectados por medio de líneas metálicas que
corren vertical y horizontalmente entre cada bloque (Fig. 1.10).
16 VHDL: El arte de programar sistemas digitales

Canales
Verticales
Bloques
Lógicos

Canales
Horizontales

Bloques de
E/S

Figura 1.10 Arquitectura básica de un FPGA.

En la figura 1.11 se puede observar una arquitectura FPGA de la familia


XC4000 de la compañía Xilinx. Este circuito muestra a detalle la configura-
ción interna de cada uno de los componentes principales que conforman es-
te dispositivo.

Interconexión Bloques de
programable entrada / salida

Bloques lógicos
Arquitectura FPGA

Figura 1.11 Arquitectura del FPGA XC4000 de Xilinx.

Los bloques lógicos (llamados también celdas generadoras de funciones)


están configurados para procesar cualquier aplicación lógica. Estos bloques
Estado actual de la lógica programable 17

tienen la característica de ser funcionalmente completos; es decir, permiten


la implementación de cualquier función booleana representada en la forma
de suma de productos. El diseño lógico se implementa mediante bloques co-
nocidos como generadores de funciones o L U T (Look Up Table: tabla de
búsqueda), los cuales permiten almacenar la lógica requerida, ya que cuen-
tan con una pequeña memoria interna —por lo general de 16 bits— [6J.
Cuando se aplica alguna combinación en las entradas de la LUT, el circuito
la traduce en una dirección de memoria y envía fuera del bloque el dato
almacenado en esa dirección. En la figura 1.12 se observan los tres LUT
que contiene esta arquitectura, los cuales se encuentran etiquetados con las
letras G, F y H.

Figura 1.12 Arquitectura de un bloque lógico configurable FPGA.

En un dispositivo FPGA, los CLB están ordenados en arreglos de matri-


ces programables (Programmable Switch Matrix o PSM), la matriz se encar-
ga de dirigir las salidas de un bloque a otro. Las terminales de entrada y sali-
da del FPGA pueden estar conectadas directamente al PSM o CLB, o se
pueden conectar por medio de vías o canales de comunicación.
En algunas ocasiones se pueden confundir los dispositivos de FPGA y
CPLD, ya que ambos utilizan bloques lógicos en su fabricación. La diferencia
entre ellos radica en el número de flip-flops utilizados, mientras la arquitectu-
ra del FPGA es rica en registros. La CPLD mantiene una baja densidad. En la
tabla 1.4 se presentan algunas otras diferencias entre una y otra arquitectura.
18 V H D L : El arte de programar sistemas digitales

Características CPLD FPGA

Arquitectura • Similar a un PLD • Similar a los arreglos de


• Más combinacional compuertas

• Más registros + RAM

Densidad • Baja a media • Media a alta

Funcionalidad • Trabajan a frecuencias • Depende de la aplicación


superiores a 200 Mhz (arriba de los 135Mhz)

Aplicaciones • Contadores rápidos • Excelentes en aplicaciones


• Máquinas de estado para arquitecturas de
• Lógica combinacional computadoras

• Procesadores Digitales de
Señales (DSP)

• Diseños con registros

Tabla 1.4 Diferencias entre dispositivos lógicos programables complejos (CPLD) y los arreglos
de compuertas programables en campo (FPGA).

1.3 Ambiente de desarrollo de la lógica programable

Una de las grandes ventajas al diseñar sistemas digitales mediante dispositi-


vos lógicos programables radica en el bajo costo de los recursos requeridos
para el desarrollo de estas aplicaciones. De manera general, el soporte bási-
co se encuentra formado por una computadora personal, un grabador de dis-
positivos lógicos programables y el software de aplicación que soporta las
diferentes familias de circuitos integrados PLD (Fig. 1.13).

Figura 1.13 Herramientas necesarias en la programación de PLD.


Estado actual de la lógica programable 19

En la actualidad, diversos programas CAD (diseño asistido por computa-


dora), como PALASM, OPAL, PLR ABEL, CUPL, entre otros, se encuen-
tran disponibles para la programación de dispositivos lógicos (tabla 1.5).

Compilador lógico Características

PALASM (PAL Assembler: ensamblador Creado por la compañía Advanced Micro Devi-
de PAL) ces (AMD)
Desarrollado únicamente para aplicaciones con
dispositivos PAL
Acepta el formato de ecuaciones booleanas
Utiliza cualquier editor que grabe en formato
ASCII

OPAL (Optimal PAL language: lenguaje Desarrollado por National Semiconductors


de optimización para arreglos programa- Se aplica en dispositivos PAL y GAL
bles) Formato para usar lenguaje de máquinas de esta-
do, ecuaciones booleanas de distintos niveles, ta-
blas de verdad, o cualquier combinación entre
ellas.
Disponible en versión estudiantil y profesional
(OPAL Jr y OPAL Pro)
Genera ecuaciones de diseño partiendo de una
tabla de verdad

PLPL (Programable Logic Programming Creado por AMD


Language: lenguaje de programación de Introduce el concepto de jerarquías en sus diseños
lógica programable) Formatos múltiples (ecuaciones booleanas, tablas
de verdad, diagramas de estado y las combinacio-
nes entre éstos)
Aplicaciones en dispositivos PAL y GAL

ABEL (Advanced Boolean Expression Creado por Data I/O Corporation


Language: lenguaje avanzado de expresio- Programa cualquier tipo de PLD (Versión 5.0)
nes booleanas) Proporciona tres diferentes formatos de entrada:
ecuaciones booleanas, tablas de verdad y diagra-
mas de estados.
Es catalogado como un lenguaje avanzado HDL
(lenguaje de descripción en hardware)

CUPL (Compiler Universal Programmable Creado por AMD para desarrollo de diseños
Logic: compilador universal de lógica complejos
programable) Presenta una total independencia del dispositivo
Programa cualquier tipo de PLD
Facilita la generación de descripciones lógicas de
alto nivel
Al igual que ABEL, también es catalogado como
HDL

Tabla 1.5 Descripción de compiladores lógicos para PLD.


20 V H D L : El arte de programar sistemas digitales

Estos programas —conocidos también como compiladores lógicos—


tienen una función en común: procesar y sintetizar el diseño lógico que se va
a introducir en un PLD mediante un método específico (ecuaciones boolea-
nas, diagramas de estado, tablas de verdad) [5].

Método tradicional de diseño con lógica programable

La manera tradicional de diseñar con lógica programable, parte de la repre-


sentación esquemática del circuito que se requiere realizar y luego define la
solución del sistema por el método adecuado (ecuaciones booleanas, tablas
de verdad, diagramas de estado, etc.). Por ejemplo, en la figura 1.14 se obser-
va un diagrama que representa a un circuito construido con compuertas
lógicas AND y OR. En este caso se eligió el método de ecuaciones boolea-
nas para representar su funcionamiento, aunque se pudo usar también una
tabla de verdad.

Figura 1 . 1 4 Obtención de las ecuaciones booleanas.

Como se puede observar, las ecuaciones que rigen el comportamiento del


sistema se encuentran derivadas en función de las salidas fl y f2 del circuito.
Una vez que se obtienen estas ecuaciones, el siguiente paso es introducir en
la computadora el archivo fuente o de entrada; es decir, el programa que con-
tiene los datos que permitirán al compilador sintetizar la lógica requerida.
Típicamente se introduce alguna información preliminar que indique datos
como el nombre del diseñador, la empresa, techa, nombre del diseño, etc.
Luego se especifica el tipo de dispositivo PLD que se va a utilizar, la numera-
ción de los pines de entrada y salida, y las variables del diseño. Por último, se
define la función lógica en forma de ecuaciones booleanas o cualquier forma-
to que acepte el compilador.
Bstado actual de la lógica programable 21

En la figura 1.15 se observa la pantalla principal del programa P A L A S M ,


en el cual se compilará el diseño de la figura 1.14 con el fin de ejemplificar
la metodología que se debe seguir.

Figura 1.15 Pantalla principal de PALASM.

La forma de introducir el diseño se muestra en el listado 1. Nótese que


las palabras reservadas por el compilador se representan con letras negritas.

TITLE EJEMPLO
PATTERN EJEMPLO.PDS
REVISION 1.0
AUTHOR JESSICA Encabezado
COMPANY UNAM
DATE 00-00-00
CHIP XX PAL16 L 8

; 1 2 3 4 5 6 7 8 9 10
NC NC NC NC A B C NC NC GND
Declaración de pines de entrada/salida
; 1112 13 14 15 16 17 18 19 2 0
NC NC F1 F2 NC NC NC NC NC 1re c

EQUATIONS

Ecuaciones del circuito

Simulación (condiciones e/s)

Listado 1.1 Archivo Fuente compilado en formato PALASM.


22 V H D L : El arte de programar sistemas digitales

El siguiente paso consiste en la compilación del diseño, el cual radica bá-


sicamente en localizar los errores de sintaxis1 o de otro tipo, cometidos
durante la introducción de los datos en el archivo fuente. El compilador pro-
cesa y traduce el archivo fuente y minimiza las ecuaciones. En este paso, el
diseño se ha simulado utilizando un conjunto de entradas y sus correspon-
dientes valores de salida conocidos como vectores de prueba. Durante este
proceso se comprueba que el diseño funcione correctamente antes de intro-
ducirlo al PLD. Si se detecta algún error en la simulación, se depura el dise-
ño para corregir este defecto.
Una vez que el diseño no tiene errores, el compilador genera un archivo
conocido como J E D E C (Joint Electronic Device Engineering Council) 2
o mapa de fusibles. Este archivo indica al grabador cuáles fusibles fundir y
cuáles activar, para que luego se grabe el PLD (de acuerdo con el mapa de
fusibles) en un grabador típico (Fig. 1.16).

Figura 1.16 Implementación final del diseño en un PLD.

Como se puede observar, ciertos PLD (PROM, PAL, GAL) se programan


empleando un grabador de dispositivos lógicos. Algunos otros PLD, como los
CPLD y FPGA, presentan la característica de ser programables dentro del
sistema (ISR In-System Programmable); es decir, no hay que introducirlos al
grabador, ya que por medio de elementos auxiliares se pueden programar
dentro de la tarjeta de circuito integrado.
Como se aprecia, el método de diseño con lógica programable reduce
de manera considerable el tiempo de diseño y permite al diseñador mayor
control de los errores que se pudieran presentar, ya que la corrección se reali-
za en el software y no en el diseño físico.

1 La sintaxis se refiere al formato establecido y la-simbología utilizada para describir una categoría de funciones.
2 Los archivos JEDEC están estabilizados para todos los compiladores lógicos existentes.
Estado actual de la lógica programable 23

1.4 Campos de aplicación de la lógica programable

La lógica programable es una herramienta de diseño muy poderosa, que se


aplica en el mundo industrial y en proyectos universitarios en todo el mun-
do. En la actualidad se usan desde los PLD más sencillos (como el GAL,
PAL, PLA) como reemplazos de circuitos LSI y MSI, hasta los potentes
CPLD y FPGA, que tienen aplicaciones en áreas como telecomunicaciones,
computación, redes, medicina, procesamiento digital de señales, multiproce-
samiento de datos, microondas, sistemas digitales, telefonía celular, filtros
digitales programables, entre otros.
En general, los CPLD son recomendables en aplicaciones donde se requie-
ren muchos ciclos de sumas de productos, ya que pueden introducirse en el dis-
positivo para ejecutarse al mismo tiempo, lo que conduce a pocos retrasos. En la
actualidad, los CPLD son muy utilizados a nivel industrial, ya que resulta fácil
convertir diseños compuestos por múltiples PLD sencillos en un circuito CPLD.
Por otro lado, los FPGA son recomendables en aplicaciones secuencia-
Ies que no suponen grandes cantidades de términos producto. Por ejemplo, los
FPGA desarrollados por la compañía ATMEL ofrecen alta velocidad en
cómputo intensivo, aplicaciones en procesadores digitales de señales (DSP) y
en otras fases del diseño lógico, debido a la gran cantidad de registros con los
que cuentan sus dispositivos (de 1024 a 6400). Esto los hace ideales para su uso
en dichas áreas.

Desarrollos recientes

Existen desarrollos realizados por diversas compañías cuyo funcionamiento se


basa en un PLD; por ejemplo, la figura 1.17 ilustra una tarjeta basada en un
FPGA de la familia XC4000 de Xilinx Corporation. Este desarrollo permite el
procesamiento de datos en paralelo a alta velocidad, lo que reduce los proble-
mas de procesamiento de datos intensivo3.

Figura 1.17 Sistema basado en un F P G A .

' Fuente de información: http://www.annapmicro.com


24 V H D L : E l arte d e p r o g r a m a r sistemas digitales

En la figura 1.18 se muestra otra aplicación realizada en un dispositivo


CPLD de la familia FlexlOK de Altera Corporation (nivel de integración de
7000 compuertas). La función de esta tarjeta es permitir diversas aplicacio-
nes en tiempo real, como el filtrado digital y muchas otras propias del cam-
po del procesamiento digital de señales 4 .

Figura 1.18 Ejemplo de un diseño lógico programable completo.

Como ya se mencionó, el campo de la lógica programable se ha extendido


en la industria en los últimos años, ya que compañías de nivel internacional in-
tegran o desarrollan lógica programable en sus diseños (vea la tabla 1.6).

Compañía Productos desarrollados con lógica programable

Andraka Consulting Group Procesadores digitales de señales (DSP)


http://users.ids.net/~randraka/Inc Comunicaciones digitales
Procesadores de audio y video

Code Logic Lógica configurable


Control embebido
http://home.intekom.com/codelogic/
Modems de alta velocidad
Boton Line
http://www.bltinc.com/ Audio, video, adquisición de datos y procesamiento de
señales en general
Aplicaciones militares: Criptografía, seguridad en comu-
nicaciones, proyectos espaciales.

Comit's Services Redes: aplicaciones en protocolos TCP/IP


http://www.comit.com/ Multimedia: Compresión de Audio/Video
Aplicaciones en tiempo real

New Horizonts GU Digitalizadores, Cámaras de Video (120Mbytes/sec)


http://www.netcomuk.co.uk/~newhoriz/index. Video en tiempo real
html Puertos paralelos de comunicaciones para PC

Design Service Segments Diseño de microprocesadores complejos


http://www.smartech.fi/ Dispositivos para telecomunicaciones, DSP
Aplicaciones en diseños para control industrial

Tabla 1.6 Compañías que incorporan lógica programable en sus diseños.

4 Fuente de información: http://www.fgpa.com


Estado actual de la lógica programable 25

1.5 La lógica programable y los lenguajes de descripción


en hardware (HDL)

Como consecuencia de la creciente necesidad de integrar un mayor número


de dispositivos en un solo circuito integrado, se desarrollaron nuevas herra-
mientas de diseño que auxilian al ingeniero a integrar sistemas de mayor
complejidad. Esto permitió que en la década de los cincuenta aparecieran los
lenguajes de descripción en hardware (HDL) como una opción de diseño pa-
ra el desarrollo de sistemas electrónicos elaborados. Estos lenguajes alcanza-
ron mayor desarrollo durante los años setenta, lapso en que se desarrollaron
varios de ellos como IDL de IBM, TI-HDL de Texas Instruments, ZEUS de
General Electric, etc., todos orientados al área industrial, así como los len-
guajes en el ámbito universitario (AHPL, DDL, CDL, ISPS, etc.) [8]. Los
primeros no estaban disponibles fuera de la empresa que los manejaba, mien-
tras que los segundos carecían de soporte y mantenimiento adecuados que
permitieran su utilización industrial. El desarrollo continuó y en la década de
los ochenta surgieron lenguajes como VHDL, Verilog, ABEL 5.0, AHDL,
etc., considerados lenguajes de descripción en hardware porque permitieron
abordar un problema lógico a nivel funcional (descripción de un problema
sólo conociendo las entradas y salidas), lo cual facilita la evaluación de solu-
ciones alternativas antes de iniciar un diseño detallado.
Una de las principales características de estos lenguajes radica en su ca-
pacidad para describir en distintos niveles de abstracción (funcional, trans-
ferencia de registros RTL y lógico o nivel de compuertas) cierto diseño. Los
niveles de abstracción se emplean para clasificar modelos HDL según el gra-
do de detalle y precisión de sus descripciones [4].
Los niveles de abstracción descritos desde el punto de vista de simula-
ción y síntesis del circuito pueden definirse como sigue:

• Algorítmico: se refiere a la relación funcional entre las entradas y sa-


lidas del circuito o sistema, sin hacer referencia a la realización final.
• Transferencia de registros (RT): Consiste en la partición del sistema
en bloques funcionales sin considerar a detalle la realización final de
cada bloque.
• Lógico o de compuertas: el circuito se expresa en términos de ecua-
ciones lógicas o de compuertas.

1.5.1 VHDL, lenguaje de descripción en hardware

En la actualidad, el lenguaje de descripción en hardware más utilizado a ni-


vel industrial es VHDL 5 (Hardware Description Language), que apareció en

5 Fuente de información: http://www.fgpa.com


26 V H D L : El arte de programar sistemas digitales

la década de los ochenta como un lenguaje estándar, capaz de soportar el


proceso de diseño de sistemas electrónicos complejos, con propiedades para
reducir el tiempo de diseño y los recursos tecnológicos requeridos. El Depar-
tamento de Defensa de Estados Unidos creó el lenguaje VHDL como parte
del programa "Very High Speed Integrated Circuits" (VHSIC), a partir del
cual se detectó la necesidad de contar con un medio estándar de comunica-
ción y la documentación para analizar la gran cantidad de datos asociados
para el diseño de dispositivos de escala y complejidad deseados [9]; es decir,
VHSIC debe entenderse como la rapidez en el diseño de circuitos integrados.
Después de varias versiones revisadas por el gobierno de los Estados Uni-
dos, industrias y universidades, el IEEE (Instituto de Ingenieros Eléctricos y
Electrónicos) publicó en diciembre de 1987 el estándar IEEEstd 1076-1987.
Un año más tarde, surgió la necesidad de describir en VHDL todos los ASIC
creados por el Departamento de Defensa, por lo que en 199.3 se adoptó el es-
tándar adicional de VHDL IEEE1164.
Hoy en día VHDL se considera como un estándar para la descripción,
modelado y síntesis de circuitos digitales y sistemas complejos. Este lenguaje
presenta diversas características que lo hacen uno de los HDL más utilizados
en la actualidad.

1.5.2 Ventajas del desarrollo de circuitos integrados con VHDL

A continuación se exponen algunas de las ventajas que representan los cir-


cuitos integrados con VHDL:

• Notación formal. Los circuitos integrados VHDL cuentan con una


notación que permite su uso en cualquier diseño electrónico.
• Disponibilidad pública. VHDL es un estándar no sometido a paten-
te o marca registrada alguna, por lo que cualquier empresa o institu-
ción puede utilizarla sin restricciones. Además, dado que el IEEE lo
mantiene y documenta, existe la garantía de estabilidad y soporte.
• Independencia tecnológica de diseño. VHDL se diseñó para sopor-
tar diversas tecnologías de diseño (PLD, FPGA, ASIC, etc.) con dis-
tinta funcionalidad (circuitos combinacionales, secuenciales, síncro-
nos y asincronos), a fin de satisfacer las distintas necesidades de
diseño.
• Independencia de la tecnología y proceso de fabricación. VHDL se
creó para que fuera independiente de la tecnología y del proceso de fa-
bricación del circuito o del sistema electrónico. El lenguaje funciona
de igual manera en circuitos diseñados con tecnología MOS, bipola-
res, BICMOS, etc., sin necesidad de incluir en el diseño información
Estado actual de la lógica programable 27

concreta de la tecnología utilizada o de sus características (retardos,


consumos, temperatura, etc.), aunque esto puede hacerse de mane-
ra opcional.

• Capacidad descriptiva en distintos niveles de abstracción. El proce-


so de diseño consta de varios niveles de detalle, desde la especificación
hasta la implementación final (niveles de abstracción). VHDL ofrece la
ventaja de poder diseñar en cualquiera de estos niveles y combinarlos,
con lo cual se genera lo que se conoce como simulación multinivel.
• Uso como formato de intercambio de información. VHDL permite
el intercambio de información a lo largo de todas las etapas del proce-
so de diseño, con lo cual favorece el trabajo en equipo.
• Independencia de los proveedores. Debido a que VHDL es un len-
guaje estándar, permite que las descripciones o modelos generados en
un sitio sean accesibles desde cualquier otro, sean cuales sean las he-
rramientas de diseño utilizadas.
• Reutilización del código. El uso de VHDL como lenguaje estándar
permite reutilizar los códigos en diversos diseños, sin importar que ha-
yan sido generados para una tecnología (CMOS, bipolar, etc.) e imple-
mentación (FPGA, ASIC, etc.) en particular.
• Facilitación de la participación en proyectos internacionales. En la
actualidad VHDL constituye el lenguaje estándar de referencia a ni-
vel internacional. Impulsado en sus inicios por el Departamento de
Defensa de Estados Unidos, cualquier programa lanzado por alguna
de las dependencias oficiales de ese país vuelve obligatorio su uso pa-
ra el modelado de los sistemas y la documentación del proceso de
diseño [111. Este hecho ha motivado que diversas empresas y univer-
sidades adopten a VHDL como su lenguaje de diseño.

En Europa la situación es similar, ya que en nuestros días la mayoría de


las grandes empresas del ramo lo ha definido como el lenguaje de referencia
en todas las tareas de diseño, modelado, documentación y mantenimiento de
los sistemas electrónicos. De hecho, el número de usuarios de VHDL en Eu-
ropa es mayor que en Estados Unidos, debido en gran parte a que resulta el
lenguaje más común en la mayoría de los consorcios.

1.5.3 Desventajas del desarrollo de circuitos integrados con VHDL

Como se puede observar, VHDL presenta grandes ventajas; sin embargo, es


necesario mencionar también algunas desventajas que muchos diseñadores
consideran importantes:
28 V H D L : El arte de programar sistemas digitales

• En algunas ocasiones, el uso de una herramienta provista por alguna


compañía en especial tiene características adicionales al lenguaje, con
lo que se pierde tin poco la libertad de diseño. Como método alternati-
vo, se pretende que entre diseñadores que utilizan distintas herramien-
tas exista una compatibilidad en sus diseños, sin que esto requiera un
esfuerzo importante en la traducción del código.
• Debido a que VHDL es un lenguaje diseñado por un comité, presen-
ta una alta complejidad, ya que se debe dar gusto a las diversas opinio-
nes de los miembros de éste, por lo que resulta un lenguaje difícil de
aprender para un novato.

1.5.4 VHDL en la actualidad

La actividad que se ha generado en torno a VHDL es muy intensa. En mu-


chos países como España se han creado grupos de trabajo alrededor de dicho
lenguaje y se realizan periódicamente conferencias, reuniones, etc., donde se
presentan trabajos tanto en Estados Unidos (en el VIUF, VHDL Internatio-
nal User's Forum) como en Europa (VHDL Forum for CAD in Europe), así
como en el congreso EuroVHDL celebrado desde 1992[ 10 ].
La participación europea en el esfuerzo de estandarizar el lenguaje se
canaliza a través del proyecto ESPRIT, encabezado por SIEMENS-NIXDORF.
En el proyecto participan prácticamente todas las grandes compañías euro-
peas del sector electrónico, como ANACAD, ICL, PHILLIPS, TGI y THOM-
SON-CSF, además de diversas universidades y centros de investigación. Otras
empresas dedicadas a la microelectrónica se han ido adaptando poco a poco
al lenguaje. Incluso en Japón está teniendo una gran aceptación, no obstante
que cuentan con un lenguaje estándar propio llamado UDL/I.
El proceso de estandarización del VHDL no se detuvo con la primera ver-
sión del lenguaje (VHDL'87), sino que ha continuado con la nueva versión
(VHDL'93) y constantes actualizaciones, mejoras y metodologías de uso. En-
tre estas adiciones o actualizaciones se encuentra una muy importante: la ex'
tensión analógica (1076.1), que permite la utilización de un lenguaje único
en todas las tareas de especificación, simulación y síntesis de sistemas electró-
nicos digitales, analógicos o mixtos.

1.6 Compañías de soporte en hardware y software

Existen diversas compañías internacionales que fabrican o distribuyen dispo-


sitivos lógicos programables. Algunas ofrecen productos con características
generales y otras introducen innovaciones a sus dispositivos. A continuación
se mencionan algunas de las más importantes.
Estado actual de la lógica programable 29

Altera Corporation
Altera es una de las compañías más importantes de producción de dispositi-
vos lógicos programables y también es la que más familias ofrece, ya que
tiene en el mercado ocho familias: APEX™20K, F L E X ® 1 0 K , FLEX 8000,
FLEX 6000, M A X ® 9000, MAX7000, MAX5000, y Classic™. La capacidad
de integración en cada familia varía desde 300 hasta 1 000 000 de compuer-
tas utilizables por dispositivo, además de que todas tienen la capacidad de in-
tegrar sistemas complejos.
Las características generales más significativas de los dispositivos Altera
son las siguientes:

• Frecuencia de operación del circuito superior a los 175 Mhz y retardos


pin a pin de menos de 5 ns.
• La implementación de bloques de arreglos integrados (EAB), que se
usan para realizar circuitos que incluyan funciones aritméticas como
multiplicadores, ALU, y secuenciadores. También se aplican en micro-.
procesadores, microcontroladores y funciones complejas con DSP
(procesadores digitales de señales) [12].
• La programación en sistema (ISP), que permite programar los disposi-
tivos montados en la tarjeta (Fig. 1.19).

En la figura 1.19a observamos la programación en sistema; es decir, no


hay que retirar el circuito de la tarjeta para programarlo. En la figura 1.19b
se muestra lo contrario: en este caso el tipo de programación es similar a la
grabación cotidiana que realizamos, debido a que se debe colocar y quitar el
dispositivo todas las veces que se quiera programar.

a) b)

Figura 1.19 a) Programación en sistema, b) Programación en montaje.

• Más de cuarenta tipos y tamaños de encapsulados, incluyendo el


T Q F P (thin quad fíat pack), el cual es un dispositivo delgado, de for-
ma cuadrangular y plano, que permite ahorrar un espacio considera-
ble en la tarjeta.
• Operación multivoltaje, entre los 5 y 3.3 volts, para máximo funcio-
namiento y 2.5 V en sistemas híbridos.
30 V H D L : El arte de programar sistemas digitales

• Potentes herramientas de software como MAX + PLUS II, que soporta


todas las familias de dispositivos de Altera, así como el software están-
dar compatible con VHDL.

Cypress semiconductor
La compañía Cypress Semiconductor ofrece una amplia variedad de disposi-
tivos lógicos programables complejos (CPLD), que se encuentran en las
familias Ultra37000™ y FLASH370i™. Cada una de estas familias ofrece la
reprogramación en sistema (ISR), la cual permite reprogramar los dispositi-
vos las veces que se quiera dentro de la tarjeta.
Todos los dispositivos de ambas familias trabajan con voltajes de operación
de 5 o de 3.3 V y en su interior contienen desde 32 hasta 128 macroceldas.
En lo que respecta a software de soporte, Cypress ofrece su poderoso pro-
grama Warp, el cual se basa en VHDL. Este programa permite simular de
manera gráfica el circuito programado, generando un archivo de mapa de fu-
sibles (jedec) que puede ser programado directamente en cualquier PLD,
CPLD o FPGA de Cypress o de otra compañía que sea compatible.

Clear logic
La compañía Clear Logic introdujo en noviembre de 1998 los dispositivos ló-
gicos procesados por láser (LPDL), tecnología que provee reemplazos de los
dispositivos de la Compañía Altera, pero a un costo y tamaño menores. La
tecnología LPLD puede disponer de arriba de un millón de transistores para
construir alrededor de 512 macroceldas. Sustituye al dispositivo MAX
7512A de Altera y reduce el tamaño más de 6 0 % respecto al chip original.
Las primeras familias introducidas por Clear Logic son CL7000 y CL7000E,
las cuales tienden a crecer en un futuro.

Motorola
Motorola, empresa líder en comunicaciones y sistemas electrónicos, ofre-
ce también dispositivos FPGA y FPAA (Field Programmable Array Ana-
log: campos programables de arreglos analógicos). Los FPAA son los
primeros campos programables para aplicaciones analógicas, utilizados en
las áreas de transporte, redes, computación y telecomunicaciones.

Xilinx
Xilinx es una de las compañías líder en soluciones de lógica programable, in-
cluyendo circuitos integrados avanzados, herramientas en software para di-
seño, funciones predefinidas y soporte de ingeniería. Xilinx fue la compañía
que inventó los FPGA y en la actualidad sus dispositivos ocupan más de
la mitad del mercado mundial de los dispositivos lógicos programables.
Estado actual de la lógica programable 31

Los dispositivos de Xilinx reducen de manera significativa el tiempo re-


querido para desarrollar aplicaciones en las áreas de computación, telecomu-
nicaciones, redes, control industrial, instrumentación, aplicaciones militares
y para el consumo general.
Las familias de CPLD XC9500 y XC9500XL proveen una larga variedad
de dispositivos programables con características que van desde los 5 a 3.3
volts de operación, 36 a 288 macroceldas, 34 a 192 terminales de entrada y
salida, y programación en sistema.
Los dispositivos de las familias XC4000 y XC1700 de FPGA manejan vol-
tajes de operación entre los 5 y 3.3 V, una capacidad de integración arriba de
las 40 000 compuertas y programación en sistema.
En lo que se refiere a software, Xilinx desarrolló una importante
herramienta llamada Foundation Series, que soporta diseños estándares
basados en ABEL-HDL y en VHDL. Esta herramienta se ofrece en versión
estudiantil y profesional.
De manera general, existe una amplia y variada gama de dispositivos ló-
gicos programables disponibles en el mercado. La elección de uno u otro de-
pende de los recursos con que cuenta el diseñador y los requerimientos del
diseño. En la tabla 1.7 se muestran de forma simplificada algunas de las com-
pañías que ofrecen soluciones de lógica programable, mientras que en la
figura 1.20 se presentan sus productos.

Futuro de la lógica programable

Debido al auge actual de la lógica programable, no es difícil suponer que


se pretende mejorar a futuro las herramientas existentes con el fin de ex-
tender su campo de aplicación a más áreas. Algunas compañías buscan
mejorar la funcionalidad e integración de sus circuitos a fin de competir
con el mercado de los ASIC. Esto mejoraría el costo por volumen, el ciclo
de diseño y se disminuiría el voltaje de consumo.
Otra característica que se pretende mejorar es la reprogramación de los
circuitos, debido a que su implementación requiere muchos recursos físicos
y tecnológicos. Por esta razón se busca cambiar las metodologías de diseño
para incluir sistemas reprogramables por completo.
Algunos desarrollos cuentan con memoria RAM o microprocesadores
integrados en la tarjeta de programación. La tendencia de algunos fabrican-
tes es integrar estos recursos en un circuito.
32 V H D L : El arte de programar sistemas digitales

Compañía Productos de hardware Herramientas software

Altera FPGA: Familias APEX 20K, FLEX MAX + PLUS II: Soporta VHDL,
10K, FLEX 6000, MAX 9000, MAX Verilog y entrada esquemática.
7000, MAX 5000 y CLASSIC

Chip Express LPGA (Laser Program Gate


Array): CX3000, CX2000 y QulCk Place&route: Diseños en
QYH500 base a vectores de prueba (CTV ,
ChipExpress Test Vector) y VHDL
Clear Logic LPLD (Laser-processed Logic
Device): CL7000, CL7000E, Desarrollos basados en herramientas
CL7000S de Altera.

Cypress PLD: GAL22V10


Semiconductors CPLD: Ultra.37000, FLASH370Í WARP: Soporta VHDL, Verilog y
esquemáticos.
FPAA (Field Programmable Analog
Motorola Array): MPAA020 Easy Analog: herramienta de diseño
interactiva exclusiva para diseño con
FPAA.
FPGA: Familias MACH4 y
Vantis MACH5A MACHXL: VHDL y Verilog

PAsic (Asic Programable) y la


Quick Logic familia QL de FPGA. Quick Works: herramienta de
soporte para VHDL, Verilog y cap-
tura esquemática.
CPLD: Familia XC9500 y
Xilinx XC9500XL Xilinx Foundation Series: soporta
FPGAs Familia XC400 y XC1700 ABEL-HDL, VHDL y esquemáticos.

Tabla 1.7 Compañías de Soporte de lógica programable.

Figura 1.20 Dispositivos lógicos programables.


Estado actual de la lógica programable 33

Ejercicios
1.1 ¿Qué significa monolítico?
1.2 ¿Cuál es el significado de las siglas ASIC?
1.3 ¿Cuáles son las categorías de tecnologías de fabricación de CI?
1.4 Describa en qué consiste el diseño Full Custom.
1.5 Mencione las características más relevantes del diseño Full Custom.
1.6 ¿Cuál es el significado de las siglas PLD?
1.7 ¿Qué tienen en común los dispositivos PROM, PLA, PAL, GAL y los
CPLD y FPGA?
1.8 ¿Qué es OLMC?
1.9 ¿Cuál es el significado de las siglas CPLD y FPGA?
1.10 Describa cómo se encuentra estructurado un CPLD.
1.11 Describa la estructura de un FPGA en términos generales.
1.12 ¿Qué es un compilador lógico?
1.13 ¿Cuál es el significado de las siglas VHDL?
1.14 ¿Qué significado tienen las siglas VHSIC?
1.15 Describa tres ventajas de la programación en VHDL.
1.16 ¿Cuáles son las compañías más importantes en la fabricación de
dispositivos lógicos programables?
34 V H D L : El arte de programar sistemas digitales

Bibliografía

Maxinez David G., Alcalá Jessica: Diseño de Sistemas Embebidos a través del
Lenguaje de Descripción en Hardware VHDL. XIX Congreso Internacional
Académico de Ingeniería Electrónica. México, 1997.
Kloos C., Cerny E.: Hardware Description Language and their aplications. Spe-
cification, modelling, verification and synthesis of microelectronic systems. Chap-
man&Hall, 1997.
IEEE: The IEEE standard VHDL Language Reference Manual. IEEE-Std-1076-
1987,1988.
Advanced Micro Devices: Programmable Logic Handbook/Data book. Advan-
ced Micro Devices, 1986.
Zainalabedin Navabi: Analysis and Modeling of Digital Systems. McGraw-Hill,
1988.
Altera Corporation: User Configurable Logic Data Book. Altera Corp., 1988.
Altera Corporation: The Maximalist Handbook. Altera Corp., 1990.
Ismail M., Fiez T.: Analog VLSI. McGraw-Hill, 1994.
Hayes John E: Computer Architecture and Organization. McGraw-Hill, 1979.
Wakerly J. F.: Digital Desing Principles and practices. Prentice Hall, 1990.
Skahill Kevin.: VHDL for programmable logic. Addison Wesley, 1996.
Cypress Corporation: www.cypress.com
Xilinx Corporation: www.xilinx.com
Organización Mundial de VHDL: www.vhdl.org
Campos de lógica programable: www.fpga.com

Referencias

[1] Maxinez G. David: Amplificación de Señales. ITESM-CEM, 1993.


[21 Hon R. W. y Sequin C.H.: A guide to LSI implentation. Xerox Parc,
1980.
[31 Mead C. y Conway L.: Introduction to VLSI Systems. Addison Wesley,
VLSI series 1980.
[4] Teres LI., Torroja Y., Olcoz S., Villar E.: VHDL Lenguaje Estándar de Di-
seño Electrónico. McGraw-Hill, 1998.
[5] Floyd T. L.: Fundamentos de Sistemas Digitales. Prentice Hall, 1998.
[6, 7] Van den Bout Dave: The practical Xilinx Designer Lab Book. Prentice
Hall, 1998.
[8] Instituto de Ingeniería Eléctrica y Electrónica, IEEE. Revista Computer.
IEEE, 1977.
[9] Delgado C., Lecha E., Moré M., Terés Ll., Sánchez L.: Introducción a
los lenguajes VHDL, Verilogy UDL/Í. Novática No. 112, España, 1993.
Estado actual de la lógica programable 35

[9] Delgado C., Lecha E., Moré M., Terés LL, Sánchez L.: Introducción a
los lenguajes VHDL, Verilog y UDL/I. Novática No. 112, España, 1993.
[10] Ecker W.: The Design Cube. Euro VHDL Forum, 1995.
[11] Novatica (varios autores): Monografía sobre los lenguc !es de diseño de
hardware. Revista Novatica, núms. 112-113, nov-94 a leb-95.
[12] Altera Corporation: www.altera.com

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy