0% encontró este documento útil (0 votos)
199 vistas30 páginas

Dispositivos Lógicos Programables: Guía Completa

Este documento discute los dispositivos lógicos programables (PLDs), incluyendo sus antecedentes históricos y tipos principales como CPLDs y FPGAs. Explica que los PLDs fueron introducidos en los años 1970 y han evolucionado desde dispositivos simples como PALs y PLDs registrados hasta CPLDs y FPGAs más complejos. Los CPLDs tienen una arquitectura más sofisticada que incluye múltiples bloques lógicos y de E/S, mientras que las FPGAs tienen una arquitectura configurable

Cargado por

xxzagaxx
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Temas abordados

  • reducción de costos,
  • circuitos combinacionales,
  • dispositivos híbridos,
  • controladores de reloj,
  • circuito de reloj,
  • funcionalidad de SPLDs,
  • SPLDs,
  • arquitectura,
  • bloques de entrada/salida,
  • prueba
0% encontró este documento útil (0 votos)
199 vistas30 páginas

Dispositivos Lógicos Programables: Guía Completa

Este documento discute los dispositivos lógicos programables (PLDs), incluyendo sus antecedentes históricos y tipos principales como CPLDs y FPGAs. Explica que los PLDs fueron introducidos en los años 1970 y han evolucionado desde dispositivos simples como PALs y PLDs registrados hasta CPLDs y FPGAs más complejos. Los CPLDs tienen una arquitectura más sofisticada que incluye múltiples bloques lógicos y de E/S, mientras que las FPGAs tienen una arquitectura configurable

Cargado por

xxzagaxx
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Temas abordados

  • reducción de costos,
  • circuitos combinacionales,
  • dispositivos híbridos,
  • controladores de reloj,
  • circuito de reloj,
  • funcionalidad de SPLDs,
  • SPLDs,
  • arquitectura,
  • bloques de entrada/salida,
  • prueba

INDICE

INTRODUCCION............................................................................................................................3
1.

OBJETIVO:..............................................................................................................................4

2.

CAPITULO I : ANTECEDENTES DE LOS PLDs...............................................................4

3.

CAPITULO II : TEORIA DE LOS PLDs..........................................................................6


a.

INTRODUCCIN A LOS PLDs.........................................................................................6

b.

DISPOSITIVOS LGICOS PROGRAMABLES SIMPLES (SPLDs)............................7


i.

PROM (Programmable Read Only Memory)...................................................................8

ii.

PAL (Programable Array Logic).......................................................................................9

iii.

FPLA (Field Programmable Logic Array)....................................................................9

c.

DISPOSITIVOS LOGICOS PROGRAMABLES COMPLEJOS (CPLDs)..................10


i.

ARQUITECTURA DE LOS CPLDs.............................................................................11


1.

MATRIZ DE CONEXIN GLOBAL O INTERCONEXION................................12

2.

BLOQUE LGICO Y MACROCELDAS:...............................................................12

3.

BLOQUE DE ENTRADA/ SALIDA.........................................................................13

4.

BLOQUES FUNCIONALES:....................................................................................14

5.

ELEMENTOS PROGRAMABLES:.........................................................................15

ii.

ASPECTOS EN LA ARQUITECTURA DEL CPLD:..................................................15


1.

La tecnologa de programacin:................................................................................15

2.

La capacidad de bloque de funciones:.......................................................................15

3.

La capacidad de E / S :...............................................................................................16

iii. EJEMPLOS FAMILIAS CPLDs:.................................................................................16


d.

CONJUNTO CONFIGURABLE DE PUERTAS (FPGA)...............................................17


i.

ARQUITECTURA FPGA:............................................................................................19

ii.

BLOQUE LOGICO CONFIGURABLE:.....................................................................19

iii.

BLOQUES CONFIGURABLE DE ENTRADA/ SALIDA......................................20

iv.

INTERCONEXION PROGRAMABLE:......................................................................21

v.

CIRCUITO DE RELOJ O CONTRLADORES DE RELOJ......................................22

vi.
PEQUEA VS LARGA GRANULARIDAD (SMALL VS LARGE
GRANULARITY)..................................................................................................................23

e.

vii.

PROGRAMACION SRAM VS ANTI-FUSE...........................................................24

viii.

EJEMPLOS DE FAMILIAS FPGA:.........................................................................25

ELEGIR ENTRE CPLDs & FPGAs.................................................................................25


1

4.

CAPITULO 3 : DISEO DE FLUJO..............................................................................26


a.

ESCRIBIENDO UNA ESPECIFICACION:....................................................................27

b.

REVISION DE LA ESPECIFICACION..........................................................................28
i.

ESCOGIENDO LA TECNOLOGIA:...........................................................................28

ii.

ESCOGIENDO UN METODO DE ENTRADA DEL SISEO...................................28

iii.

ESCOGIENDO UNA HERRAMIENTA DE SINTESIS..........................................28

c.

DISEO..............................................................................................................................29

d.

SIMULACION Y REVICION DEL DISEO..................................................................29

e.

SINTETIZAR.....................................................................................................................29

f.

PLACE AND ROUTE........................................................................................................30

g.

SIMULAR NUEVAMENTE Y REVISION FINAL.........................................................30

h.

PRUEBA.............................................................................................................................30

5 CONCLUSION..30
6. BIBLIOGRAFIA30

INTRODUCCION
Los dispositivos programables han pasado por una larga evolucin para llegar a la
complejidad que tienen hoy en da. Las siguientes secciones dan una discusin
aproximadamente cronolgica de estos dispositivos desde el menos complejo al ms
complejo. Debido al innegable avance y crecimiento de la tecnologa, en nuestro mercado
actual existen muchos Dispositivos Lgicos Programables (PLDs) con arquitecturas
diferentes, por ello es necesario conocer ms acerca de su funcionamiento.
El presente trabajo est diseado de forma prctica y sencilla para comenzar a conocer un
poco sobre LOS DISPOSITIVOS LOGICOS PROGRAMABLES (PLDs), recorriendo
los conceptos y caractersticas de los mismos as como sus usos, importancia, tipos, dando
una explicacin sobre cada punto ya planteado
Las secciones de este trabajo se ocupan de la arquitectura y las caractersticas de estos
dispositivos interna. Dispositivos lgicos programables se describen en una visin general,
que conduce a una descripcin detallada. Las distintas arquitecturas de estos dispositivos se
examinan en detalle junto con sus ventajas y desventajas, las cuales le permiten decidir qu
dispositivo en particular es adecuado para su diseo

1. OBJETIVO:
Dar a conocer los conceptos, tipos, caractersticas importancia, as como el mtodo
de uso de los PLDs, haciendo un resalte en los CPLDs.
Adentrar en el funcionamiento y por tanto en el lenguaje de programacin para
asegurar que los alumnos tengan conceptos previos sobre los PLDs.
2. CAPITULO I : ANTECEDENTES DE LOS PLDs
Los Dispositivos Lgicos Programables (PLDs) fueron introducidos a mediados de
los 70s. La idea era construir circuitos lgicos combinacionales que fueran
programables. Al contrario de los micros controladores, que pueden correr un
programa y poseen un hardware fijo los PLDs permiten la modificacin a nivel de
hardware. En otras palabras, un PLD es un chip multi propsito cuyo hardware se
puede re configurar para realizar tareas particulares.
El primer PLD fue llamado PAL (Programmable Array Logic). Los PAL solo
utilizan compuertas lgicas, por lo que solo permiten la implementacin de circuitos
combinacionales. Para superar esta limitacin luego fueron creados los registered
PLDs los cuales incluyen Flip-Flops en cada salida del circuito. Con estos
dispositivos es posible implementar funciones secuenciales simples.
A comienzos de los 80s, se fueron agregando circuitos lgicos adicionales a las
salidas de los PLDs.
La nueva celda de salida, llamada Macrocell, contiene (a parte de Flip-Flops)
puertas lgicas y multiplexores. La celda en si es programable, permitiendo varios
modos de operacin.
Adicionalmente provee una seal de retorno o feedback desde la salida del cricuito
al arreglo programable, lo que le da una mayor flexibilidad. Esta nueva estructura
fue llamada generic PAL(GAL).
Todos estos chips (PAL, PLA, registered PLD, GAL/PALCE) son conocidos en
conjunto como SPLDs (Simple PLDs). La GAL/PALCE es la nica que an se
fabrica en chips independientes.
4

Luego de esto se fabricaron chips con muchas GAL en su interior utilizando una
arquitectura mucho ms sofisticada, mejor tecnologa y muchas otras caractersticas
adicionales como soporte para JTAG. Estas estructuras son conocidas como CPLD
(Complex PLD). Los CPLD son bastante populares por su alta densidad de puertas,
alto performance y bajo costo.
Finalmente a mediados de los 80s fueron introducidas las FPGA, las cuales difieren
de los CPLD en su arquitectura, tecnologa y costos. Estos dispositivos fueron
creados principalmente para la implementacin de circuitos de alto rendimiento.
Todos los PLDs son no voltiles. Pueden ser OTP (one time programmable) en cuyo
caso son utilizados fusibles o anti fusibles o pueden ser re programables, con
EEPROM o memoria FLASH.
Las FPGAs por otro lado son la mayora voltiles puesto que utilizan
SRAM para almacenar las conexiones en estos casos generalmente se utiliza un
ROM externa para almacenar la configuracin inicial al momento del encendido.

3. CAPITULO II : TEORIA DE LOS PLDs


a. INTRODUCCIN A LOS PLDs
Aunque existen en el mercado muchos dispositivos lgicos programables
(PLDs) con arquitecturas diferentes, todos estn basados en la siguiente
idea estructural: estn constituidos por bloques lgicos configurables,
conectados mediante bloques de conexin programables.
Esta organizacin, tiene sus antecedentes en las matrices lgicas
programables y suele recibir el nombre de matricial. Los circuitos PLD
tuvieron un gran desarrollo desde que a mediados de la dcada de los 70 se
realizaron los primeros secuenciadores lgicos programables o PLS.
Su utilizacin provoca que se mejoren aspectos tales como la reduccin
del nmero de elementos necesarios, la disminucin del tiempo necesario
5

para crear el diseo, el aumento de la respuesta y la disminucin de


conexiones externas lo que provoca la disminucin a la hora de generar
ruido. Gracias a estas mejoras obtenemos una disminucin en los costes de
produccin y un aumento de fiabilidad del sistema, cosa que hace que los
PLDs sean una buena eleccin a la hora de empezar a disear el proyecto.

Los PLDs presentes en el mercado tienen diferentes arquitecturas


dependiendo del fabricante, incluso hay algunos que tienen arquitecturas
hbridas, por ello se pueden organizar segn su capacidad de respuesta, de
su arquitectura, etc...
La clasificacin de los PLDs es la siguiente:

Dispositivos lgicos programables simples (SPLD)

Dispositivos lgicos programables complejos (CPLD)

Matrices de puertas programables por campo (FPGA)

Dispositivos Hbridos (CPLD-FPGA)

b. DISPOSITIVOS LGICOS PROGRAMABLES SIMPLES


(SPLDs)
Se les denomina as a todos los PLDs que estn formados por
bloques

lgicos

programables

conectados

macroceldas

con

interconexiones programables y de un tamao del orden de 22 macroceldas.


El diagrama tpico de bloques de un SPLD est formado por un bloque
lgico y las macroceldas.

Figura 1: Diagrama de bloques de un SPLD

Un bloque lgico no es ms que las entradas conectadas a la matriz de


entrada (o matriz AND) y las salidas conectadas a la matriz de salida (matriz
OR)

Figura 2: Composicin de un bloque lgico

Dependiendo de la configuracin que se puedan aplicar a las matrices de


entrada/salida del bloque lgico existen los siguientes tipos de SPLDs:

o
o

PROM
Programmable Read Only Memory
PAL Programable Array Logic
7

o FPLA o PLA Field Programmable Logic Array

A continuacin se explica la funcionalidad de los bloques lgicos de los


SPLDs que tienen estas arquitecturas.
i. PROM (Programmable Read Only Memory)
Son memorias de lecturas programadas por el usuario, segn la
tecnologa de borrado o la tcnica utilizada para ello se puede
distinguir entre: PROM, OTPROM, UVPROM, EEPROM,
EEPROM FLASH.
Los bloques lgicos formados con esta tecnologa tienen la matriz
de entrada programada de fbrica mientras que la matriz de salida
debe ser programada por el usuario y los SPLDs no dispondrn de
macroceldas. Ya que con n entradas tendremos 2^ n salidas

Figura 3: Diagrama de programacin del bloque lgico de una PROM

ii. PAL (Programable Array Logic)


Los SPLDs que tienen esta arquitectura como bloque lgico a
diferencia de la arquitectura PROM necesitarn de macroceldas;
esta arquitectura es la ms extendida entre los fabricantes de SPLDs.
En una PAL la matriz de entrada AND es la programable por el
usuario, en cambio, la matriz de salida OR viene programada de
fbrica de una manera curiosa, ya que teniendo n entradas se
dispone a la salida de menos de 2^ n trminos, por ello es
necesario el bloque de las macroceldas para poder realimentar la
seal y as tener ms trminos a la salida.

Figura 4: Diagrama de programacin del bloque lgico de una PAL

iii. FPLA (Field Programmable Logic Array)


Este sistema de bloque lgico posee una estructura ms flexible ya
que pueden ser programadas ambas matrices por el usuario, tanto la
de entrada como la de salida, por el contrario la velocidad ser menor
y se suele usar slo como mquina de estados.

Figura 5: Diagrama de programacin del bloque lgico de una FPLA

c. DISPOSITIVOS LOGICOS PROGRAMABLES COMPLEJOS (CPLDs)

Los CPLDs se crearon para poder disear sistemas digitales muy complejos
que los SPLDs debido a su simplicidad eran incapaces de resolver. Por ello
los CPLDs se crearon con la idea de ser un conjunto de bloques de
SPLDs interconectados mediante una matriz de conexin.
A raz de su creacin se ha logrado disminuir el coste de desarrollo y
el tiempo de respuesta del sistema, adems la vida del producto aumenta
considerablemente gracias a la capacidad de actualizacin que tienen los
CPLDs
Un CPLD comprende mltiples bloques de circuitos en un nico chip , con
el cableado interno de re fuentes para conectar los bloques de circuitos .
Cada bloque de circuito es similar a un PLA o un PAL ; se har referencia a
los bloques de circuitos como bloques - PAL similares. Un ejemplo de un
CPLD se da en la Figura 6 . Incluye cuatro bloques - PAL como que estn
conectados a un conjunto de cables de interconexin. Cada bloque - PAL

10

como tambin est conectado a un subcircuito marcado bloque de Entrada /


Salida, que se adjunta
_
.

PAL-like
block

PAL-like
block

(J
o

o
3

PAL-like
block

PAL-like
block

u
cr
O
oP
C

Figura 6: Estructura de un dispositivo lgico programable complejo (CPLD )

i. ARQUITECTURA DE LOS CPLDs


La mayora de los CPLDs tienen la misma arquitectura interna,
dividida en tres partes que son:

Matriz de conexin global

Bloques lgicos con sus macroceldas

Bloques de entrada y salida.

Figura7: Ejemplo de la arquitectura interna de un CPL

11

1. MATRIZ DE CONEXIN GLOBAL O


INTERCONEXION
Es una matriz programable que permite realizar conexiones
entre el bloque lgico y el bloque de entrada/salida.
Esta matriz conecta todo el sistema y se puede tener acceso a
todos los pins del sistema, ya sean entradas/salidas, entradas
dedicadas o realimentaciones procedentes de las macroceldas.
La interconexin del CPLD es una gran matriz de conmutacin
programable que permite que las seales de todas las partes del
dispositivo van a todas las otras partes del dispositivo. Si bien
hay un interruptor se puede conectar todos los bloques de
funciones internos todos los otros bloques de funcin, hay
suficiente flexibilidad para permitir a muchas combinaciones
de conexiones

2. BLOQUE LGICO Y MACROCELDAS:


El bloque lgico de un CPLD tiene la estructura de un SPLD
completo, por lo que se puede decir que un CPLD est
compuesto por varios SPLDs
Las macroceldas son los registros bsicos disponibles en los
bloques lgicos. Junto con las seales de control pueden
hacer funciones como mquinas de estado, contadores, etc...
Hay dos tipos de macroceldas: de entrada/salida y de
realimentacin.
Las macroceldas de entrada/salida estn unidas directamente
al bloque E/S.
Las macroceldas de realimentacin no estn conectadas al
bloque de E/S, sino que estn conectadas directamente a la
matriz de conexin global.
12

En un CPLD la cantidad de macroceldas puede variar de 32 a


ms de 3000.
3. BLOQUE DE ENTRADA/ SALIDA
Este bloque es el encargado de conectar los pins del
dispositivo

las

macroceldas

del

bloque

lgico.

Configurndose como pins de entrada, salida o de alta


impedancia.
El nmero de E/S puede variar hasta ms de 200 dependiendo
del encapsulado
La figura 8 muestra un tpico bloque de E / S de un CPLD. El
bloque de E / S se utiliza para impulsar las seales de las
patillas del dispositivo CPLD en los niveles de tensin
apropiados con la corriente adecuada. Por lo general, se
incluye un flip-flop, como se muestra en la figura. Esto se
hace en las salidas de manera que las seales de velocidad de
reloj se pueden enviar directamente a los pines sin encontrar
retraso significativo. Esto se hace para las entradas de modo
que no hay mucho retraso en una seal antes de llegar a un
flip-flop lo que aumentara el requisito de tiempo de
retencin del dispositivo. Adems, una pequea cantidad de
la lgica se incluye en el bloque de E / S simplemente aadir
algunos ms recursos para el dispositivo

Figura 8: Ejemplo de un bloque de entrada/ salida de un CPLD

13

4. BLOQUES FUNCIONALES:
Un bloque de funcin tpica se muestra en la Figura 9. El
plano AND todava existe como lo demuestran los cables de
cruce. El plano AND puede aceptar entradas de los bloques
de ENTRADA / SALIDA, otros bloques de funcin, o
retroalimentacin del mismo bloque de funciones. Los
trminos y luego O juntos usando un nmero fijo de puertas
OR, y los trminos se seleccionan a travs de un gran
multiplexor. Las salidas del mux pueden ser enviadas
directamente del bloque o a travs de un flip-flop
sincronizadas. Este bloque particular incluye lgica adicional
tal como una O exclusiva seleccionable y una seal de
reinicio maestro, adems de ser capaz de programar la
polaridad en diferentes etapas.
Por lo general, los bloques de funcin estn diseados para
ser similar a arquitecturas PAL existentes, tales como el
22V10, de modo que el diseador puede usar herramientas
conocidas o incluso diseos ms antiguos, sin cambiar ellos.

Figura 9: Ejemplo de un bloque funcional de un CPLD

14

5. ELEMENTOS PROGRAMABLES:
Los distintos fabricantes utilizan diferentes tecnologas para
aplicar los elementos programables de un CPLD. Las
tecnologas

comunes

son

elctricamente

programable

memoria de slo lectura (EPROM), PROM elctricamente


borrable (EEPROM) y Flash EPROM. Estas tecnologas son
similares a, o versiones de la prxima generacin de las
tecnologas, que fueron utilizados para los dispositivos
programables simples, PROMs
ii. ASPECTOS EN LA ARQUITECTURA DEL CPLD:
Al considerar un CPLD para su uso en un diseo, los siguientes
aspectos deben tenerse en cuenta:
1. La tecnologa de programacin:
EPROM, EEPROM o Flash EPROM. Esto determinar el
equipo necesario para programar los dispositivos y si
vinieron programar una sola vez o muchas veces
2. La capacidad de bloque de funciones:

Cuntos bloques de funcin con los que cuenta el


dispositivo

Cuntos trminos de productos y de suma se pueden


utilizar

Cules son los retrasos mnimos y mximos a travs


de la lgica

Qu recursos lgicos adicionales estn ah como


XNORs , ALU , etc

Qu tipo de controles de registro estn disponibles


15

(por ejemplo , el reloj habilitar, restaurar, control de


polaridad )

Cuntos son los insumos locales al bloque de


funciones y cuntas son las entradas globales, a nivel
de chip

Qu tipo de conductores de reloj se encuentran en el


dispositivo y lo que es la peor de los casos de
inclinacin de la seal de reloj en el chip. Esto
ayudar a determinar la frecuencia mxima a la que el
dispositivo puede funcionar

3. La capacidad de E / S :
o Cuntos de E / S son independientes, que se utiliza
para cualquier funcin, y cuantos se dedican a la
entrada de reloj , reinicio maestro , etc. ?
o Cul es la capacidad de transmisin de salida en
trminos de niveles de tensin y corriente
o Qu tipo de lgica se incluye en un bloque de E / S
que se puede utilizar para aumentar la funcionalidad
del diseo
iii. EJEMPLOS FAMILIAS CPLDs:
Algunas familias CPLD de diferentes fabricantes se enumeran a
continuacin:

Altera MAX 7000 and MAX 9000


Atmel ATF and ATV
Lattice ispLSI family
Lattice (Vantis) MACH
Xilinx XC9500

d. CONJUNTO CONFIGURABLE DE PUERTAS (FPGA)


16

Los FPGAs estn formados por un mar de bloques lgicos rodeados por
una matriz de bloques de entrada/salida interconectados por lneas
programables.
Un FPGA contiene desde 64 a ms de 1000 bloques lgicos, al ser tan
numerosos estos bloques, no estn interconectados entre si, sino que se
conectan dependiendo de las necesidades del usuario, usando programas de
diseo como si fuera el autorouter que utilizamos a la hora de crear una
PCB.
FPGA derivan de los circuitos integrados creados a semimedida, en lugar de
tener una estructura similar a un PAL u otro dispositivo programable, que se
estructuran mucho a una matriz de puertas ASIC. Esto hace FPGAs muy
agradable para su uso en la creacin de prototipos ASIC, o en lugares dnde
y con el tiempo se utiliza ASIC. Por ejemplo, un FPGA puede ser usado en
un diseo que necesitan para llegar al mercado de forma rpida sin importar
el costo. Ms tarde un ASIC puede ser utilizada en lugar de la FPGA cuando
los aumentos de volumen de produccin, con el fin de reducir el costo

Figura 10: Diagrama de bloques de un FPGA

17

i. ARQUITECTURA FPGA:

Cada vendedor FPGA tiene su propia arquitectura FPGA, pero en


trminos generales todos ellos son una variacin de la que se muestra
en la Figura 11. La arquitectura consta de bloques configurables de
lgica, los bloques de E / S configurables, y de interconexin
programable. Adems, habr circuitos de reloj para conducir las
seales de reloj a cada bloque lgico, y los recursos lgicos
adicionales como ALU, la memoria y los decodificadores pueden
estar disponibles. Los dos tipos bsicos de elementos programables
para una FPGA son RAM esttica y anti-fusibles

Figura 11: Arquitectura de un FPGA

ii. BLOQUE LOGICO CONFIGURABLE:

Contienen la lgica para la FPGA. En una arquitectura de grano


grande, estos CLB contendrn suficiente lgica para crear una
pequea mquina de estados. En una arquitectura de grano fino, ms
como una verdadera ASIC matriz de puertas, el CLB contendr la
lgica slo muy bsica. El diagrama de la Figura 12 se considera un
18

bloque de grano grande. Contiene RAM para la creacin de


funciones lgicas combinatorias arbitrarias. Tambin contiene flip-flops
para elementos de almacenamiento, velocidad de reloj y multiplexores con
el fin de conducir la lgica dentro del bloque y desde y hacia los recursos
externos. Los muxes tambin permiten la seleccin de polaridad y
restablecen y seleccin de entrada claro.

Figura 11: FPGA Bloque lgico Programable

iii. BLOQUES CONFIGURABLE DE ENTRADA/ SALIDA

Como se muestra en la Figura 12, se utiliza para llevar las seales en


el chip y enviarlos de vuelta otra vez. Se compone de una memoria
intermedia de entrada y un bfer de salida con tres controles de
salida de colector estatales y abiertas. Tpicamente hay levantar
resistencias en las salidas ya veces derribar las resistencias.
La polaridad de la salida por lo general puede ser programada para la
salida baja activa alta o activa ya menudo la velocidad de subida de
la salida se puede programar para la subida rpida o lenta y tiempos
de cada. Adems, a menudo hay un flip-flop en las salidas de
19

manera que las seales de velocidad de reloj se pueden emitir


directamente a los pasadores sin encontrar retraso significativo. Se
lleva a cabo para las entradas de modo que no hay mucho retraso en
una seal antes de llegar a un flip-flop lo que aumentara la bodega
requisito hora del dispositivo.

Figura 12: FPGA Bloque Configurable de E/S

iv. INTERCONEXION PROGRAMABLE:

La interconexin de un FPGA es muy diferente que el de un CPLD ,


pero es bastante similar a la de un ASIC de matriz de puertas . En la
Figura 13, una jerarqua de los recursos de interconexin puede ser
vista. Hay lneas largas que pueden ser utilizados para conectar CLB
crticos que estn fsicamente lejos unos de otros en el chip sin
inducir mucha demora. Tambin se pueden utilizar como autobuses
dentro del chip. Tambin hay lneas cortas que se utilizan para
conectar CLB individuales que se encuentran fsicamente cerca uno
del otro. Hay a menudo una o varias matrices de conmutacin , al
igual que en un CPLD, para conectar estas lneas largas y cortas en
conjunto de una manera especfica . Conmutadores programables
dentro del chip permiten la conexin de CLB para interconectar
20

lneas y lneas de interconexin entre s y a la matriz de


conmutacin. Buffers tres estados se utilizan para conectar muchos
CLB a una larga
Lnea, la creacin de un autobs. Largas colas especiales, llamadas
lneas globales de reloj, estn especialmente diseadas para baja
impedancia y tiempos de propagacin de este modo rpido. Estos
estn conectados a los buffers de reloj y para cada elemento de
velocidad de reloj en cada CLB. Esta es la forma en que se
distribuyen los relojes en todo el FPGA

Figura 13: FPGA interconexin programable

v. CIRCUITO DE RELOJ O CONTRLADORES DE RELOJ

Bloques especiales de E / S con buffers de reloj de alta impulsin


especiales, conocidos como controladores de reloj, se distribuyen
alrededor de la viruta. Estos tampones se conectan a las almohadillas
de entrada de reloj y conducir las seales de reloj en las lneas de
reloj globales descritos anteriormente. Estas lneas de reloj estn
diseados para tiempos sesgar bajos y tiempos de propagacin
rpida. Como veremos ms adelante, el diseo sncrono es un deber
con FPGAs, ya sesgo absoluto y el retardo no se puede garantizar.

21

Slo cuando se utiliza las seales de reloj de buffers de reloj se


puede garantizar los retrasos relativos y los tiempos de sesgo.
vi. PEQUEA VS LARGA GRANULARIDAD (SMALL VS LARGE
GRANULARITY)
FPGAs de grano pequeos parecen a matrices de puertas ASIC en
que los CLB contienen elementos slo pequeas, muy bsicos tales
como puertas NAND, NOR puertas, etc La filosofa es que los
elementos pequeos se pueden conectar para hacer funciones ms
grandes sin perder demasiado lgica. En un gran FPGA granos,
donde el CLB puede contener dos o ms flip-flops, un diseo que no
necesita muchas chancletas dejar muchos de ellos no utilizada.
Desafortunadamente, pequeas arquitecturas de grano requieren
muchos ms recursos de enrutamiento, que ocupan espacio e insertar
una gran cantidad de retardo que puede ms que compensar la mejor
utilizacin.
SMALL
Mejor utilizacin
Conversin directa en ASIC

LARGE
Menos niveles de lgica
Menos retraso de interconexin

Tabla 1: pequea vs larga granularidad

Una comparacin de las ventajas de cada tipo de arquitectura se


muestra en la Tabla 1 anterior. La eleccin de la arquitectura a utilizar
depende de su aplicacin especfica.
vii. PROGRAMACION SRAM VS ANTI-FUSE
Hay dos mtodos que compiten de FPGAs de programacin. La
primera, la programacin SRAM, implica pequeos trozos de
memoria RAM esttica para cada elemento de programacin.
Escribiendo el bit con un cero se apaga un interruptor, al escribir con
un uno enciende un interruptor. El otro mtodo consiste en anti22

fusibles que consisten en estructuras microscpicas que , a diferencia


de un fusible regular, normalmente hace que no hay conexin. Una
cierta cantidad de corriente durante la programacin del dispositivo
hace que los dos lados de la anti- fusible para conectar.
Las ventajas de FPGAs SRAM basadas es que utilizan un proceso de
fabricacin estndar que las plantas de fabricacin de chips conocen
y siempre estn optimizando para un mejor rendimiento. Dado que
las SRAM son reprogramables, las FPGAs se pueden reprogramar
cualquier nmero de veces, incluso mientras estn en el sistema, al
igual que escribir en un SRAM normal. Las desventajas son que son
voltiles, lo que significa una falla de energa potencialmente podra
cambiarla. Asimismo, los dispositivos basados en SRAM tienen
grandes retrasos de enrutamiento.
Las ventajas de FPGAs Anti- fusibles basado es que son no voltiles
y los retrasos debidos a enrutamiento son muy pequeas, por lo que
tienden a ser ms rpido. Las desventajas son que requieren un
proceso de fabricacin complejo, que requieren un programador
externo para programar ellos, y una vez que estn programados, que
no se pueden cambiar

viii. EJEMPLOS DE FAMILIAS FPGA:


1. Ejemplos de programacin SRAM
o
o
o
o

Altera FLEX
Atmel AT6000 and AT40
Lucent Technologies ORCA
Xilinx XC4000 and Virtex

2. Ejemplos de programacin Anti-fuse

Actel SX and MX families


Quicklogic pASIC family
23

e. ELEGIR ENTRE CPLDs & FPGAs


La eleccin entre una CPLD y FPGA depender de las caractersticas y
necesidades de su proyecto. Un resumen de las caractersticas de cada uno se
muestra en la Tabla 2 a continuacin:

ARQUITECTURA
DENSIDAD
VELOCIDAD
INTERCONEXION
CONSUMO DE
ENERGIA

CPLD
PAL-like
Bajo a Medio

FPGA
GATE array- like
Medio a Alto
Sobre 1 millon de puertas

1222V10s o mas
Rapido, Fiable
Crossbar

Depende de la Aplicacion
Routing

Alto

Medio

Tabla 2: CPLD VS FPGA

4. CAPITULO 3 : DISEO DE FLUJO


En esta seccin se examina el flujo de diseo para cualquier dispositivo, ya sea un
ASIC, FPGA, o una CPLD. Este es todo el proceso de disear un dispositivo que
garantiza que no se pase por alto ningn paso y que va a tener la mejor oportunidad
de recuperar un prototipo de trabajo que funciona correctamente en su sistema. El
caudal de diseo consta de los pasos siguiente figura
ESCRIBIENDO UNA
ESPECIFICACION
REVISION DE LA ESPECIFICACION
DISEO
SIMULACION
INTEGRACION
REVISION
VOLVER
PLACE
PRUEBA
REVISION
SINTETIZAR
PRODUCTO
AND
A
DEL
DEL
SIMULAR
FINAL
ROUTE
DISEO
SISTEMA
CHIP
Y

24

25

a. ESCRIBIENDO UNA ESPECIFICACION:

La importancia de una especificacin no puede ser exagerada. Esta es una


necesidad absoluta, sobre todo como una gua para la eleccin de la
tecnologa adecuada y para hacer saber sus necesidades al vendedor. Como
especificacin permite que cada ingeniero para entender todo el diseo y su
pedazo de l . Se permite al ingeniero para disear la interfaz correcta para
el resto de las piezas del chip. Tambin ahorra tiempo y malentendidos. No
hay excusa para no tener una especificacin
Una especificacin debe incluir la siguiente informacin:
Un diagrama de bloques externa que muestra cmo el chip encaja en

el sistema
Un diagrama de bloques interno mostrando cada seccin funcional
importante.
Una descripcin de los pines de E / S , incluyendo
o Capacidad de transmisin de salida
o Nivel de umbral de entrada
Estimaciones de temporizacin incluidas:
o configuracin y tiempos de espera para la entrada pasadores
tiempos de propagacin para pines de salida de tiempo de

ciclo de reloj
Recuento estimado puerta
Tipo de embalaje
Consumo de energa Target
Objetivo
Los procedimientos de prueba

Tambin es muy importante entender que este es un documento vivo.


Muchas secciones tendrn mejores conjeturas en ellos, pero stos cambiarn
a medida que el chip est siendo diseado

b. REVISION DE LA ESPECIFICACION
i. ESCOGIENDO LA TECNOLOGIA:

26

Una vez que la especificacin se ha escrito, se puede utilizar para


encontrar el mejor proveedor con una tecnologa y estructura de
precios que mejor se adapte a sus necesidades.
ii. ESCOGIENDO UN METODO DE ENTRADA DEL SISEO
Usted debe decidir en este punto que el mtodo de entrada de diseo
que prefiera. Para los chips ms pequeos , la introduccin del
esquema suele ser el mtodo de eleccin, sobre todo si el ingeniero
de diseo ya est familiarizado con las herramientas. Para diseos
ms grandes , sin embargo , un lenguaje de descripcin de hardware (
HDL ), tales como Verilog o VHDL se utiliza debido a su
portabilidad , flexibilidad , y la legibilidad . Cuando se utiliza un
lenguaje de alto nivel , el software de sntesis se requiere para "
sintetizar " el diseo . Esto significa que el software crea puertas de
iii.

bajo nivel de la descripcin de alto nivel


ESCOGIENDO UNA HERRAMIENTA DE SINTESIS
Usted debe decidir en este punto que la sntesis de software que va a
utilizar si va a disear la FPGA con un HDL . Esto es importante ya
que cada herramienta de sntesis ha recomendado o mtodos
obligatorios de diseo de hardware de modo que pueda realizar
correctamente la sntesis . Ser necesario conocer estos mtodos en
la delantera de manera que no tendr que ser rediseado ms
adelante en las secciones del chip .
Al final de esta fase es muy importante tener una revisin del diseo

c. DISEO
Es muy importante que siga las buenas prcticas de diseo. Esto significa
tomar en cuenta los siguientes problemas de diseo
El diseo de arriba hacia abajo
Lgica de uso que encaja muy bien con la arquitectura del
dispositivo que haya elegido
27

Macros
Diseo sncrono
Proteger contra metastability
Evite los nodos flotantes
Evite el conflicto de bus
d. SIMULACION Y REVICION DEL DISEO
La simulacin es un proceso en curso, mientras que el diseo que se est
haciendo. Las secciones pequeas del diseo deben ser simulados por
separado antes de engancharlos a las secciones ms grandes. Habr muchas
iteraciones de diseo y simulacin con el fin de obtener la funcionalidad
correcta.
Una vez que el diseo y la simulacin estn terminadas, otra revisin del
diseo debe llevarse a cabo para que el diseo se puede comprobar. Es
importante conseguir que los dems a mirar por encima de las simulaciones
y asegurarse de que nada le haya faltado y que ninguna suposicin
inadecuada fue hecha. Esta es una de las crticas ms importantes, ya que es
slo con la simulacin correcta y completa que usted sabr que el chip
funcione correctamente en su sistema
e. SINTETIZAR
Si el diseo se ha introducido el uso de un HDL, el siguiente paso es para
sintetizar el chip. Esto implica el uso de software de sntesis de traducir de
manera ptima su nivel de transferencia de registros (RTL) de diseo en un
diseo de nivel de la puerta que se puede asignar a los bloques lgicos en la
FPGA. Esto puede implicar la especificacin de conmutadores y criterios de
optimizacin en el cdigo HDL, o jugar con los parmetros del software de
sntesis con el fin de asegurar una buena sincronizacin y la utilizacin
f. PLACE AND ROUTE
El siguiente paso es disear el chip, lo que resulta en un diseo fsico real
de un chip real. Esto implica el uso de herramientas de software del
proveedor para optimizar la programacin del chip para implementar el
diseo. A continuacin, el diseo se programa en el chip
g. SIMULAR NUEVAMENTE Y REVISION FINAL

28

Despus de la disposicin, el chip debe simularse nuevamente con los


nuevos nmeros de sincronizacin producidos por la disposicin real. Si
todo ha ido bien hasta el momento, los nuevos resultados de la simulacin se
pondrn de acuerdo con los resultados previstos. De lo contrario, hay tres
caminos posibles para ir en el flujo de diseo. Si los problemas que se
plantean aqu son significativos, pueden necesitar ser rediseado secciones
de la FPGA. Si no son simplemente algunos caminos de temporizacin
marginales o el diseo es ligeramente ms grande que la FPGA, puede ser
necesario para llevar a cabo la sntesis de otro con mejores limitaciones o
simplemente otro lugar y ruta con mejores limitaciones. En este punto, una
revisin final es necesario para confirmar que no se ha pasado por alto
h. PRUEBA
Para un dispositivo programable, slo tiene que programar el dispositivo y
tener

inmediatamente

sus

prototipos.

continuacin,

tiene

la

responsabilidad de realizar estos prototipos en su sistema y determinar que


todo el sistema realmente funciona correctamente. Si ha seguido el
procedimiento hasta este punto , es muy probable que su sistema funcionar
correctamente con la menor problemas . Estos problemas a menudo se puede
evitar mediante la modificacin del sistema o cambiar el software del
sistema. Estos problemas deben ser probados y documentados de manera
que puedan fijarse en la prxima revisin del chip. La integracin del
sistema y las pruebas del sistema es necesario en este momento para
asegurar que todas las partes del sistema funcionen correctamente juntas.
5. CONCLUSION
En este trabajo se ha querido presentar una visin general de las tecnologas de
CPLD y FPGA, y dar pautas para el correcto uso del los CPLDS Y FPGA. Si todas
estas directrices son seguidas, las posibilidades de creacin de un chip de trabajo en
poco tiempo
6. BIBLIOGRAFIA
Pginas Web de referencia:
29

http://www.engga.uwo.ca/people/adounavis/courses/ece434a/notes/ECE4
34_CPLD&FPGA.pdf
http://dea.unsj.edu.ar/sisdig2/CPLDs.pdf
http://www.ipfn.ist.utl.pt/EU-PhD/1stedition/BrownFPGA96.pdf
http://www.ece.uic.edu/~dutt/courses/ece465/lect-notes/CPLD-FPGAIntro.pdf
http://www.ddpp.com/DDPP3_mkt/c10samp2.pdf

http://en.wordpress.com/about-these-ads
http://www.olimex.cl/advanced_search_result.php?

keywords=fpga&search_in_description=1
http://www.olimex.cl/advanced_search_result.php?
keywords=fpga&search_in_description=1
http://en.wikipedia.org/wiki/Flip-flop_(electronics)

30

Common questions

Con tecnología de IA

La simulación juega un papel fundamental en el flujo de diseño de un dispositivo lógico al proporcionar un entorno para verificar y validar la funcionalidad del diseño antes de su implementación física . A lo largo del proceso de diseño, cada sección se simula por separado y se integra gradualmente en simulaciones más grandes. Esta iteración permite identificar y corregir errores tempranamente, asegurar la corrección funcional, y prevenir costosos ajustes en etapas posteriores . Una simulación adecuada ayudará a garantizar que el dispositivo opere según lo previsto cuando se fabrique .

Los CPLDs se diferencian de los SPLDs por su capacidad para manejar diseños digitales más complejos. Un CPLD está formado por múltiples bloques de circuitos similares a los PLA o PAL, interconectados mediante una matriz de conexión global programable que permite flexibilidad en las combinaciones de conexiones de señales . Cada bloque de un CPLD es comparable a un SPLD completo, lo que permite realizar funciones avanzadas como máquinas de estado y contadores a través de sus macroceldas . En cambio, un SPLD tiene una estructura más básica, compuesta por un solo bloque lógico con una cantidad limitada de macroceldas .

El proceso de síntesis en el diseño de un FPGA implica la traducción de un diseño de alto nivel descrito en un lenguaje de descripción de hardware (HDL) a un diseño de nivel de puertas que se pueda implementar en el FPGA . Los diseñadores aseguran un diseño óptimo especificando correctamente los conmutadores y criterios de optimización en el código HDL y ajustando los parámetros del software de síntesis para garantizar una velocidad adecuada y una eficiente utilización de los recursos . Este proceso también incluye la revisión de posibles caminos críticos y ajustes iterativos para mejorar el comportamiento temporal del diseño final .

La principal diferencia funcional entre un SPLD tipo PROM y uno tipo PAL radica en cómo se programan sus matrices lógicas. En un PROM, la matriz de entrada es programada de fábrica y solo la matriz de salida es programable por el usuario, lo que significa que todas las posibles combinaciones de entradas generan salidas predefinidas . En contraste, un PAL tiene la matriz de entrada AND programable por el usuario, mientras que la matriz de salida OR está preprogramada, limitando el número de términos de salida a menos de 2^n, lo que requiere el uso de macroceldas para ampliar las capacidades de salida .

Una "matriz de conexión global" en el contexto de un CPLD es una matriz programable que permite realizar conexiones entre los bloques lógicos y los bloques de entrada/salida . Este elemento es crucial porque conecta todos los componentes del sistema, facilitando el flujo de señales entre las diferentes partes del dispositivo, lo que permite flexibilidad en el diseño y facilita la implementación de funcionalidades complejas en el CPLD .

Una especificación para un diseño de chip exitoso debe incluir un diagrama de bloques externo e interno para mostrar cómo el chip encaja y opera dentro del sistema, descripciones detalladas de los pines de entrada/salida, estimaciones de temporización, recuento de puertas, tipo de embalaje, y consumo de energía objetivo . Esta documentación es crucial porque proporciona una visión clara y detallada del diseño, sirve como guía para seleccionar la tecnología adecuada, ayuda a evitar malentendidos durante el diseño y permite que cada ingeniero entienda su papel dentro del proyecto .

Los dispositivos lógicos programables (PLD) ofrecen ventajas significativas sobre los circuitos convencionales, incluyendo la reducción del número de elementos necesarios en el diseño, lo que lleva a diseños más compactos . Además, disminuyen el tiempo necesario para crear el diseño y aumentan la velocidad de respuesta del sistema. También reducen las conexiones externas, lo cual disminuye el ruido y los costos de producción, a la vez que aumentan la fiabilidad del sistema .

La elección entre CPLDs y FPGAs depende de varios factores clave del proyecto. CPLDs son adecuados para aplicaciones con menores requisitos de densidad y velocidad pero ofrecen interconexiones más rápidas y un consumo de energía más elevado . Son más fáciles de programar externamente y no son reprogramables. Por el contrario, FPGAs proporcionan una densidad más alta y son más flexibles debido a su capacidad de reprogramación, siendo idóneas para implementaciones que requieren actualizaciones frecuentes o modificaciones. Además, las FPGAs tienden a tener un consumo de energía menor en comparación con CPLDs cuando se consideran configuraciones complejas .

Las macroceldas en los CPLDs son críticas para su funcionamiento ya que sirven como registros básicos dentro de los bloques lógicos, permitiendo el almacenamiento y la manipulación de datos. Además, las macroceldas pueden asumir roles de entrada/salida o de realimentación, lo que incrementa la flexibilidad del dispositivo para manejar funciones avanzadas como contadores y máquinas de estado . Su capacidad para conectarse a la matriz de conexión global permite la interconexión eficiente de todos los bloques lógicos dentro de un CPLD, facilitando así un diseño integral y flexible .

Las revisiones de diseño son críticas durante el diseño y simulación de un chip porque aseguran que el diseño se alinea con los requisitos del proyecto y que no se han pasado por alto errores o suposiciones inadecuadas . Consisten en evaluar iterativamente el diseño por diferentes ingenieros para confirmar que cumple con las especificaciones y realizar ajustes necesarios antes de avanzar a etapas más avanzadas como la síntesis o la fabricación. Esto minimiza el riesgo de problemas durante la producción del chip .

También podría gustarte