monografia

Share Embed Donate


Short Description

Descripción: una monografia para ejemplo...

Description

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

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

2.

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

3.

CAPITULO II : “ TEORIA DE LOS PLDs”..........................................................................6 a.

INTRODUCCIÓN A LOS PLDs.........................................................................................6

b.

DISPOSITIVOS LÓGICOS 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 CONEXIÓN GLOBAL O INTERCONEXION................................12

2.

BLOQUE LÓGICO 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 tecnología de programación:................................................................................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. PEQUEÑA 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 : “DISEÑO 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 SISEÑO...................................28

iii.

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

c.

DISEÑO..............................................................................................................................29

d.

SIMULACION Y REVICION DEL DISEÑO..................................................................29

e.

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

f.

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

g.

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

h.

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

5 CONCLUSION………….…………………………………………………………….30 6. BIBLIOGRAFIA……………………………………………………………………30

2

INTRODUCCION Los dispositivos programables han pasado por una larga evolución para llegar a la complejidad que tienen hoy en día. Las siguientes secciones dan una discusión aproximadamente cronológica de estos dispositivos desde el menos complejo al más complejo. Debido al innegable avance y crecimiento de la tecnología, en nuestro mercado actual existen muchos “Dispositivos Lógicos Programables (PLDs)” con arquitecturas diferentes, por ello es necesario conocer más acerca de su funcionamiento. El presente trabajo está diseñado de forma práctica y sencilla para comenzar a conocer un poco sobre “LOS DISPOSITIVOS LOGICOS PROGRAMABLES (PLDs)”, recorriendo los conceptos y características de los mismos así como sus usos, importancia, tipos, dando una explicación sobre cada punto ya planteado Las secciones de este trabajo se ocupan de la arquitectura y las características de estos dispositivos interna. Dispositivos lógicos programables se describen en una visión general, que conduce a una descripción 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 diseño

3

1. OBJETIVO: Dar a conocer los conceptos, tipos, características importancia, así como el método de uso de los PLDs, haciendo un resalte en los CPLDs. Adentrar en el funcionamiento y por tanto en el lenguaje de programación para asegurar que los alumnos tengan conceptos previos sobre los PLDs. 2. CAPITULO I : ANTECEDENTES DE LOS PLDs Los Dispositivos Lógicos Programables (PLDs) fueron introducidos a mediados de los 70s. La idea era construir circuitos lógicos combinacionales que fueran programables. Al contrario de los micros controladores, que pueden correr un programa y poseen un hardware fijo los PLDs permiten la modificación a nivel de hardware. En otras palabras, un PLD es un chip multi propósito cuyo hardware se puede re configurar para realizar tareas particulares. El primer PLD fue llamado PAL (Programmable Array Logic). Los PAL solo utilizan compuertas lógicas, por lo que solo permiten la implementación de circuitos combinacionales. Para superar esta limitación 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 lógicos adicionales a las salidas de los PLDs. La nueva celda de salida, llamada Macrocell, contiene (a parte de Flip-Flops) puertas lógicas y multiplexores. La celda en si es programable, permitiendo varios modos de operación. Adicionalmente provee una señal 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 aún se fabrica en chips independientes. 4

Luego de esto se fabricaron chips con muchas GAL en su interior utilizando una arquitectura mucho más sofisticada, mejor tecnología y muchas otras características 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, tecnología y costos. Estos dispositivos fueron creados principalmente para la implementación de circuitos de alto rendimiento. Todos los PLDs son no volátiles. 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 mayoría volátiles puesto que utilizan SRAM para almacenar las conexiones en estos casos generalmente se utiliza un ROM externa para almacenar la configuración inicial al momento del encendido.

3. CAPITULO II : “ TEORIA DE LOS PLDs” a. INTRODUCCIÓN A LOS PLDs Aunque existen en el mercado muchos dispositivos lógicos programables (PLDs) con arquitecturas diferentes, todos están basados en la siguiente idea estructural: están constituidos por bloques lógicos configurables, conectados mediante bloques de conexión programables. Esta organización, tiene sus antecedentes en las matrices lógicas programables y suele recibir el nombre de matricial. Los circuitos PLD tuvieron un gran desarrollo desde que a mediados de la década de los 70 se realizaron los primeros secuenciadores lógicos programables o PLS. Su utilización provoca que se mejoren aspectos tales como la reducción del número de elementos necesarios, la disminución del tiempo necesario 5

para crear el diseño, el aumento de la respuesta y la disminución de conexiones externas lo que provoca la disminución a la hora de generar ruido. Gracias a estas mejoras obtenemos una disminución en los costes de producción y un aumento de fiabilidad del sistema, cosa que hace que los PLDs sean una buena elección a la hora de empezar a diseñar el proyecto.

Los PLDs presentes en el mercado tienen diferentes arquitecturas dependiendo del fabricante, incluso hay algunos que tienen arquitecturas híbridas, por ello se pueden organizar según su capacidad de respuesta, de su arquitectura, etc... La clasificación de los PLDs es la siguiente: •

Dispositivos lógicos programables simples (SPLD)



Dispositivos lógicos programables complejos (CPLD)



Matrices de puertas programables por campo (FPGA)



Dispositivos Híbridos (CPLD-FPGA)

b. DISPOSITIVOS LÓGICOS PROGRAMABLES SIMPLES (SPLDs) Se les denomina así a todos los PLDs que están formados por bloques

lógicos

programables

conectados

a

macroceldas

con

interconexiones programables y de un tamaño del orden de 22 macroceldas. El diagrama típico de bloques de un SPLD está formado por un bloque lógico y las macroceldas.

6

Figura 1: Diagrama de bloques de un SPLD

Un bloque lógico no es más 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: Composición de un bloque lógico

Dependiendo de la configuración que se puedan aplicar a las matrices de entrada/salida del bloque lógico 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 continuación se explica la funcionalidad de los bloques lógicos de los SPLDs que tienen estas arquitecturas. i. PROM (Programmable Read Only Memory) Son memorias de lecturas programadas por el usuario, según la tecnología de borrado o la técnica utilizada para ello se puede distinguir entre: PROM, OTPROM, UVPROM, EEPROM, EEPROM FLASH. Los bloques lógicos formados con esta tecnología tienen la matriz de entrada programada de fábrica mientras que la matriz de salida debe ser programada por el usuario y los SPLDs no dispondrán de macroceldas. Ya que con “n” entradas tendremos “2^ n” salidas

Figura 3: Diagrama de programación del bloque lógico de una PROM

8

ii. PAL (Programable Array Logic) Los SPLDs que tienen esta arquitectura como bloque lógico a diferencia de la arquitectura PROM necesitarán de macroceldas; esta arquitectura es la más 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 fábrica de una manera curiosa, ya que teniendo “n” entradas se dispone a la salida de menos de “2^ n” términos, por ello es necesario el bloque de las macroceldas para poder realimentar la señal y así tener más términos a la salida.

Figura 4: Diagrama de programación del bloque lógico de una PAL

iii. FPLA (Field Programmable Logic Array) Este sistema de bloque lógico posee una estructura más 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 sólo como máquina de estados.

9

Figura 5: Diagrama de programación del bloque lógico de una FPLA

c. DISPOSITIVOS LOGICOS PROGRAMABLES COMPLEJOS (CPLDs)

Los CPLDs se crearon para poder diseñar 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 conexión. A raíz de su creación se ha logrado disminuir el coste de desarrollo y el tiempo de respuesta del sistema, además la vida del producto aumenta considerablemente gracias a la capacidad de actualización que tienen los CPLDs Un CPLD comprende múltiples 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 están conectados a un conjunto de cables de interconexión. Cada bloque - PAL

10

como también está conectado a un subcircuito marcado bloque de Entrada / Salida, que se adjunta _ .

n • •

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 lógico programable complejo (CPLD )

i. ARQUITECTURA DE LOS CPLDs La mayoría de los CPLDs tienen la misma arquitectura interna, dividida en tres partes que son: 

Matriz de conexión global



Bloques lógicos con sus macroceldas



Bloques de entrada y salida.

Figura7: Ejemplo de la arquitectura interna de un CPL

11

1. MATRIZ DE CONEXIÓN GLOBAL O INTERCONEXION Es una matriz programable que permite realizar conexiones entre el bloque lógico 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 interconexión del CPLD es una gran matriz de conmutación programable que permite que las señales 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 función, hay suficiente flexibilidad para permitir a muchas combinaciones de conexiones

2. BLOQUE LÓGICO Y MACROCELDAS: El bloque lógico 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 básicos disponibles en los bloques lógicos. Junto con las señales de control pueden hacer funciones como máquinas de estado, contadores, etc... Hay dos tipos de macroceldas: de entrada/salida y de realimentación. Las macroceldas de entrada/salida están unidas directamente al bloque E/S. Las macroceldas de realimentación no están conectadas al bloque de E/S, sino que están conectadas directamente a la matriz de conexión global. 12

En un CPLD la cantidad de macroceldas puede variar de 32 a más de 3000. 3. BLOQUE DE ENTRADA/ SALIDA Este bloque es el encargado de conectar los pins del dispositivo

a

las

macroceldas

del

bloque

lógico.

Configurándose como pins de entrada, salida o de alta impedancia. El número de E/S puede variar hasta más de 200 dependiendo del encapsulado La figura 8 muestra un típico bloque de E / S de un CPLD. El bloque de E / S se utiliza para impulsar las señales de las patillas del dispositivo CPLD en los niveles de tensión 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 señales 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 señal antes de llegar a un flip-flop lo que aumentaría el requisito de tiempo de retención del dispositivo. Además, una pequeña cantidad de la lógica se incluye en el bloque de E / S simplemente añadir algunos más recursos para el dispositivo

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

13

4. BLOQUES FUNCIONALES: Un bloque de función típica se muestra en la Figura 9. El plano AND todavía existe como lo demuestran los cables de cruce. El plano AND puede aceptar entradas de los bloques de ENTRADA / SALIDA, otros bloques de función, o retroalimentación del mismo bloque de funciones. Los términos y luego O juntos usando un número fijo de puertas OR, y los términos se seleccionan a través de un gran multiplexor. Las salidas del mux pueden ser enviadas directamente del bloque o a través de un flip-flop sincronizadas. Este bloque particular incluye lógica adicional tal como una O exclusiva seleccionable y una señal de reinicio maestro, además de ser capaz de programar la polaridad en diferentes etapas. Por lo general, los bloques de función están diseñados para ser similar a arquitecturas PAL existentes, tales como el 22V10, de modo que el diseñador puede usar herramientas conocidas o incluso diseños más antiguos, sin cambiar ellos.

Figura 9: Ejemplo de un bloque funcional de un CPLD

14

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

comunes

son

eléctricamente

programable

memoria de sólo lectura (EPROM), PROM eléctricamente borrable (EEPROM) y Flash EPROM. Estas tecnologías son similares a, o versiones de la próxima generación de las tecnologías, 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 diseño, los siguientes aspectos deben tenerse en cuenta: 1. La tecnología de programación: 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: 

Cuántos bloques de función con los que cuenta el dispositivo



Cuántos términos de productos y de suma se pueden utilizar



Cuáles son los retrasos mínimos y máximos a través de la lógica



Qué recursos lógicos adicionales están ahí como XNORs , ALU , etc



Qué tipo de controles de registro están disponibles 15

(por ejemplo , el reloj habilitar, restaurar, control de polaridad ) 

Cuántos son los insumos locales al bloque de funciones y cuántas 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 inclinación de la señal de reloj en el chip. Esto ayudará a determinar la frecuencia máxima a la que el dispositivo puede funcionar

3. La capacidad de E / S : o Cuántos de E / S son independientes, que se utiliza para cualquier función, y cuantos se dedican a la entrada de reloj , reinicio maestro , etc. ? o Cuál es la capacidad de transmisión de salida en términos de niveles de tensión y corriente o Qué tipo de lógica se incluye en un bloque de E / S que se puede utilizar para aumentar la funcionalidad del diseño iii. EJEMPLOS FAMILIAS CPLDs: Algunas familias CPLD de diferentes fabricantes se enumeran a continuación:     

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 están formados por un mar de bloques lógicos rodeados por una matriz de bloques de entrada/salida interconectados por líneas programables. Un FPGA contiene desde 64 a más de 1000 bloques lógicos, al ser tan numerosos estos bloques, no están interconectados entre si, sino que se conectan dependiendo de las necesidades del usuario, usando programas de diseño 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 creación de prototipos ASIC, o en lugares dónde y con el tiempo se utiliza ASIC. Por ejemplo, un FPGA puede ser usado en un diseño que necesitan para llegar al mercado de forma rápida sin importar el costo. Más tarde un ASIC puede ser utilizada en lugar de la FPGA cuando los aumentos de volumen de producción, 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 términos generales todos ellos son una variación de la que se muestra en la Figura 11. La arquitectura consta de bloques configurables de lógica, los bloques de E / S configurables, y de interconexión programable. Además, habrá circuitos de reloj para conducir las señales de reloj a cada bloque lógico, y los recursos lógicos adicionales como ALU, la memoria y los decodificadores pueden estar disponibles. Los dos tipos básicos de elementos programables para una FPGA son RAM estática y anti-fusibles

Figura 11: Arquitectura de un FPGA

ii. BLOQUE LOGICO CONFIGURABLE:

Contienen la lógica para la FPGA. En una arquitectura de grano grande, estos CLB contendrán suficiente lógica para crear una pequeña máquina de estados. En una arquitectura de grano fino, más como una verdadera ASIC matriz de puertas, el CLB contendrá la lógica sólo muy básica. El diagrama de la Figura 12 se considera un 18

bloque de grano grande. Contiene RAM para la creación de funciones lógicas combinatorias arbitrarias. También contiene flip-flops para elementos de almacenamiento, velocidad de reloj y multiplexores con el fin de conducir la lógica dentro del bloque y desde y hacia los recursos externos. Los muxes también permiten la selección de polaridad y restablecen y selección de entrada claro.

Figura 11: FPGA Bloque lógico Programable

iii. BLOQUES CONFIGURABLE DE ENTRADA/ SALIDA

Como se muestra en la Figura 12, se utiliza para llevar las señales en el chip y enviarlos de vuelta otra vez. Se compone de una memoria intermedia de entrada y un búfer de salida con tres controles de salida de colector estatales y abiertas. Típicamente 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 rápida o lenta y tiempos de caída. Además, a menudo hay un flip-flop en las salidas de 19

manera que las señales 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 señal antes de llegar a un flip-flop lo que aumentaría la bodega requisito hora del dispositivo.

Figura 12: FPGA Bloque Configurable de E/S

iv. INTERCONEXION PROGRAMABLE:

La interconexión 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 jerarquía de los recursos de interconexión puede ser vista. Hay líneas largas que pueden ser utilizados para conectar CLB críticos que están físicamente lejos unos de otros en el chip sin inducir mucha demora. También se pueden utilizar como autobuses dentro del chip. También hay líneas cortas que se utilizan para conectar CLB individuales que se encuentran físicamente cerca uno del otro. Hay a menudo una o varias matrices de conmutación , al igual que en un CPLD, para conectar estas líneas largas y cortas en conjunto de una manera específica . Conmutadores programables dentro del chip permiten la conexión de CLB para interconectar 20

líneas y líneas de interconexión entre sí y a la matriz de conmutación. Buffers tres estados se utilizan para conectar muchos CLB a una larga Línea, la creación de un autobús. Largas colas especiales, llamadas líneas globales de reloj, están especialmente diseñadas para baja impedancia y tiempos de propagación de este modo rápido. Estos están 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 interconexión programable

v. CIRCUITO DE RELOJ O CONTRLADORES DE RELOJ

Bloques especiales de E / S con buffers de reloj de alta impulsión 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 señales de reloj en las líneas de reloj globales descritos anteriormente. Estas líneas de reloj están diseñados para tiempos sesgar bajos y tiempos de propagación rápida. Como veremos más adelante, el diseño síncrono es un deber con FPGAs, ya sesgo absoluto y el retardo no se puede garantizar.

21

Sólo cuando se utiliza las señales de reloj de buffers de reloj se puede garantizar los retrasos relativos y los tiempos de sesgo. vi. PEQUEÑA VS LARGA GRANULARIDAD (SMALL VS LARGE GRANULARITY) FPGAs de grano pequeños parecen a matrices de puertas ASIC en que los CLB contienen elementos sólo pequeñas, muy básicos tales como puertas NAND, NOR puertas, etc La filosofía es que los elementos pequeños se pueden conectar para hacer funciones más grandes sin perder demasiado lógica. En un gran FPGA granos, donde el CLB puede contener dos o más flip-flops, un diseño que no necesita muchas chancletas dejará muchos de ellos no utilizada. Desafortunadamente, pequeñas arquitecturas de grano requieren muchos más recursos de enrutamiento, que ocupan espacio e insertar una gran cantidad de retardo que puede más que compensar la mejor utilización. SMALL Mejor utilización Conversión directa en ASIC

LARGE Menos niveles de lógica Menos retraso de interconexión

Tabla 1: pequeña vs larga granularidad

Una comparación de las ventajas de cada tipo de arquitectura se muestra en la Tabla 1 anterior. La elección de la arquitectura a utilizar depende de su aplicación específica. vii. PROGRAMACION SRAM VS ANTI-FUSE Hay dos métodos que compiten de FPGAs de programación. La primera, la programación SRAM, implica pequeños trozos de memoria RAM estática para cada elemento de programación. Escribiendo el bit con un cero se apaga un interruptor, al escribir con un uno enciende un interruptor. El otro método consiste en anti22

fusibles que consisten en estructuras microscópicas que , a diferencia de un fusible regular, normalmente hace que no hay conexión. Una cierta cantidad de corriente durante la programación 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 fabricación estándar que las plantas de fabricación de chips conocen y siempre están optimizando para un mejor rendimiento. Dado que las SRAM son reprogramables, las FPGAs se pueden reprogramar cualquier número de veces, incluso mientras están en el sistema, al igual que escribir en un SRAM normal. Las desventajas son que son volátiles, lo que significa una falla de energía potencialmente podría cambiarla. Asimismo, los dispositivos basados en SRAM tienen grandes retrasos de enrutamiento. Las ventajas de FPGAs Anti- fusibles basado es que son no volátiles y los retrasos debidos a enrutamiento son muy pequeñas, por lo que tienden a ser más rápido. Las desventajas son que requieren un proceso de fabricación complejo, que requieren un programador externo para programar ellos, y una vez que están programados, que no se pueden cambiar

viii. EJEMPLOS DE FAMILIAS FPGA: 1. Ejemplos de programación SRAM o o o o

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

2. Ejemplos de programación Anti-fuse  

Actel SX and MX families Quicklogic pASIC family 23

e. ELEGIR ENTRE CPLDs & FPGAs La elección entre una CPLD y FPGA dependerá de las características y necesidades de su proyecto. Un resumen de las características de cada uno se muestra en la Tabla 2 a continuación:

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 : “DISEÑO DE FLUJO” En esta sección se examina el flujo de diseño para cualquier dispositivo, ya sea un ASIC, FPGA, o una CPLD. Este es todo el proceso de diseñar un dispositivo que garantiza que no se pase por alto ningún paso y que va a tener la mejor oportunidad de recuperar un prototipo de trabajo que funciona correctamente en su sistema. El caudal de diseño consta de los pasos siguiente figura ESCRIBIENDO UNA ESPECIFICACION REVISION DE LA ESPECIFICACION DISEÑO SIMULACION INTEGRACION REVISION VOLVER PLACE PRUEBA REVISION SINTETIZAR PRODUCTO AND A DEL DEL SIMULAR FINAL ROUTE DISEÑO SISTEMA CHIP Y

24

25

a. ESCRIBIENDO UNA ESPECIFICACION:

La importancia de una especificación no puede ser exagerada. Esta es una necesidad absoluta, sobre todo como una guía para la elección de la tecnología adecuada y para hacer saber sus necesidades al vendedor. Como especificación permite que cada ingeniero para entender todo el diseño y su pedazo de él . Se permite al ingeniero para diseñar la interfaz correcta para el resto de las piezas del chip. También ahorra tiempo y malentendidos. No hay excusa para no tener una especificación  Una especificación debe incluir la siguiente información:  Un diagrama de bloques externa que muestra cómo el chip encaja en   

el sistema Un diagrama de bloques interno mostrando cada sección funcional importante. Una descripción de los pines de E / S , incluyendo o Capacidad de transmisión de salida  o Nivel de umbral de entrada  Estimaciones de temporización incluidas: o configuración y tiempos de espera para la entrada pasadores tiempos de propagación para pines de salida de tiempo de

    

ciclo de reloj Recuento estimado puerta Tipo de embalaje Consumo de energía Target Objetivo Los procedimientos de prueba

También es muy importante entender que este es un documento vivo. Muchas secciones tendrán mejores conjeturas en ellos, pero éstos cambiarán a medida que el chip está siendo diseñado

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

26

Una vez que la especificación se ha escrito, se puede utilizar para encontrar el mejor proveedor con una tecnología y estructura de precios que mejor se adapte a sus necesidades. ii. ESCOGIENDO UN METODO DE ENTRADA DEL SISEÑO Usted debe decidir en este punto que el método de entrada de diseño que prefiera. Para los chips más pequeños , la introducción del esquema suele ser el método de elección, sobre todo si el ingeniero de diseño ya está familiarizado con las herramientas. Para diseños más grandes , sin embargo , un lenguaje de descripción 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 síntesis se requiere para " sintetizar " el diseño . Esto significa que el software crea puertas de iii.

bajo nivel de la descripción de alto nivel ESCOGIENDO UNA HERRAMIENTA DE SINTESIS Usted debe decidir en este punto que la síntesis de software que va a utilizar si va a diseñar la FPGA con un HDL . Esto es importante ya que cada herramienta de síntesis ha recomendado o métodos obligatorios de diseño de hardware de modo que pueda realizar correctamente la síntesis . Será necesario conocer estos métodos en la delantera de manera que no tendrá que ser rediseñado más adelante en las secciones del chip . Al final de esta fase es muy importante tener una revisión del diseño

c. DISEÑO Es muy importante que siga las buenas prácticas de diseño. Esto significa tomar en cuenta los siguientes problemas de diseño  El diseño de arriba hacia abajo  Lógica de uso que encaja muy bien con la arquitectura del dispositivo que haya elegido 27

 Macros  Diseño síncrono  Proteger contra metastability  Evite los nodos flotantes  Evite el conflicto de bus d. SIMULACION Y REVICION DEL DISEÑO La simulación es un proceso en curso, mientras que el diseño que se está haciendo. Las secciones pequeñas del diseño deben ser simulados por separado antes de engancharlos a las secciones más grandes. Habrá muchas iteraciones de diseño y simulación con el fin de obtener la funcionalidad correcta. Una vez que el diseño y la simulación están terminadas, otra revisión del diseño debe llevarse a cabo para que el diseño se puede comprobar. Es importante conseguir que los demás a mirar por encima de las simulaciones y asegurarse de que nada le haya faltado y que ninguna suposición inadecuada fue hecha. Esta es una de las críticas más importantes, ya que es sólo con la simulación correcta y completa que usted sabrá que el chip funcione correctamente en su sistema e. SINTETIZAR Si el diseño se ha introducido el uso de un HDL, el siguiente paso es para sintetizar el chip. Esto implica el uso de software de síntesis de traducir de manera óptima su nivel de transferencia de registros (RTL) de diseño en un diseño de nivel de la puerta que se puede asignar a los bloques lógicos en la FPGA. Esto puede implicar la especificación de conmutadores y criterios de optimización en el código HDL, o jugar con los parámetros del software de síntesis con el fin de asegurar una buena sincronización y la utilización f. PLACE AND ROUTE El siguiente paso es diseñar el chip, lo que resulta en un diseño físico real de un chip real. Esto implica el uso de herramientas de software del proveedor para optimizar la programación del chip para implementar el diseño. A continuación, el diseño se programa en el chip g. SIMULAR NUEVAMENTE Y REVISION FINAL

28

Después de la disposición, el chip debe simularse nuevamente con los nuevos números de sincronización producidos por la disposición real. Si todo ha ido bien hasta el momento, los nuevos resultados de la simulación se pondrán de acuerdo con los resultados previstos. De lo contrario, hay tres caminos posibles para ir en el flujo de diseño. Si los problemas que se plantean aquí son significativos, pueden necesitar ser rediseñado secciones de la FPGA. Si no son simplemente algunos caminos de temporización marginales o el diseño es ligeramente más grande que la FPGA, puede ser necesario para llevar a cabo la síntesis de otro con mejores limitaciones o simplemente otro lugar y ruta con mejores limitaciones. En este punto, una revisión final es necesario para confirmar que no se ha pasado por alto h. PRUEBA Para un dispositivo programable, sólo tiene que programar el dispositivo y tener

inmediatamente

sus

prototipos.

A

continuación,

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 modificación del sistema o cambiar el software del sistema. Estos problemas deben ser probados y documentados de manera que puedan fijarse en la próxima revisión del chip. La integración 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 visión general de las tecnologías 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 creación de un chip de trabajo en poco tiempo 6. BIBLIOGRAFIA Páginas 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

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF