diseño de sistemas con fpga - página principal de jhon...

80
Diseño de Sistemas con FPGA Introducción Patricia Borensztejn revisado: septiembre 2009

Upload: duongnguyet

Post on 05-Feb-2018

225 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Diseño de Sistemas con FPGAIntroducción

Patricia Borensztejnrevisado: septiembre 2009

Page 2: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Objetivo del curso

• Adquirir conocimientos elementales de la arquitectura de las FPGA actuales

• Aprender a utilizar las herramientas de programación y realizar dos proyectos sencillos “que anden” (uno combinacional y otro secuencial) y finalmente un proyecto algo mas interesante a acordar entre todos.

Page 3: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Temario y Planificación• Introducción. Tecnologías (1)• Arquitectura de las FPGA. (2)• Modelado de Sistemas Combinacionales. Verilog.

Entorno de desarrollo de xilinx. (3,4)• Modelado de Sistemas Secuenciales. Un ejemplo

completo. UART. (5,6)• PicoBlaze: una herramienta para introducirnos en el co-

diseño hardware software. Un ejemplo sencillo. (7,8,9)• Pipeline: un diseño sencillo (10)• Memorias embebidas. (11)• Testing (12)

Page 4: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Bibliografía del curso (la que yo uso…)

• FPGA Prototyping by Verilog Examples. Pong P. Chu. Wiley InterScience. (Verilog e ISE)

• FPGA-Based System Design. Wayne Wolf (tecnología)• The Design Warrior´s Guide for FPGAs. Clive Maxfield

(arquitecturas)• Digital Arithmetic. Ercegovac, y Thomas Lang (algoritmos

aritméticos)• Synthesis of Arithmetic Circuits. Deschamps, Gioul, and

Sutter. (algoritmos y codificación en VHDL para FPGA)• Writing Testbenches: Functional Verification of HDL

Models. Janick Bergeron. Kluwer Academic Publishers.• Hojas de Datos…. (de FPGA´s…)• ….. Y todo lo que ustedes encuentren en la web

Page 5: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Cuestiones Administrativas a acordar

• Usaremos 16 clases, teórico-prácticas.• Si por algún motivo de fuerza mayor

tuviéramos que suspender alguna clase, la reemplazaríamos el día viernes en el mismo horario.

• La asistencia del alumno debe superar el 80% del total de clases para aprobar la materia(No debe faltar mas de 3 veces)

Page 6: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Introducción: ¿Que son las FPGA?

• ¿Que son?• ¿En que se diferencian de un microprocesador?• ¿Que parte del mercado ocupan? (¿para qué se

venden?)• Tecnologías de Programación• Origen de los FPGA: PLD´s• ASIC´s• FPGA

Page 7: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

¿Que son los FPGA?Fiel Programmable Gate Array

• Arreglos de Puertas Programables en el Campo : (nunca mas lo traduzco)

– Circuitos Integrados que contienen bloques configurables de lógica junto con conexiones configurables entre esos bloques.

– Para que se configuran? Para realizar distintas tareas. Algunas FPGA permiten ser programados una sola vez(OTP one time programmable), o bien una y otra y otra vez…

– Los FPGA se programan “in the field”, o sea, no los programa el fabricante, sino que lo puede programar el desarrollador “en su campo”, o sea, en su laboratorio. Si un dispositivo puede ser programado mientras está residente, o embebido en un sistema mayor, se dice que es ISP (In System Programmable)

– ¿Porqué Gate Array? Es el nombre de un tipo de tecnología de fabricación de los ASIC (Application Specific Integrated Circuit)

Programmableinterconnect

Programmablelogic blocks

FPGAFPGA ASICASIC

ISPISP OTPOTP

Page 8: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Microprocesadores y FPGA• Ninguno de los dos son circuitos dedicados. (no

full custom) No están diseñados para una función específica, sino que el usuario los programa.

• Los microprocesadores implementan funciones por software. Los FPGA lo hacen por hardware.

• (pero… un procesador es, desde el punto de vista del diseñador de procesadores (Intel, por ejemplo), un full custom ASIC!!)

Page 9: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Microprocesadores, FPGA, ASIC´s

Microprocesadores– Las funciones se realizan

en software– No son “custom parts” por

lo tanto no son tan buenos como un chip dedicado (ASIC)

FPGA– Las funciones se realizan

en hardware.– No son “custom parts”. Son

mas lentos que los ASIC´s, consumen mas energía.

ASIC (Application Specific IC)– Diseñado para implementar una función lógica particular. Son

“hechos a medida”. – Son más rápidos que los FPGA y manufacturados en gran

escala son mas baratos.– Consumen menos.

Page 10: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Microprocesadores y FPGA

instrucciones

memoriaCPU

lógica

bits de configuración

bits de configuración

lógica lógica

bits de configuración

bits de configuración

lógica

Configuración FPGA:– Bits permanecen en el

dispositivo que programan– Un bit de configuración

controla un switch o un bit de lógica

Programación CPU:– Las instrucciones se

obtienen de la memoria– Las instrucciones

seleccionan operaciones complejas

Page 11: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Mercados, o bien, para que se usan, o bien, ¿compiten entre sí?

• ¿Cual es el mercado de los microprocesadores?– Computadoras personales (menos del 1% del

mercado) (ver Jim Turley). Propósito General.– En Sistemas Embebidos. Propósito

Específico. Ej. MP3, cámaras digitales… enfin… el 100% de la producción de microprocesadores y microcontroladores….

Page 12: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Algunas perlitas de Jim TurleyAbout zero percent of the world's microprocessors are used in computers. Yup. Every PC, Macintosh, engineering workstation, Cray supercomputer, and all the other general-purpose computers put together account for less than 1% of all the microprocessors sold every year. If you round off the fractions, embedded systems consume 100% of the worldwide production of microprocessors.

I figure the average middle-class household has about 40 to 50 microprocessors in it—or 55 if you own a PC. There's the famous microprocessor on the motherboard, of course, but there's also one in every IBM PC keyboard; one on each floppy, hard, and CD-ROM drive; one on the 3D accelerator card; and probably one each on your modem and your network-interface card. Force-feedback joysticks and wheels add even more, as do USB peripherals, printers, SCSI controllers, and Zip or tape drives.

Page 13: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Algunas perlitas de Jim TurleyGordon Moore predicted that the number of transistors one could fit on a given amount of silicon would double about every 18 months, and so far, he's been right. Personally, I predict that the amount of computing power we carry on our person will double every 12 months.

Page 14: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Algunas perlitas de Jim Turley

So how come all the press and glory goes to Intel and its PC competitors? How can a product with approximately 0% of the market get so much attention? Well, Intel may have a small slice of the overall pie, but it has the biggest slice of one very important pie. (As we've seen, Intel does not control the microprocessor market; it controls the PC processor market, a major distinction that's frequently lost on the six o'clock news.)

• En1999 se vendieron para el mercado de embebidos:• 250 millones de microprocesadores de 32 bits• 1000 millones de microprocesadores de 16 bits• 1000 millones de microprocesadores de 8 bits• 1000 millones de microprocesadores de 4 bits

• Contra 100 millones para el mercado de computadoras (PCs, MACs, workstations y supercomputadoras)

Page 15: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Mercados, o bien, para que se usan, o bien, ¿compiten entre sí?

• ¿Cual es el mercado de los FPGA?– En los 80 se usaban para implementar “lógica para unir” (glue

logic), lógica para interfacear componentes mas grandes.– En los 90, telecomunicaciones y redes– 2000 … todo tipo de aplicaciones

• Segmentos de mercado donde se han introducido– Compiten por el mercado con los procesadores dedicados,

DSP.– Reemplazan diseños realizados antes mediantes ASICs (chips

hechos a medida)– Reemplazan a los microcontroladores embebidos en sistemas– Explotación del alto grado de paralelismo y reconfigurabilidad de

los FPGA como “aceleradores hardware” de algoritmos software. Simulacion. Criptografía. Etc.

Page 16: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Mercados (www.xilinx.com)• Aerospace & Defense

Radiation-tolerant FPGAs along with intellectual property for image processing, waveform generation, and partial reconfiguration for SDRs.

• AutomotiveAutomotive silicon and IP solutions for gateway and driver assistance systems, comfort, convenience, and in-vehicle infotainment.

• BroadcastSolutions enabling a vast array of broadcast chain tasks as video and audio finds its way from the studio to production and transmission and then to the consumer.

• ConsumerCost-effective solutions enabling next generation, full-featured consumer applications, such as converged handsets, digital flat panel displays, information appliances, home networking, and residential set top boxes.

• Industrial/Scientific/MedicalIndustry-compliant solutions addressing market-specific needs and challenges in industrial automation, motor control, and high-end medical imaging.

• Storage & ServerData processing solutions for Network Attached Storage (NAS), Storage Area Network (SAN), servers, storage appliances, and more.

• Wireless CommunicationsRF, base band, connectivity, transport and networking solutions for wireless equipment, addressing standards such as WCDMA, HSDPA, WiMAX and others.

• Wired CommunicationsEnd-to-end solutions for the Reprogrammable Networking Linecard Packet Processing, Framer/MAC, serial backplanes, and more

Page 17: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Ley de Moore• Moore dió un discurso en el año 1965,

donde predijo que en el año 1970 (cinco años mas adelante) el costo por componente sería la décima parte del actual costo.

• Y además predijo que esa tendencia se mantendría por 10 años.

Page 18: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

40 años de Ley de Moore• Una de las maneras en que se

enunció la ley de Moore fué : “ El número de transistores en un circuito integrado se podrá duplicar cada dos años”

• Este cuadro muestra el crecimiento exponencial de la integración de transistores en un chip.

Page 19: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Es interesante también extrapolar hacia atrás…

…podemos ver como la tecnología hace que el poder de cómputo crezca exponencialmente con el tiempo.

En rigor, el autor de este cuadro (“The Law of Accelerating Returns “ by  Ray Kurzweil) dice que lo que no nos damos cuenta es que hay un doble crecimiento exponencial, de lo contrario no estaríamos obteniendo una curva sino una línea recta en el cuadro de la derecha).Están representadas 49 máquinas. Desde las primeras calculadoras electromecánicas que calcularon el censo de EEUU entre 1890 y 1899, la máquina de Robinson que craqueó el código secreto de los nazis en 1940, la máquina CBS de tubos de vacio que predijo la elección de Eisenhower, las computadoras que se usaron en los primeros lanzamientos al espacio…. Y…. Aquellas en las que escribimos y mostramos esta transparencia….

Page 20: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Sin embargo … • Miremos este cuadro.

Muestra que si tomamos como medida la “densidad computacional” que relaciona el número de operaciones por segundo, la frecuencia de operación y el área ocupada, vemos que ésta ha ido descendiendo con los años…

• Esto muestra que los microprocesadores no están siendo capaces de traducir en un aumento equivalente en el rendimiento (MOPS) al aumentar la frecuencia y el área ocupada.

• Sin embargo, en el mismo período de tiempo, los FPGA, han sobrepasado la Ley de Moore.

Referencia: BEE2: A High-End Reconfigurable Computing System. Chen Chang, John Wawrzynek, and Robert W. Brodersen. University of California, Berkeley. IEEE Design & Test of Computers, March–April 2005.

Page 21: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

…el rendimiento de un solo procesador no aumenta acorde a la

tecnología

Page 22: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

¿Como aumentar el rendimiento? (¿Como hacer que la Ley de Moore

continúe?)

• Si un solo procesador ya no puede ser capaz de obtener un aumento exponencial del rendimiento conforme la tecnología avanza, entonces el aumento del rendimiento debe provenir de multiplicar los núcleos de procesador (arquitecturas multicore) dentro del chip. Es el camino que siguen en este momento IBM (PowerPc), Sun e Intel.

• ¡Esto quiere decir que toda la computación se vuelve paralela!

Page 23: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

High Performance Computing• En el mundo de las Supercomputadoras,

rendimientos entre los 100Gflops y 10Teraflops se obtienen en base a sistemas construidos como una colección de procesadores del mercado (componentes “off-the-shelf”).

• Como se producen tan pocos sistemas de este tipo, no se justifica utilizar procesadores dedicados al cómputo de alto rendimiento (Todas las veces que se intentó, la empresa quebró. )

Page 24: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

High End Reconfigurable Computing

• Son sistemas de super cómputo basados en FPGA´s.

• RAMP Blue: contiene (http://ramp.eecs.berkeley.edu/index.php?index)– 21 sistemas llamados BEE2.– Cada uno de los sistemas BEE2

contiene 48 cores de Microblaze (core de procesador implementado en una FPGA)

– O sea, en total el sistema tiene 1008 procesadores

Page 25: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Y bien, ¿compiten entre sí?

Page 26: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Field Programmable Gate Array• Lo que caracteriza o distingue a un FPGA de un

ASIC es un aspecto crucial que justamente reside en su nombre:

• Para poder programarlos necesitamos algún mecanismo que nos permita programar o configurar un chip de silicio preconstruido.

• Vamos a ver entonces las tecnologías de fabricación que nos van a permitir programar (configurar) estos dispositivos.

Field Programmable Gate Array

Page 27: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Tecnologías de Programación

Page 28: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

a

Logic 1

y = 1 (N/A)&b

Pull-up resistors

Potential links

NOT

NOT

AND En la ausencia de links, todas las

entradas a la puerta AND estan conectadas al valor lógico ´1´.

Los pull-up resistors mantienen débilmente el valor lógico ´1´.

Para realizar una función hay que buscar un mecanismo que permita establecer uno o mas links.

Tecnologías de Programación

Page 29: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

aFat

Logic 1

y = 0 (N/A)&

Faf

bFbt

Fbf

Pull-up resistors

NOT

NOT

AND

Fuses

Tecnologías de Programación: (1) Fusible Link

El dispositivo se fabrica con todos los enlaces en su lugar. Un enlace es un fusible. O sea que, en su forma no programada, la función valdrá siempre ´0´.

Para remover los fusibles se aplican pulsos de un voltaje alto a las entradas.

Page 30: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

aFat

Logic 1

y = a & !b&b

Fbf

Pull-up resistors

NOT

NOT

AND Removiendo los fusibles señalados, la

función implementada es y=a & !b Este proceso de remover los fusibles se

llama “programación” (también se llama “blowing” o “burning”)

Los dispositivos son OTP, porque el fusible no puede recuperarse después de haberse quemado.

Tecnologías de Programación: (1) Fusible Link

Page 31: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

a

Logic 1

y = 1 (N/A)&b

Pull-up resistors

Unprogrammedantifuses

NOT

NOT

AND

Tecnologías de Programación: (2) Antifuse

En su estado no programado, el antifusible tiene una resistencia tan grande que puede considerarse un circuito abierto.

Cuando se programa, (se dice que ha sido crecido (grown)) , aplicando pulsos de alto voltaje y corriente a las entradas del dispositivo.

Page 32: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

a

Logic 1

y = !a & b&b

Pull-up resistors

Programmedantifuses

NOT

NOT

AND

Haciendo crecer los antifusibles señalados, la función programada es:

!a & b

Tecnologías de Programación: (2) Antifuse

Page 33: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

(a) Before programming

Substra te

Meta l

Oxide

Meta l

Amorphous silicon co lumn

(b) After programming

Polysilicon via

Tecnologías de Programación: (2) Antifuse

La columna de silicio actúa como aislante entre las dos capas de metal, y tiene una resistencia muy alta (mas de un billón ohms)

El acto de programación hace crecer una “vía” de polisilicio. Estos dispositivos son OTP.

Page 34: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Logic 1

Pull-up resistor

Row(word) line

Column(data) line

Mask-programmedconnection

Transistor

Logic 0

Tecnologías de Programación: ROM

Consiste de array de filas (row) y columnas

Cada columna tiene un único pull-up que intenta mantener a “1” esa columna

Cada intersección fila/columna tiene un transistor y una “conexión” potencial

La ROM se preconstruye y la misma arquitectura puede usarse para múltiples clientes.Celda de una memoria ROM

Page 35: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Logic 1

Pull-up resistor

Row(word) line

Column(data) line

Mask-programmedconnection

Transistor

Logic 0

Tecnologías de Programación: (3) Mediante Máscara (ROM)

Se pre-construyen y, para adaptarlas a los requerimientos del cliente se utiliza una máscara fotográfica para definir cuales celdas tendrán o no una conexión programada.

Si la línea de fila se activa, el transistor se activa y : Si hay conexión, en la

columna aparece el valor lógico 0

Si no hay conexión, en la columna sigue el valor ´1´del pullup.

Celda de una memoria ROM

Page 36: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Logic 1

Pull-up resistor

Row(word) line

Column(data) line

Fusible link

Transistor

Logic 0

Tecnologías de Programación: (4) PROM

Problema de los dispositivos programados con máscara: son caros! Se hacen en la fábrica y solo salen a cuenta si son muchisimos

Programmable ROM (1970) están basados en la tecnología de fusible link.

En su estado no programado, tal como se compra, todos los enlaces están presentes. O sea, si la línea se activa, la columna conduce ´0´.

La programación al remover los enlaces, hace que la celda almacene un ´1´.

Celda de una memoria PROM

Page 37: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

control gate

source drain

control gate

floating gate

source drain

(a) Standard MOS transistor (b) EPROM transistor

Siliconsubstrate

Silicondioxide

Sourceterminal

Control gatetermina l

Dra intermina l

Sourceterminal

Control gateterminal

Draintermina l

Tecnologías de Programación: (5) EPROM

Problema con las tecnologías basadas en fusible links y máscaras son OTP.

Erasable Programmable EPROM (1971) : los transistores tienen una puerta adicional de polisilicio : puerta flotante

En su estado no programado, la puerta flotante no está cargada y no afecta el normal funcionamiento del transistor.

Al programar el transistor, se carga la puerta flotante, inhibiendo la normal operación del transistor, y distinguiendo aquellas celdas que han sido programadas, de las que no lo han sido.

Page 38: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Logic 1

Pull-up resistor

Row(word) line

Column(data) line

EPROMTransistor

Logic 0

Tecnologías de Programación: (5) EPROM

En este caso, no es necesario el fusible.

En su estado no programado, tal como se compra, todas las puertas flotantes están descargadas. O sea, si la línea se activa, se activa el transistor y la columna conduce ´0´.

La programación, al cargar la puerta flotante, inhibe la operación del transistor, por lo tanto la columna conduce ´1´.

Para descargar esa puerta, se utiliza radiación ultravioleta.

Para borrar la EPROM hay que quitarla del circuito.

Problemas: mucho tiempo para ser borradas (20´). Cuanta mas integración, se necesita mas radiación mas tiempo de exposición.

Page 39: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

E2PROM Cell

NormalMOS transistor

E2PROMtransistor

Tecnologías de Programación: (6) EEPROM y FLASH

Electrically Erasable Programmable ROM

Necesita dos transistores, el normal se utiliza para el borrado.

Son 2,5 veces mas grandes que los EPROM.

FLASH: borran mas rápido que EPROM.

Usan diversas arquitecturas, pero todas permiten ser borradas eléctricamente. Estas arquitecturas con similares de las EEPROM.

Page 40: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Tecnologías de Programación: (7) SRAM

Es un multitransistor formado por 4 a 6 transistores configurados como un latch. Dos de los seis transistores controlan el acceso al latch.

Cuando la celda no se direcciona, los dos transistores de control están cerrados y los datos se mantienen dentro del latch.

Consumen mucha área Pierden la información cuando dejan

de ser alimentados. Pueden ser reprogramados

rápidamente y repetidamente.SRAM

Page 41: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Tecnologías de Programación: (8) ….

La tecnología avanza… proximamente…. MRAM…. (magnetic RAM) quien sabe…

Page 42: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Technology Symbol Predominantly associated with ...

Fusible-link SPLDs

Antifuse FPGAs

EPROM SPLDs and CPLDs

E2PROM/FLASH

SPLDs and CPLDs(some FPGAs)

SRAM FPGAs (some CPLDs)SRAM

Tecnologías de Programación

Page 43: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Tecnologías de Programación

State-of-the-art

Feature

Technology node

SRAM Antifuse E2PROM /FLASH

One or moregenerations behind

One or moregenerations behind

FastReprogramming

speed (inc.erasing)

---- 3x slowerthan SRAM

YesVolatile (must

be programmedon power-up)

No No(but can be if required)

MediumPowerconsumption Low Medium

Acceptable(especially when usingbitstream encryption)

IP Security Very Good Very Good

Large(six transistors)

Size ofconfiguration cell

Very small Medium-small(two transistors)

NoRad Hard Yes Not really

NoInstant-on Yes Yes

YesRequires externalconfiguration file No No

Yes(very good)

Good forprototyping

No Yes(reasonable)

Yes(in system)Reprogrammable No

Yes (in-systemor offline)

Page 44: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Origen de los FPGA´sTecnologías relacionadas

• Tecnologías– Transistores (1947, Schockley,Brattain, Bardeen.

Laboratorios Bell)– Circuito Integrado (1958, Jack Kilby. Texas

Instrument. Jean Hoerni & Robert Noice, Fairchild Semiconductor)

– DRAM ( Intel 1970) SRAM (Fairchild 1970)– Microprocesador (Intel, 1971) (2300 transistores:

4004)– Dispositivos programables: PLD´s : SPLD´s a

principios de los 70, CPLD´s a fines de los 70– ASICs– FPGA

Page 45: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

1945 1950 1955 1960 1965 1970 1975 1980 1985 1990 1995 2000

FPGAs

ASICs

CPLDs

SPLDs

Microprocessors

SRAMs & DRAMs

ICs (General)

Transistors

Tecnologías Vivas

Page 46: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

PLD´s

Programmable Logic Device• Dispositivos cuya arquitectura interna está

predeterminada por el fabricante, pero pueden ser configurados por los ingenieros “en el campo” para realizar una variedad de funciones.

• Pocas puertas lógicas funciones simples

Page 47: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

PLDs

SPLDs CPLDs

PLAsPROMs PALs GALs etc.

Page 48: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

a b c

l l l

Address 0 &

Address 1 &

Address 2 &

Address 3 &

Address 4 &

Address 5 &

Address 6 &

Address 7 &a !a b !b c !c

!a !c!b& &

!a c!b& &

!a !cb& &

!a cb& &

a !c!b& &

a c!b& &

a !cb& &

a cb& &

Predefined AND arrayP

rogr

amm

able

OR

arr

ayw x y

Predefined linkProgrammable link

PROMs (1970)

La programación se puede realizar con cualquiera de las tecnologías vistas (fusibles, EPROM, EEPROM).

Solo es configurable la matriz OR.

Útiles para ecuaciones con pocas entradas y muchos términos producto.

Page 49: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Implementación de una función lógica combinacional

a b c w x y0 0 0 0 1 00 0 1 0 1 10 1 0 0 1 00 1 1 0 1 11 0 0 0 1 01 0 1 0 1 11 1 0 1 0 11 1 1 1 0 0

&a

b

c

w

x

y^

Page 50: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

a b c

l l l

Address 0 &

Address 1 &

Address 2 &

Address 3 &

Address 4 &

Address 5 &

Address 6 &

Address 7 &a !a b !b c !c

!a !c!b& &

!a c!b& &

!a !cb& &

!a cb& &

a !c!b& &

a c!b& &

a !cb& &

a cb& &

Predefined AND array

Pro

gram

mab

le O

R a

rray

w x y

Predefined linkProgrammable link

w = (a & b)x = !(a & b)y = (a & b) ^ c

Implementación con PROM

Page 51: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

a b c

&

&

&

a !a b !b c !c

N/A

Predefined AND array

Prog

ram

mab

leO

R a

rray

Predefined linkProgrammable link

l l l

w x y

N/A

N/A

PLA (Programmable Logic Array)

Disponible a partir de 1975, se pueden programar los dos arrays. Se hicieron algunas variantes: arrays AND con arrays NOR. No mucho

éxito en el mercado Son útiles cuando diversas funciones usan o comparten términos

producto. Son mas lentas que las PROMS

Page 52: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

a b c

&

&

&

a !a b !b c !c

a cb& &

a c&

!b !c&

Predefined AND array

Prog

ram

mab

leO

R a

rray

Predefined linkProgrammable link

l l l

w x y

w = (a & c) | (!b & !c)x = (a & b & c) | (!b & !c)y = (a & b & c)

Implementación con PLA

Page 53: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

a b c

l l l

&

&

&

&

&

&

a !a b !b c !c

ProgrammableAND array

Pre

defin

ed O

R a

rray

w x y

Predefined linkProgrammable link

PAL (Programmable Array Logic)

Al revés de las PROM, la parte programable es la matriz AND

Las GAL (Generic Array Logic) son variaciones de las PAL, mas sofisticados (EE)

Todos estos dispositivos, aparecen en el mercado con una variedad de opciones: inversión de las salidas, salidas triestado, salidas registradas, etc. Además de tener un número mas grande de entradas y salidas.

Page 54: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

ProgrammableInterconnect

matrix

Input/output pinsSPLD-like

blocks

CPLD´s (vamos llegando)• A finales de los 70, los

inventores de la PAL, introducen el Mega-Pal, dispositivo con 4 Standard Pals interconectadas de alguna manera. No funcionó. Consumía mucho.

• 1984: Altera (nueva empresa) introduce el CPLD basado en tecnología CMOS y EPROM.

• Las conexiones entre los bloques se programan mediante la matriz de interconexión.

Page 55: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Proceso de Diseño• ¿Como se diseñaba un circuito

usando PLD´s?Se realizaba un esquemático o bien

un diagrama de estados, todo en papel porque no existían las herramientas que hoy conocemos.

El esquemático se convertía del papel a una tabla (con un formato especial, requerido por el dispositivo programador). Esta tabla indicaba que conexiones se debían programar. La tabla se tipeaba en un computadora y se bajaba luego al dispositivo programador.

Cada vendedor de PLD´s, obviamente, había desarrollado su propio formato para el archivo, que solo servía para sus dispositivos.

(a) Host computer (b) Device programmer

Unprogrammeddevice

Programmeddevice

Page 56: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Ensambladores y Herramientas de Diseño

• 1980: JEDEC (Joint Electron Device Engineering Council) propone un formato standard para los archivos de configuracion de los PLD´s.

• John Birkner, creador de las PAL, crea PALASM el primer ensamblador para PAL. Es un primitivo HDL (Hardware Description Languaje) y además una aplicación software. Es usado para trasladar expresiones booleanas y grafos de estados a una tabla para PAL. PALASM solo es para PAL´s fabricadas por MMI (Monolithic Memories Inc). No realiza minimizaciones o optimaciones.

• 1983: ABEL (Advanced Boolean Expression Languaje ) y CUPL (Common Universal tool for Programmable Logic). Ambas herramientas trabajan con diversos tipos de PLD´s y de fabricantes.

• Estas herramientas y HDL son las precursoras de VHDL y Verilog, lenguajes HDL de alto nivel y herramientas que son usadas hoy para los ASIC´s y FPGA.

Page 57: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

PALASM

Page 58: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

PALASM TITLE Example PATTERN Simple REVISION A AUTHOR ECEN 220 COMPANY BYU DATE March 1, 1995 CHIP Example PAL2OL8 ;PINS ; 1 2 3 4 5 6 7 8 9 10 11 12 B A C D NC NC NC NC NC NC NC GND ; 13 14 15 16 17 18 19 20 21 22 23 24 NC NC NC NC NC NC NC NC Z /X NC VCC EQUATIONS X=/A*B + A*B + A*/B + /A*/B*C Z=/A*B + A*B + A*/B + /A*/B*C SIMULATION TRACE-ON A B C /X Z SETF /A /B /C SETF /A /B C SETF /A B /C SETF /A B C SETF A /B /C SETF A /B C SETF A B /C SETF A B C TRACE-OFF

obligado

opcional

Equaciones booleanas

•Trace define que señales mostrará el simulador. •SETF define el valor de las variables en cada simulación.

Page 59: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

PAL20L8• Entradas (20) :

1..11; 13-14; 16..23• Salidas (8): 15..22• Algunas salidas

(16..22) son triestado. Es decir, pueden ser configuradas tanto como entradas como salidas.

• Todas las salidas son negadas.

• Pin 12 es ground, Pin 24 es Vcc.

Page 60: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Esquema de la PAL

Page 61: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

24-Pin Small PAL Family

PAL 20 L 8

Page 62: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan
Page 63: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

PALASM: archivo .xpt• Después de creado el

archivo extensión .pds se ensambla. El ensambaldor genera dos archivos:

– .xpt: contiene el fuse map

– .trf es el archivo para simulación

• x se usa para denotar un contacto quemado.

• Columnas 0,1,2,3,4 5 corresponden a las entradas y sus complementarios.

• Filas 0,1,2,3 corresponden a la función \x (sus téminos producto y su habilitación)

• Filas 8 y 9 corresponden a la función Z. Sus términos producto y su habilitación.

• Fijense que cada OR puede admitir hasta 7 términos producto (pues uno de ellos se reserva para la habilitación)

Page 64: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

PALASM: archivo .xpt• Interpretación de los términos producto.

– La función X=/A*B + A*B + A*/B + /A*/B*CSimplificada es :

/X=A + B + CComprobarlo!!!!! (Pista: Usar Mapas de Karnaugh o bien deducirlo

de la Tabla de Verdad).

– La función Z=/A*B + A*B + A*/B + /A*/B*CEs idéntica a la anterior, salvo en el valor de la variable

dependiente Z, que ahora la usamos sin negar.Pero, las salidas son negadas en el dispositivo…. Así que el

ensamblador tiene que complementar la expresión Z=A + B + C/Z= ??????? (aquí se aplica Morgan)

Page 65: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

PALASM: archivo .trf (simulación)

Page 66: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

ASIC• Application Specific IC

– Diseñado para una función específica.– Contienen cientos de millones de puertas

lógicas y pueden ser usados para crear funciones complejas.

– El proceso de diseño y construcción de un ASIC es largo y caro, y finaliza en su realización en silicio.

– No puede ser usado ni testeado antes de su fabricación.

Page 67: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Fabricación de un IC • Los transistores y sus conexiones se construyen mediante muchas

capas (typical 10 to 15 in CMOS) puestas unas sobre las otra• Cada capa tiene una forma especial definida por una máscara.

Algunas de las capas o niveles forman transistores, otras los planos de conexión.

• Un aspecto importante de un IC es el tamaño del mas pequeño transistor que puede ser fabricado:– Este es medido en micrones (µm, 10-6 meter)– Por ejemplo, decimos que un IC está construido con un proceso

de 0.50 µm– Tal cual como profetizó Moore, el proceso continúa mejorando,

o sea haciendose mas pequeño….– The state-of-art process approaches less than

a fraction of 0.1 µm (known as deep sub-micron)

Page 68: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

ASICs

• ASIC: Es un chip (circuito integrado, IC) diseñado para una determinada aplicación y para una determinada compañía.

• Full custom: hecho enteramente por encargo (a medida): desde componentes pequeños, a microprocesadores diseñados y fabricados para una compañía específica.

ASICs

StructuredASICs

GateArrays

StandardCell

FullCustom

Increasing complexity

Page 69: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Circuitos Dedicados (full custom)• Los ingenieros tienen el control completo sobre cada

una de las máscaras usadas para fabricar el chip.• El vendedor del ASIC no prefabrica ningún componente

en el silicio y no provee ninguna librería ni puertas predefinidas.

• Por medio de las herramientas apropiadas, los ingenieros pueden modelar “a mano” las dimensiones de los transistores y pueden crear sus propias funciones basados en estos transistores. Incluso, las propias herramientas con las que ellos hacen estas cosas son diseñadas por ellos.

• El proceso es altamente complejo, y consume mucho tiempo, pero el chip resultante contiene la máxima cantidad de lógica con el mínimo desperdicio de silicio.

Page 70: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

(a) Pure CMOS basic cell (b) BiCMOS basic cell

(a) Single-column arrays (b) Dual-column arrays

I/O ce lls/pads

Channels

Basic ce lls

Gate Array• Gate Array: (1975) basado en la idea

de celdas básicas formadas por transistores y resistencias sin conexión.

• Cada fabricante de ASIC determina que incluir en una celda básica, y construye chips presiliconados formados por arrays de celdas. (sea of cells).

• Los fabricantes definen una librería funciones lógicas (puertas primitivas, multiplexores, y registros) que son los que usan los ingenieros de la aplicación.

• Los ingenieros diseñan hasta llegar a nivel de netlist. Luego se hace el mapeo, ubicación y routing con las herramientas provistas por el fabricante.

• El resultado de este proceso son las máscaras con las cuales se crean los niveles de metalización que unirán las celdas básicas entre sí, así como los componentes dentro de las celdas básicas.

Page 71: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Schematic. Gate Level. Netlist.• Gate Level: el diseño se

representa como una colección de puertas lógicas y funciones y conexiones entre ellas.

G1 = NAND

G2 = NOT

G3 = OR

SET_A

SET_B

DATA

CLOCK

CLEAR_A

CLEAR_B

CLEAR

SET

N_DATAQ

N-Q

G4 = DFF

BEGIN CIRCUIT=TEST INPUT SET_A, SET-B, DATA, CLOCK, CLEAR_A, CLEAR_B; OUTPUT Q, N_Q; WIRE SET, N_DATA, CLEAR;

GATE G1=NAND (IN1=SET_A, IN2=SET_B, OUT1=SET); GATE G2=NOT (IN1=DATA, OUT1=N_DATA); GATE G3=OR (IN1=CLEAR_A, IN2=CLEAR_B, OUT1=CLEAR); GATE G4=DFF (IN1=SET, IN2=N_DATA, IN3=CLOCK, IN4=CLEAR, OUT1=Q, OUT2=N_Q);

END CIRCUIT=TEST;

• Netlist: para poder usar el simulador, el diseño debe describirse de forma textual (archivos de texto)

Page 72: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Standard Cell • Como en el caso de Gate Arrays, el fabricante define un conjunto

de bloques básicos (multiplexores, registros, puertas, etc) que ofrece al ingeniero en forma de librerías.

• También ofrece librerías que pueden incluir microprocesadores, elementos de comunicación, funciones de ROM y RAM.

• Además hay IP que los ingenieros pueden reusar.• IP: Intellectual Property: bloques funcionales creados por algun

otro. Se compran.• Los ingenieros, con todos esos elementos hacen el diseño hasta

llegar a nivel de netlist, que describe las puertas lógicas que usarán y sus conexiones. Las herramientas de diseño son, incluso hoy, muy sofisticadas)

• La diferencia con las Gate Arrays es que no hay nada prefabricado. Cada función se crea con el mínimo número de transistores necesarios, sin componentes redundantes.

• Mas eficiente uso del silicio que Gate Arrays.

Page 73: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Structured ASIC• (2002) Cada vendedor tiene su

arquitectura.• Cada dispositivo está formado por

elemento básico llamado módulo (tiles) que contiene una mezcla de lógica prefabricada (multiplexores, puertas, lookup table) junto con uno o mas registros y posiblemente algo de RAM

• Un array (sea) de estos elementos se prefabrica sobre la superficie del chip. Además, en los bordes de este mar de “tiles” (tejas, baldosas, ladrillo) hay bloques de RAM, generadores de reloj, etc.

• Cada dispositivo se “particulariza” mediante niveles de metalización, aunque muchos de estos niveles ya están también predefinidos. Solo 2 o 3 niveles se deben aplicar. Reducción de costos.

• Consumen mas que un standard cell. Tambien ocupan mas. (dos o tres veces mas).

LUT

LUT

(a) Gate, mux, and flop-based (b) LUT and flop-based

Prefabricated I/O,cores, etc.

Embedded RAM

Sea-of-tiles

Generic structured ASIC

Structured ASIC tiles

Page 74: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

PLDs ASICs

Standard Cell

Full Custom

Gate Arrays

Structured ASICs*

SPLDs

CPLDs

*Not availab le circa early 1980s

TheGAP

• Hacia 1980, es evidente que hay un GAP entre el mundo de los IC.

• Por un lado, los dispositivos programables, muy sencillos pero muy configurables. Por el otro, los ASIC´s, soportando funciones complejas, pero muy caros, y muy costosos en tiempo de diseñar. Además, una vez el diseño estaba hecho, quedaba congelado en el silicio.

• Para salvar ese GAP, Xilinx lanza al mercado en 1984, una nueva clase de IC: FPGA.

FPGA

Page 75: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

3-inputLUT

abc

flip-flop

clock

muxy

qd

FPGA

• Basados en el concepto de bloque lógico programable, que contiene una LUT, un registro y un multiplexor.

• Cada FPGA contendrá un número grande de estos bloques.

• Utilizando SRAM todos los bloques se pueden programar para que realicen una función diferente.

Page 76: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

|

&ab

c y

y = (a & b) | !c

Required function Truth table

1011101

0000010100111001011101111

y

a b c y00001111

00110011

01010101

10111011

SRAM cells

Programmed LUT

8:1

Mul

tiple

xer

a b c

FPGA

Page 77: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Programmableinterconnect

Programmablelogic blocks

ASIC

FPGA

To other chipson the board

To other chipson the board

To other chipson the board

To other chipson the board

• Un FPGA está compuesto por un gran número de bloques lógicos “islas” rodeados por un “mar” de interconexiones programables.

• Además, suele haber interconexiones globales de alta velocidad que atraviesan todo el chip.

• Y, entradas/salidas.• Los FPGA son el puente

entre los ASIC´s y los PLD´s porque son altamente configurables, y, pueden ser utilizados para implementar funciones complejas.

• Pueden ser utilizados en diseños híbridos, junto con ASIc´s.

• Los FPGA son arquitecturas de grano medio porque utilizan bloques lógicos, a diferencia de los ASIC que son grano fino porque se programan a nivel de transistor

Page 78: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Consumo y RendimientoComparación entre procesadores y

ASIC´s• “Efficient Embedded Computing” .Artículo de Stanford

University, está en la página. Computer. Julio 2008• Algunos números interesantes de rendimiento:

– Dispositivos electrónicos (teléfonos celulares, cámaras de video y televisión digital) realizan más operaciones que la más rápida computadora, y con mucho menor consumo que una computadora personal.

– Ejemplo: 3G mobile phone receiver requiere 35 a 40 GOPS (Giga( mil millones) Operaciones por segundo) de rendimiento para soportar un canal de 14.4 Mbps (para un canal de 100Mbps (OFDM) requeririan entre 210 y 290 GOPS.

– En contraste, el rendimiento de pico de una computadora típica es de algunos GOPS, pero mantiene menos de un GOPs en la mayoría de las aplicaciones.

Page 79: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Consumo y rendimiento• Consumo:

– Eficiencia requerida para un embebido: 25pJ/op (para el receptor 3G)

• Un ASIC , diseñado cuidadosamente, puede conseguir una eficiencia de 5pJ/op en la tecnología CMOS de 90-nm.

• Un procesador embebido muy eficiente o un DSP requieren 250pJ/op

• Un laptop requiere 20nJ/op (4000 veces la de un ASIC)• Conclusión: las eficiencias de los procesadores

programables son inadecuadas para las aplicaciones embebidas, obligando a los ingenieros a usar hardware. (caro, muy caro!!! En dinero y en tiempo de desarrollo )

Page 80: Diseño de Sistemas con FPGA - Página Principal de Jhon ...jpadilla.docentes.upbbga.edu.co/FPGAs/1-Introduccion.pdf · ASIC (Application Specific IC) ... – Las instrucciones seleccionan

Referencias• BEE2: A High-End Reconfigurable Computing System

Chen Chang, John Wawrzynek, and Robert W. Brodersen. University of California, BerkeleyIEEE Design & Test of Computers, 0740-7475/05/$20.00 © 2005 IEEE

• “The Law of Accelerating Returns “ by  Ray Kurzweil• The Landscape of Parallel Computing Research: A

View from Berkeley. David Paterson et al.• http://www.embedded.com/1999/9905/9905turley.htm

. Embedded processors by the numbers. Jim Turley