Você está na página 1de 28

ALEXANDER ANGULO PREZ

ID: UB40218SSY48898

LICENCIATURA EN INGENIERIA DE SISTEMAS

TRABAJO DE INVESTIGACIN

La arquitectura de computadores y su vinculacin a la lgica digital en el


diseo y programacin de computadores, como elemento clave de la
enseanza en sistemas
NDICE DE CONTENIDOS

NDICE DE GRFICOS ..................................................................................... 4

NDICE DE TABLAS .......................................................................................... 5

RESUMEN ......................................................................................................... 6

INTRODUCCIN ............................................................................................... 7

DESARROLLO ................................................................................................... 9

Antecedentes .................................................................................................. 9

Los circuitos lgicos ...................................................................................... 10

Operaciones lgicas de Boole ...................................................................... 11

La complementacin lgica ....................................................................... 11

La suma lgica ........................................................................................... 12

El producto lgico ...................................................................................... 12

Puertas lgicas ............................................................................................. 13

Las puertas OR .......................................................................................... 13

Las puertas AND ....................................................................................... 13

Las puertas NOT ....................................................................................... 14

Dispositivos lgicos ....................................................................................... 14

Almacenamiento de la configuracin ......................................................... 15

Arquitecturas de dispositivos programables .............................................. 17

Herramientas de software ............................................................................. 23

Herramientas de alto nivel ......................................................................... 24


CONCLUSIONES............................................................................................. 26

BIBLIOGRAFA ................................................................................................ 28
NDICE DE GRFICOS

Grfico 1: Puerta OR ........................................................................................ 13

Grfico 2: Puerta AND ...................................................................................... 14

Grfico 3: Puerta NOT ...................................................................................... 14

Grfico 4: Diferentes implementaciones en dos niveles AND-OR .................... 18

Grfico 5: Esquema lgico en dos niveles de una PROM ................................ 18

Grfico 6: Esquema de una PLA ...................................................................... 19

Grfico 7: Celda bsica con plano AND programable y OR fijo, a la salida de


cada funcin lgica se incorpora un FF ............................................................ 20

Grfico 8: Arquitectura y celda lgica del Algotronix CAL ................................ 21

Grfico 9: Esquema genrico de un PLD, plano AND variable, plano OR fijo, FF


y realimentacin ............................................................................................... 21

Grfico 10: Interconexin de bloques dentro de un PLD .................................. 22

Grfico 11: Esquema interno de una FPGA ..................................................... 23


NDICE DE TABLAS

Tabla 1: Tabla de verdad de la complementacin lgica ................................. 11

Tabla 2: Tabla de verdad de la suma lgica ..................................................... 12

Tabla 3: Tabla de verdad del producto lgico .................................................. 12


RESUMEN

La arquitectura de computadores utiliza la lgica digital de dispositivos lgicos


cuyas interconexiones pueden ser configuradas por parte del los usuarios para
dar lugar a un diseo determinado. Actualmente, estos dispositivos se han
convertido en componentes esenciales en todo diseo electrnico digital,
desplazando a los tradicionalmente conocidos como componentes discretos
sobre todo en los diseos de los computadores.

La arquitectura tecnologa de la lgica programable ha significado un cambio


de paradigma en el diseo electrnico: un circuito que puede transformarse va
software; ofrece una mayor cantidad de ventajas y posibilidades dentro de los
sistemas computarizados. Este cambio de contexto en la forma de disear ha
producido importantes innovaciones en la forma de instituir la lgica
computacional.

En el presente ensayo, se exponen una serie de experiencias tericas sobre la


ingeniera en sistemas utilizando los mltiples conceptos en el rea. As, se
plantea el estudio de un tema tecnolgico como es la lgica digital, eligiendo
como campo de aplicacin la utilizacin de esta tecnologa en la arquitectura de
computadores. Se comenzar estudiando diferentes recomendaciones en la
enseanza de la ingeniera, profundizando los aspectos prcticos, de diseo y
de aplicacin. Luego se realiza una puesta al da en profundidad de la lgica
digital y sus elementos afines, incluyendo los dispositivos, el proceso de diseo
computacional y las herramientas utilizadas.

Por ltimo se presentan un conjunto de conclusiones que determine las


experiencias en la arquitectura de computadores dentro de un nivel educativo y
tecnolgico.

Palabras claves: Arquitectura, computadoras, lgica, digital, diseo.


INTRODUCCIN

A nivel universitario la enseanza juega un rol muy importante cuando se busca


la comprensin de temas dentro de la arquitectura de computadores, donde se
investigacin en reas tcnicas pero no se involucrando a la enseanza
conceptual a profundidad. Lo usual, acadmicamente hablando es mostrar el
estado del arte en un tema y aplicarlo por medio de algn desarrollo, en el cual
pueden intervenir algoritmos, modelos, software o hardware. El enfoque de
este ensayo es presentar el estado del arte del diseo digital utilizando la lgica
digital, y las aplicaciones y desarrollos innovadores en el mbito computacional,
que transformara la ingeniera en sistemas.

Se plantea entonces el estudio de un tema tecnolgico como es la lgica digital


y su vinculacin en el diseo y programacin de computadores. Este abordaje
implic un desafo, por un lado dominar una disciplina y una determinada
tecnologa, y por otro combinar ese conocimiento con metodologas modernas
para generar innovaciones tecnolgicas acadmicas, que vienen siendo
aplicadas a cursos reales desde hace ms de cinco aos.

Los aportes principales que determinan este trabajo son:

La puesta al da en la lgica digital, incluyendo dispositivos, el proceso


de diseo y las herramientas utilizadas.
El estudio sobre diferentes recomendaciones en la enseanza de la
ingeniera haciendo hincapi en las actividades prcticas, de diseo y de
laboratorio.
La recopilacin de las experiencias de investigacin y experimentacin
en metodologas de arquitectura de computadores.

Como resultados directos dentro de esta investigacin se mencionan:

La mejora de los conceptos tericos sobre la arquitectura de


computadores.
Los dispositivos lgicos digitales tienen ms de veinte aos de
existencia, y hoy en da es intolerante pensar en diseos digitales que
no los utilicen, para lo cual es pertinente conocer su tema a profundidad.
As, el autor (Hill, 2014), refiere:

En sus comienzos estos dispositivos fueron utilizados para sustituir diseos


realizados con lgica discreta y posteriormente para sustituir diseos full-
custom cuando los volmenes de produccin son bajos. Pero una de las
mayores ventajas de estos dispositivos, que en sus orgenes no fue
adecuadamente valorada, es la capacidad de ser reprogramados. Es en esta
flexibilidad en donde se encuentra el mayor atractivo de esta tecnologa,
permitiendo pasar un diseo de la idea al silicio en tiempos muy cortos. (Pg.
79)

Dentro de este contexto (Britt, 2013, pg. 119), () la lgica digital permite
obtener velocidades hardware con flexibilidad software. La posibilidad de
reutilizacin del hardware programable abarata su costo ya que puede
utilizarse exactamente el mismo hardware para varias aplicaciones cambiando
exclusivamente su programacin interna.

La tecnologa de la lgica digital o reconfigurable ofrece, entonces un cambio


de paradigma: hardware que puede modificarse va software. De la misma
manera que una computadora puede escribir datos en una memoria, la misma
computadora puede grabar un determinado circuito dentro de un chip, y
cambiarlo tantas veces como se quiera. El circuito se modifica internamente,
sin la necesidad de que existan cambios fsicos externos.

El objetivo de este proyecto investigativo es conocer las distintas alternativas


que ofrece este nuevo paradigma, incursionando en diversos aspectos del
diseo con lgica programable aplicados en la mejora del diseo digital. El
trabajo puede dividirse claramente en dos partes: aplicaciones a enseanza
bsica y aplicaciones avanzadas. En la parte bsica se presenta el diseo
lgico digital con la introduccin de una nueva modalidad de aplicacin y en la
parte avanzada se presentan experiencias en las que se desarrollaron
aplicaciones realizadas con dichos elementos.
DESARROLLO

Antecedentes

Se sabe con certeza la importancia que tienen las actividades prcticas y las
experiencias conceptuales del diseo en la enseanza de la ingeniera en
sistemas. El autor (Willdet, 2012, pg. 57), refiere: la ingeniera sin actividades
prcticas es una disciplina diferente. () el diseo y las sesiones prcticas son
el corazn de una educacin en ingeniera

Dentro del mismo contexto (Vela, 2014), cita:

La forma ms usual de ensear a disear y de tener una significativa


experiencia en diseo es con proyectos de diseo. A los estudiantes,
usualmente se les da un problema de diseo y se les dice que lo diseen.
Puesto que los ingenieros aprenden a disear diseando, este es ciertamente
un procedimiento apropiado. Ms an, la gente recuerda las cosas que hizo.
Nosotros podemos recordar nuestros proyectos de diseo (y nuestros
laboratorios) veinticinco aos despus, pero no podemos recordar los detalles
de las clases que recibimos. (Pg. 122)

En cuanto, a las herramientas de software a utilizar, el autor (Cesare, 2014),


dicta:

Una universidad que no utilice software profesional est preparando a los


estudiantes para un tipo de trabajo que ya no existe. Creemos que esto
mismo puede aplicarse tanto a las herramientas de software como hardware.
Desde el punto de vista de un departamento la excelencia en la parte prctica
es una fuente de orgullo. (Pg. 34)

En algunos casos la utilizacin de ciertas tecnologas permite la realizacin de


casos prcticos y de experiencias de diseo con costos menores. Este es el
caso del software por ejemplo, ya que con una computadora se pueden realizar
una gran cantidad de experiencias diferentes. Un caso similar se plantea con
los dispositivos lgicos programables, ya que la capacidad de reprogramacin
de los mismos hace que una misma plataforma pueda utilizarse para realizar
mltiples experiencias.
Dentro del contexto numrico se utiliza el sistema de representacin decimal,
en tanto que, dependiendo del idioma, dispone de un alfabeto que representa
estas letras. Siguiendo el mismo principio que gua al hombre, las
computadoras tienen su propio sistema de representacin. Debido a su
construccin basada fundamentalmente en circuitos electrnicos digitales,
utiliza un sistema binario.

Esto obliga a transformar la representacin de nuestra informacin, tanto


numrica como alfanumrica, a una representacin binaria para que la
mquina sea capaz de procesarlos. As, el sistema decimal como el binario
estn basados en los mismos principios. En ambos, la representacin de un
nmero se efecta por medio de cadenas de smbolos, los cuales representan
una determinada cantidad dependiendo de cada smbolo y la posicin que
ocupa dentro de la cadena con respecto al denominado punto (o coma)
decimal.

Por cuestiones de ndole tcnica, los circuitos electrnicos que conforman una
computadora suelen estar capacitados para reconocer seales elctricas de
tipo digital; por lo tanto, se hace necesario que los mtodos de codificacin
internos tengan su origen en el sistema binario, y con ellos se pueda
representar todo tipo de informaciones y rdenes que sean manejadas por la
computadora. En los circuitos electrnicos suele representarse la presencia de
tensin (electricidad) en un punto de un circuito por medio de un 1, en tanto
que 0 representa la ausencia de dicha tensin.

En el prximo apartado comenzar realizando una comparacin entre hardware


y software en el contexto de ingeniera en sistemas, vinculados a la lgica
matemtica.

Los circuitos lgicos

La lgica digital est fundamentada en la base matemtica formada por el


lgebra de (Boole, 1853). Este mtodo de anlisis consiste en que todos los
elementos poseen nicamente dos estados (biestables) o dos valores,
verdadero o falso (1 0) que son opuestos entre s, no permitindose nunca la
adopcin de estados intermedios. Estudiando las distintas asociaciones entre
ellos se obtienen las leyes generales sobre los procesos lgicos. Donde,
(Shannon, 1920) aplic estas tcnicas de estudio, a los circuitos compuestos
de elementos que solo pueden adoptar dos estados estables posibles,
apareciendo entonces los llamados circuitos lgicos. Por lo expuesto
anteriormente, el lgebra de (Boole, 1853) es el sistema matemtico empleado
en el diseo de circuitos lgicos, que permite identificar mediante smbolos el
objeto de un circuito lgico de modo que su estado sea equivalente a un
circuito real.

Operaciones lgicas de Boole

Se definen bsicamente tres tipos de operaciones sobre las variables del


lgebra de (Boole, 1853) que son: La complementacin lgica, la suma lgica y
el producto lgico.

La complementacin lgica

El autor (Boole, 1853, pg. 155), expresa: Sea una variable booleana A, que
por el hecho de serlo solamente podr poseer dos estados.

Si en un instante determinado posee el estado lgico 1, se dir que su estado


inverso o complementado ser el 0. Si por el contrario la variable A posee el
estado lgico 0, su complemento ser el 1. El complemento de una variable A
se representa simblicamente por: (con una barra encima de la variable).
Otra forma de indicacin puede utilizar el smbolo , adelante de la variable
(A).

Tabla 1: Tabla de verdad de la complementacin lgica

Fuente: (Boole, 1853, pg. 176)


La suma lgica

El autor (Boole, 1853, pg. 158), define:

La operacin lgica suma entre dos o ms conjuntos (o variables booleanas)


se representa mediante el signo "+". Por tanto si tenemos C = A + B,
leeremos el conjunto C es la suma de los conjuntos A y B. Sin embargo
suele leerse C es igual a A o B.

Esta operacin se denomina tambin reunin de conjuntos y puede


representarse tambin con el smbolo v.

Tabla 2: Tabla de verdad de la suma lgica

Fuente: (Boole, 1853, pg. 182)

El producto lgico

La operacin producto entre dos conjuntos se representa mediante el smbolo


*, y da como resultado un conjunto formado por elementos comunes a dichos
conjuntos. Esta operacin se denomina tambin interseccin de conjuntos y el
smbolo habitualmente utilizado es ^. Por tanto se tiene que D = A * B
representa un producto y se lee D es igual a A por B, o tambin D es igual a
A y B.

Tabla 3: Tabla de verdad del producto lgico

Fuente: (Boole, 1853, pg. 182)


Puertas lgicas

Existe un convenio grfico para representar dispositivos (computacionales,


electrnicos, hidrulicos, mecnicos, etc.) que lleven a cabo funciones
booleanas elementales y que, en funcin de la combinacin o combinaciones
diseadas, se obtendrn funciones ms complejas. Las puertas lgicas son
dispositivos computacionales que desarrollan las funciones booleanas y son
bsicamente: Puertas OR, AND, NOT, NOR, NAND, OR Exclusiva y NOR
Exclusiva.

Las puertas OR

Desarrollan la suma booleana. Su smbolo grfico est representado en grfico


1, donde se puede apreciar que se trata de una puerta OR de dos entradas y
que a su salida proporciona la suma lgica de ambas. Su tabla de la verdad
corresponde evidentemente a la suma booleana.

Grfico 1: Puerta OR

Fuente: (Boole, 1853, pg. 211)

Si se desea tener una puerta OR de tres entradas no se tendr ms que aadir


una tercera lnea de entrada y su salida dar la suma de las tres variables de
entrada.

Las puertas AND

Corresponden al producto booleano de las variables de entrada,


proporcionando el resultado en su lnea de salida. Su smbolo lgico puede
verse en el grfico 2.
Grfico 2: Puerta AND

Fuente: (Boole, 1853, pg. 221)

Como se puede apreciar, se trata de una puerta AND de dos entradas, si se


desea tener una puerta AND de tres entradas se tiene que aadir una tercera
lnea en la entrada obteniendo en la salida el producto lgico de las tres
variables de entrada.

Las puertas NOT

Realizan la funcin complementacin o inversin. A estas puertas se las


denomina generalmente inversores. Su representacin simblica es la
mostrada en el grfico 3, aunque en realidad, la inversin propiamente dicha se
representa nicamente por el crculo final del smbolo mostrado, siendo la parte
triangular la representacin de un amplificador de seal (buffer) que no invierte
ni complementa la entrada.

Grfico 3: Puerta NOT

Fuente: (Boole, 1853, pg. 221)

Dispositivos lgicos

Los dispositivos lgicos digitales son definidos como () circuitos lgicos


digitales en los cuales el usuario puede grabar el circuito a implementar
(Moreno, 2004, pg. 73). Los dispositivos lgicos digitales pueden clasificarse
de acuerdo a la tecnologa utilizada en su emisin y fabricacin, que estar
directamente asociado a la forma de programarse, y de acuerdo a su
complejidad.

Estas clasificaciones no son ortogonales ya que la tecnologa utilizada adems


de determinar el tipo de programacin posible determinar, junto con la
densidad y la arquitectura interna, el grado de complejidad del dispositivo. La
primer idea de implementacin de un dispositivo lgico reprogramable, es decir
con programacin dinmica, es atribuida a Wahlstrom que propone un circuito
con estas caractersticas.

La tecnologa de integracin de circuitos utilizada en esa poca no permita


incluir gran cantidad de transistores en un chip y por lo tanto la idea de
Wahlstrom no tiene demasiada repercusin, ya que se deban utilizar una gran
cantidad de transistores adicionales solo para programar el dispositivo.

Pasaron casi dos dcadas hasta que un dispositivo conceptualmente similar


fuera desarrollado por Xilinx (1985). As, aparecen los dispositivos
programables con programacin no voltil, y que en principio tienen una
evolucin propia, tanto en el modo de programacin como en la estructura
interna, que mayoritariamente estn basados en lgica en dos niveles. Hoy en
da la frontera entre CPLDs y FPGAs es mucho ms borrosa, ya que por
ejemplo una de las ltimas familias de CPLDs desarrolladas por Altera, la
familia MAX, si bien tiene programacin no voltil, la misma est almacenada
en una memoria Flash interna al chip, y se carga en una SRAM de
configuracin al inicializar el dispositivo.

Almacenamiento de la configuracin

La configuracin de los dispositivos lgicos digitales debe almacenarse de


algn modo dentro del dispositivo, si se analiza las diferentes formas de
almacenamiento de la configuracin, estos utilizan las mismas que para las
memorias de almacenamiento de datos, y estas son: PROM (Programmable
Read-Only Memory), o tambin llamados dispositivos OTP (One Time
Programmable). Estos dispositivos solo pueden programarse una vez.
Tradicionalmente son dispositivos de bajo costo que se utilizan en produccin
una vez que el diseo a programar est terminado y probado. EPROM
(Erasable Programmable Read-Only Memory). Estos dispositivos permiten
mltiples programaciones permitiendo el borrado con luz ultra-violeta.
EEPROM (Electrically Erasable Programmable Read-Only Memory). Similares
a los anteriores, pero el borrado se realiza en forma elctrica. Los dispositivos
ms primitivos se borran utilizando tensiones especiales ms elevadas que los
niveles lgicos utilizados por el dispositivo en funcionamiento. Las versiones
ms nuevas ISP (In System Programability) permiten el borrado y la nueva
programacin utilizando niveles lgicos de voltaje de modo que no es necesario
extraer el integrado del sistema y ponerlo en un programador, sino que se
puede programar en el propio sistema en el cual es utilizado.

PLICE (Programmable Low-Impedance Circuit Element) Antifuse, esta


tecnologa es propietaria de Atmel y acta al revs que un fusible: cuando no
es programado es un aislante, cuando se programa se genera un camino de
baja resistencia.

ViaLink Antifuse es la tecnologa utilizada por Quicklogic, funciona igual que el


PLICE Antifuse, pero presenta menor resistencia y menor capacidad parsita.
(300 ohms para el PLICE y 50 ohms para Vialink)

Flash SRAM (Static Random Access Memory), las memorias Flash tienen la
ventaja de ser elctricamente borrables como las EEPROM pero utilizan celdas
de menor tamao parecidas a las utilizadas por las EPROM.

SRAM (Static Random Access Memory). La programacin se escribe


exactamente igual que como se escriben datos en una RAM esttica. Estos
dispositivos son los que introducen el cambio cualitativo que los hace
reconfigurables. Pueden ser reconfigurados repetidas veces en forma muy
rpida, sin alterar la vida til del dispositivo.

Los dispositivos basados en SRAM son los nicos que permiten una
configuracin dinmica. Si bien en los dems dispositivos (excepto los basados
en PROM y Antifuse), existe la posibilidad de configurarlos mltiples veces, la
cantidad de configuraciones que aceptan est limitada a unas 10.000 y su
configuracin es lenta. Por el contrario los dispositivos basados en SRAM
permiten infinitas reprogramaciones y por lo tanto son los nicos que pueden
ser utilizados para aplicaciones de lgica reconfigurable, tanto en aplicaciones
clsicas como en aplicaciones que requieran reconfiguracin en tiempo de
corrida (run-time).

Algunos de los dispositivos basados en SRAM incorporan una caracterstica


extra que es la reconfiguracin parcial. Esto quiere decir que se puede
configurar una parte del dispositivo mientras el resto del mismo sigue en
operacin normal. La reconfiguracin parcial tiene mltiples ventajas: permite
tener varios diseos en un mismo chip y cambiarlos por partes, permite reducir
el tiempo de programacin de cada parte, y por lo tanto simplifica su utilizacin
para reprogramaciones en tiempo de corrida.

Los tiempos de configuracin dependen de la cantidad de bits de configuracin


de cada chip y de la mxima frecuencia de reloj con la cual cada dispositivo
puede ser programado. Para poner algn ejemplo cargar la configuracin
completa en un Xilinx XCV1000E, con unas 27.500 celdas lgicas, lleva
aproximadamente 12,5 ms.

Las ltimas innovaciones en configuracin de dispositivos incluyen la


compresin/descompresin del flujo de datos de configuracin como forma de
ahorrar tiempo y espacio de almacenamiento; y el encriptado de los datos para
proteger los diseos. Tambin se han incluido formas de programacin remota
para poder actualizar versiones en sistemas ya diseados.

Arquitecturas de dispositivos programables

Primero se observar tres tipos de dispositivos basados en estructuras AND-


OR, o ms genricamente diseos en dos niveles, que pueden resumirse en el
siguiente grfico:
Grfico 4: Diferentes implementaciones en dos niveles AND-OR

Fuente: (Moreno, 2004, pg. 105)

Programmable Read Only Memory PROM

Las memorias usualmente se utilizan para almacenamiento de datos, pero


pueden ser vistos como circuitos digitales que pueden implementar funciones
booleanas. Desde el punto de vista lgico una memoria PROM de N bits de
direcciones est constituida por un primer nivel de compuertas ANDs completo
(todos los minitrminos posibles), y un segundo nivel de compuertas OR
(tantas como salidas) programable. Con esta configuracin es posible
implementar cualquier funcin lgica de N variables. Las primeras PROMs
fueron desarrolladas por Harris en 1970, y en 1971 Intel introduce las EPROMs
borrables con luz ultravioleta.

Grfico 5: Esquema lgico en dos niveles de una PROM

Fuente: (Moreno, 2004, pg. 114)


El problema con la utilizacin de PROMs para la implementacin de funciones
booleanas es que usualmente son dispositivos de baja velocidad.

Programmable Logic Array PLA

Los primeros dispositivos lgicos programables comerciales fueron las PALs.


Estos dispositivos estban pensados para implementar funciones lgicas en
dos niveles AND-OR, pero no tenan el plano AND completo, sino programable.
De esta forma no es posible implementar cualquier funcin lgica de un
determinado nmero de entradas sino slo aquellas funciones que sean
minimizables y puedan ser representadas con la cantidad de trminos producto
disponibles dentro del chip. El segundo nivel o plano OR tambin es
programable.

Grfico 6: Esquema de una PLA

Fuente: (Moreno, 2004, pg. 114)

Estos dispositivos fueron comercializados a principios de los 70s pero no


tuvieron mayor xito debido a su baja performance, a su alto costo y a que no
existan herramientas CAD que corrieran en computadores de bajo costo.

PALs (Programmable Array Logic)

Los PALs introducidos en 1978 por Monolithic Memories Inc (MMI), fueron la
segunda generacin de dispositivos desarrollados y bsicamente son una
simplificacin de los PLAs. Este tipo de dispositivos mantiene la estructura de
dos planos AND-OR, pero mientras el plano AND es programable, el plano OR
se simplifica y pasa a ser fijo. Al reducir las interconexiones programables se
logra mayor velocidad.

Grfico 7: Celda bsica con plano AND programable y OR fijo, a la salida de


cada funcin lgica se incorpora un FF

Fuente: (Moreno, 2004, pg. 119)

Estos dispositivos tuvieron mayor xito comercial que los anteriores y se


utilizaron ampliamente en la sustitucin de diseos realizados con lgica
discreta del tipo glue-logic.

Adems de poder realizar funciones booleanas se agrega un flip-flop por cada


compuerta OR, de modo de poder realizar circuitos secuenciales. As aparece
el concepto de celda, macrocelda (macrocell) o CLB (Configurable Logic
Block), un bloque programable capaz de implementar una determinada funcin
lgica ms una celda de memoria o flip-flop.

Cellular Arrays

Otro tipo de dispositivos programables que presenta un enfoque diferente de


los vistos anteriormente, estn formados por un conjunto de elementos simples
interconectados entre s, pero en ellos las interconexiones son bsicamente
fijas, siendo programable la funcin que realiza cada elemento.

Antecedentes de cellular arrays pueden encontrarse a fines de los aos 60 y


principios de los 70 pero sus primeras versiones comerciales datan de mucho
tiempo despus, a fines de los 80, donde Algotronix desarrolla el dispositivo
llamado Cellular Array Logic or CAL.
Grfico 8: Arquitectura y celda lgica del Algotronix CAL

Fuente: (Moreno, 2004, pg. 143)

En el grfico anteriorer se puede ver el arreglo bidimensional de bloques,


llamados Configurable Logic Block, or CLBs. Un CLB puede realizar cualquier
operacin booleana de dos entradas e interconectarse con los bloques vecinos.
La configuracin del dispositivo era dinmica, basada en RAM.

PLDs (Programmable Logic Device) y CPLDs (Complex Programmable


Logic Device)

Los CPLDs son herederos directos de las PALs y se clasifican en la misma


categora. La celda bsica es igual y est realizada en dos niveles AND-OR,
con el primer nivel AND programable y el nivel OR fijo; y con el elemento de
memoria o Flip-Flop a la salida del OR. El almacenamiento de la programacin
es por EEPROM o Flash.

Grfico 9: Esquema genrico de un PLD, plano AND variable, plano OR fijo,


FF y realimentacin

Fuente: (Moreno, 2004, pg. 157)


Permiten la realimentacin de la salida de una celda hacia la matriz de
interconexin; de esta forma se puede lograr sintetizar funciones lgicas
complejas de ms de dos niveles o mquinas de estados si se realimentan las
salidas de los FF.

Grfico 10: Interconexin de bloques dentro de un PLD

Fuente: (Moreno, 2004, pg. 168)

Poseen matrices de interconexiones programables, y usualmente las celdas


estn agrupadas en una estructura jerrquica, con conexiones rpidas entre
vecinos. Hay una diferenciacin de bloques de entrada-salida.

FPGAs (Field Programmable Gate Array)

En 1984 Xilinx desarrolla un nuevo dispositivo que denomina Logic Cell Array
(LCA), basado en un concepto diferente a los PLDs. Los LCAs estn
compuestos de una gran cantidad de celdas lgicas cuya funcin es
programable, dichas celdas pueden ser interconectadas mediante conexiones
programables de varios tipos. Estos dispositivos y sus desarrollos posteriores
dan origen a las hoy llamadas FPGAs.

Las FPGAs estn basados en una estructura regular de bloques de


procesamiento e interconexiones programables, rodeados de bloques
dedicados a entrada salida.
Grfico 11: Esquema interno de una FPGA

Fuente: (Moreno, 2004, pg. 171)

Herramientas de software

Las herramientas CAD (Computer-Aided Design) se definen como aquellas que


realizan funciones de place and route, y layout; usualmente el trmino CAE
(Computer-Aided Engineering) se aplica mayormente a simulacin, sntesis y
anlisis de tiempos; aunque es usual utilizar ambos trminos en forma
intercambiable. El trmino EDA (Electronic Design Automation) engloba las dos
definiciones anteriores

Para disear con dispositivos lgicos programables es absolutamente


necesario el uso de un conjunto de herramientas software de buena calidad,
confiables y de fcil utilizacin. Estas herramientas son esenciales, tanto a nivel
industrial como en la formacin del ingeniero, en la medida que la integracin
progresa y ya no se puede acceder a los elementos bsicos del hardware.

Las herramientas utilizadas deben contar tambin con la capacidad de simular


y verificar el diseo en diferentes niveles y etapas del mismo. Si se trabaja con
lenguajes de especificacin hardware, por ejemplo VHDL, la forma usual de
simular es construir un test bench o banco de pruebas. El test bench se
especifica tambin en VHDL e incluye como un componente el diseo en
cuestin, generndole entradas y chequeando sus salidas. Un simulador VHDL
es capaz de ejecutar test-benches disponiendo, normalmente, de un conjunto
de utilidades que facilitan la depuracin de los modelos y la revisin de
resultados.

Herramientas de alto nivel

A medida que los diseos aumentan su complejidad aparece la necesidad de


utilizar herramientas de mayor grado de abstraccin para poder desarrollar
aplicaciones cumpliendo con las exigencias de productividad. Es claro que
cuando se aumenta el nivel de abstraccin se gana en tiempo de diseo, pero
se pierde en la optimizacin del mismo.

Actualmente todava la mayora de los diseos se realizan utilizando lenguajes


de descripcin hardware, principalmente VHDL y Verilog, y existen estrategias
especficas para manejar diseos de gran tamao. La principal es partir el
diseo en bloques ms pequeos y disear adecuadamente la jerarqua de
estos bloques as como las interfaces de los mismos. Muchos de estos bloques
pueden estar pre-hechos como IP cores, o disearse una vez y reutilizarse.

Las cosas se complican an ms porque hay que describir el comportamiento


esperado del sistema para poder verificar los bloques diseados. Si bien los
HDLs permiten esto, no son los lenguajes ms cmodos para ello. Si adems
el sistema incluye un microprocesador y por lo tanto software corriendo en l,
entonces se plantea la idea de contar con un lenguaje nico que sirva tanto
para el hardware que va estar implementado en una FPGA como para el
software del microprocesador. Cuando el sistema incluye un microprocesador y
bloques hardware hay toda una disciplina que estudia cmo particionar los
diseos llamada hardware/software codesign.

Otro punto importante cuando se piensa en diseos que utilizan plataformas


reconfigurables como aceleradores de clculo, es que la mayora de los
algoritmos estn especificados y probados en lenguajes de programacin tales
como C o Matlab y no en HDLs. Ha habido varios esfuerzos en incorporar
lenguajes de programacin al diseo con FPGAs, el problema principal es que
estos lenguajes estn concebidos para implementaciones secuenciales y no
para representar el paralelismo inherente al hardware. Si bien hay una gran
cantidad de lenguajes de programacin que han sido utilizados para sintetizar
hardware en forma ms o menos automtica, el ms utilizado es el C. Esto se
debe al grado de difusin que tiene el C, y pueden mencionarse varios
ejemplos de traductores de C a HDL. Las dificultades que se presentan hacen
que siempre estos traductores no incluyan la sintaxis completa del C sino un
subconjunto del lenguaje, y que adems introduzcan diversas modificaciones o
ampliaciones al C para representar adecuadamente el paralelismo.

Otro punto interesante es la utilizacin de lenguajes de programacin para


realizar la verificacin de un diseo. En lugar de disear un test-bench en HDL
es posible describirlo en un lenguaje de programacin. Se han desarrollado
mdulos de software que permiten enlazar simuladores HDL con paquetes
clsicos de simulacin de sistemas, un ejemplo es el vnculo entre Matlab y
Simulink con ModelSim (simulador HDL). Esto permite desarrollar el entorno de
pruebas (test benches) en un lenguaje de alto nivel, y conectar entradas y
salidas hacia bloques de hardware descritos en HDL. Otra aplicacin es la
integracin de bloques hardware descritos como HDL en modelos a escala de
sistema.
CONCLUSIONES

En la evolucin de los dispositivos lgicos programables han jugado diversos


factores, donde los dos principales han sido el aumento de la capacidad de
integracin en un chip y el desarrollo de buenas herramientas CAD.

Ha habido una interaccin de ida y vuelta entre el campo de aplicaciones en el


cual estos dispositivos son aplicables y el desarrollo de los mismos. Un
dispositivo de mayor tamao y con mayores prestaciones de velocidad
aumenta la cantidad de aplicaciones que pueden ser resueltas con l; pero a su
vez los fabricantes de dispositivos disean los mismos teniendo en cuenta los
potenciales usos futuros, aunque manteniendo la generalidad y flexibilidad. Hay
ejemplos de dispositivos que no han tenido el xito comercial esperado, como
es el caso de la familia XC6200 de 72 Xilinx que se utiliz mucho pero solo a
nivel acadmico.

As, se puede distinguir tres etapas en la evolucin de los dispositivos y sus


aplicaciones:

Los primeros dispositivos fueron utilizados para sustituir diseos


realizados con lgica discreta TTL y CMOS. Las ventajas fueron claras,
ya que utilizar dispositivos programables permite incluir en un nico
integrado toda la lgica de un determinado sistema, ahorrando espacio,
y permitiendo modificaciones del diseo sin tener que modificar el
circuito impreso.
Con la aparicin de los dispositivos de mayor tamao se ampli el
campo de aplicaciones a diseos completos de circuitos secuenciales,
mquinas de control o procesamientos de datos sencillos. El nicho de
aplicaciones de esta etapa fue el prototipado rpido, los sistemas con
especificaciones tempranas que van a evolucionar, pre-procesamiento
de entradas, etc.
Con los dispositivos disponibles hoy en da es posible implementar
aplicaciones completas y complejas dentro de un mismo chip (Soc,
SoPC), sustituyendo aplicaciones que usualmente son realizadas en
microprocesadores o DSPs, y obteniendo importantes mejoras en
velocidad. Es posible implementar aplicaciones de procesamiento de
seales o microprocesadores completos dentro de una FPGA.

Resulta interesante ver que si bien las FPGAs modernas incorporan un gran
nmero de caractersticas nuevas: PLLs, bloques de RAM, multiplicadores-
acumuladores, entradas-salidas de alta velocidad, cores de microcontroladores;
la estructura bsica del chip es la misma en los ltimos 15 aos. Es decir
celdas con LUTs y flip-flops; y que varias de las implementaciones hardware,
como los microprocesadores o los bloques aritmticos, pueden realizarse
perfectamente con la estructura bsica original.
BIBLIOGRAFA

Boole, G. (1853). Lgica matemtica. Estados Unidos: Harvard ediciones.

Britt, M. (2013). Sistemas de programacin digital. estados Unidos: Atlas


ediciones.

Cesare, A. (2014). Aplicacin de programacin . Mxico D.F.: Quetzal


ediciones.

Hill, P. (2014). Programacin lineal. Dallas - Estados Unidos: Golden Global


ediciones.

Moreno, M. (2004). Arquitectura de computadores. Mxico D.F. : Pearson.

Morris Mano, M. (2004). Arquitectura de computadores. Mxico D.F. : Pearson.

Shannon, C. (1920). Estructuras matemticas. Estados Unidos: Nobel


ediciones.

Stallings, William. (2000). Organizacin y arquitectura de computadres. Madrid:


McGraw-Hill.

Vela, C. (2014). Sistemas informticos. Lima - Per: Atlas ediciones.

Willdet, M. (2012). Experiencias conceptuales de computacin. Mxico D.F.:


Quetzalt ediciones.

Você também pode gostar