Diseño de sistemas con FPGA

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

description

Introducción, arquitectura, modelado combinacional, secuenciales, picoblaze, pipeline y memorias embebidas.

Transcript of Diseño de sistemas con FPGA

  • Diseo de Sistemas con FPGAIntroduccin

    Patricia Borensztejnrevisado: septiembre 2009

  • Objetivo del curso

    Adquirir conocimientos elementales de la arquitectura de las FPGA actuales

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

  • Temario y Planificacin Introduccin. Tecnologas (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-

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

  • Bibliografa 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 (tecnologa) The Design Warriors Guide for FPGAs. Clive Maxfield

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

    aritmticos) Synthesis of Arithmetic Circuits. Deschamps, Gioul, and

    Sutter. (algoritmos y codificacin en VHDL para FPGA) Writing Testbenches: Functional Verification of HDL

    Models. Janick Bergeron. Kluwer Academic Publishers. Hojas de Datos. (de FPGAs) .. Y todo lo que ustedes encuentren en la web

  • Cuestiones Administrativas a acordar

    Usaremos 16 clases, terico-prcticas. Si por algn motivo de fuerza mayor

    tuviramos que suspender alguna clase, la reemplazaramos el da 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)

  • Introduccin: Que son las FPGA?

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

    venden?) Tecnologas de Programacin Origen de los FPGA: PLDs ASICs FPGA

  • 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 lgica 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 tecnologa de fabricacin de los ASIC (Application Specific Integrated Circuit)

    Programmableinterconnect

    Programmablelogic blocks

    FPGAFPGA ASICASIC

    ISPISP OTPOTP

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

    full custom) No estn diseados para una funcin especfica, 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 diseador de procesadores (Intel, por ejemplo), un full custom ASIC!!)

  • Microprocesadores, FPGA, ASICs

    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 ASICs, consumen mas energa.

    ASIC (Application Specific IC) Diseado para implementar una funcin lgica particular. Son

    hechos a medida. Son ms rpidos que los FPGA y manufacturados en gran

    escala son mas baratos. Consumen menos.

  • Microprocesadores y FPGA

    instrucciones

    memoriaCPU

    lgica

    bits de configuracin

    bits de configuracin

    lgica lgica

    bits de configuracin

    bits de configuracin

    lgica

    Configuracin FPGA: Bits permanecen en el

    dispositivo que programan Un bit de configuracin

    controla un switch o un bit de lgica

    Programacin CPU: Las instrucciones se

    obtienen de la memoria Las instrucciones

    seleccionan operaciones complejas

  • 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). Propsito General. En Sistemas Embebidos. Propsito

    Especfico. Ej. MP3, cmaras digitales enfin el 100% de la produccin de microprocesadores y microcontroladores.

  • 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 itor 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.

  • 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.

  • 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)

  • 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 lgica para unir (glue

    logic), lgica 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 diseos realizados antes mediantes ASICs (chips

    hechos a medida) Reemplazan a los microcontroladores embebidos en sistemas Explotacin del alto grado de paralelismo y reconfigurabilidad de

    los FPGA como aceleradores hardware de algoritmos software. Simulacion. Criptografa. Etc.

  • 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

  • Ley de Moore Moore di un discurso en el ao 1965,

    donde predijo que en el ao 1970 (cinco aos mas adelante) el costo por componente sera la dcima parte del actual costo.

    Y adems predijo que esa tendencia se mantendra por 10 aos.

  • 40 aos de Ley de Moore Una de las maneras en que se

    enunci la ley de Moore fu : El nmero de transistores en un circuito integrado se podr duplicar cada dos aos

    Este cuadro muestra el crecimiento exponencial de la integracin de transistores en un chip.

  • Es interesante tambin extrapolar hacia atrs

    podemos ver como la tecnologa hace que el poder de cmputo 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 estaramos obteniendo una curva sino una lnea recta en el cuadro de la derecha).Estn representadas 49 mquinas. Desde las primeras calculadoras electromecnicas que calcularon el censo de EEUU entre 1890 y 1899, la mquina de Robinson que craque el cdigo secreto de los nazis en 1940, la mquina CBS de tubos de vacio que predijo la eleccin de Eisenhower, las computadoras que se usaron en los primeros lanzamientos al espacio. Y. Aquellas en las que escribimos y mostramos esta transparencia.

  • Sin embargo Miremos este cuadro.

    Muestra que si tomamos como medida la densidad computacional que relaciona el nmero de operaciones por segundo, la frecuencia de operacin y el rea ocupada, vemos que sta ha ido descendiendo con los aos

    Esto muestra que los microprocesadores no estn 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 perodo 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, MarchApril 2005.

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

    tecnologa

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

    contine?)

    Si un solo procesador ya no puede ser capaz de obtener un aumento exponencial del rendimiento conforme la tecnologa avanza, entonces el aumento del rendimiento debe provenir de multiplicar los ncleos 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 computacin se vuelve paralela!

  • High Performance Computing En el mundo de las Supercomputadoras,

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

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

  • High End Reconfigurable Computing

    Son sistemas de super cmputo basados en FPGAs.

    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

  • Y bien, compiten entre s?

  • 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 algn mecanismo que nos permita programar o configurar un chip de silicio preconstruido.

    Vamos a ver entonces las tecnologas de fabricacin que nos van a permitir programar (configurar) estos dispositivos.

    Field Programmable Gate Array

  • Tecnologas de Programacin

  • 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 lgico 1.

    Los pull-up resistors mantienen dbilmente el valor lgico 1.

    Para realizar una funcin hay que buscar un mecanismo que permita establecer uno o mas links.

    Tecnologas de Programacin

  • aFat

    Logic 1

    y = 0 (N/A)&

    Faf

    bFbt

    Fbf

    Pull-up resistors

    NOT

    NOT

    AND

    Fuses

    Tecnologas de Programacin: (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 funcin valdr siempre 0.

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

  • aFat

    Logic 1

    y = a & !b&b

    Fbf

    Pull-up resistors

    NOT

    NOT

    AND Removiendo los fusibles sealados, la

    funcin implementada es y=a & !b Este proceso de remover los fusibles se

    llama programacin (tambin se llama blowing o burning)

    Los dispositivos son OTP, porque el fusible no puede recuperarse despus de haberse quemado.

    Tecnologas de Programacin: (1) Fusible Link

  • a

    Logic 1

    y = 1 (N/A)&b

    Pull-up resistors

    Unprogrammedantifuses

    NOT

    NOT

    AND

    Tecnologas de Programacin: (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.

  • a

    Logic 1

    y = !a & b&b

    Pull-up resistors

    Programmedantifuses

    NOT

    NOT

    AND

    Haciendo crecer los antifusibles sealados, la funcin programada es:

    !a & b

    Tecnologas de Programacin: (2) Antifuse

  • (a) Before programming

    Substra te

    Meta l

    Oxide

    Meta l

    Amorphous silicon co lumn

    (b) After programming

    Polysilicon via

    Tecnologas de Programacin: (2) Antifuse

    La columna de silicio acta como aislante entre las dos capas de metal, y tiene una resistencia muy alta (mas de un billn ohms)

    El acto de programacin hace crecer una va de polisilicio. Estos dispositivos son OTP.

  • Logic 1

    Pull-up resistor

    Row(word) line

    Column(data) line

    Mask-programmedconnection

    Transistor

    Logic 0

    Tecnologas de Programacin: ROM

    Consiste de array de filas (row) y columnas

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

    Cada interseccin fila/columna tiene un transistor y una conexin potencial

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

  • Logic 1

    Pull-up resistor

    Row(word) line

    Column(data) line

    Mask-programmedconnection

    Transistor

    Logic 0

    Tecnologas de Programacin: (3) Mediante Mscara (ROM)

    Se pre-construyen y, para adaptarlas a los requerimientos del cliente se utiliza una mscara fotogrfica para definir cuales celdas tendrn o no una conexin programada.

    Si la lnea de fila se activa, el transistor se activa y : Si hay conexin, en la

    columna aparece el valor lgico 0

    Si no hay conexin, en la columna sigue el valor 1del pullup.

    Celda de una memoria ROM

  • Logic 1

    Pull-up resistor

    Row(word) line

    Column(data) line

    Fusible link

    Transistor

    Logic 0

    Tecnologas de Programacin: (4) PROM

    Problema de los dispositivos programados con mscara: son caros! Se hacen en la fbrica y solo salen a cuenta si son muchisimos

    Programmable ROM (1970) estn basados en la tecnologa de fusible link.

    En su estado no programado, tal como se compra, todos los enlaces estn presentes. O sea, si la lnea se activa, la columna conduce 0.

    La programacin al remover los enlaces, hace que la celda almacene un 1.

    Celda de una memoria PROM

  • 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

    Tecnologas de Programacin: (5) EPROM

    Problema con las tecnologas basadas en fusible links y mscaras 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 operacin del transistor, y distinguiendo aquellas celdas que han sido programadas, de las que no lo han sido.

  • Logic 1

    Pull-up resistor

    Row(word) line

    Column(data) line

    EPROMTransistor

    Logic 0

    Tecnologas de Programacin: (5) EPROM

    En este caso, no es necesario el fusible.

    En su estado no programado, tal como se compra, todas las puertas flotantes estn descargadas. O sea, si la lnea se activa, se activa el transistor y la columna conduce 0.

    La programacin, al cargar la puerta flotante, inhibe la operacin del transistor, por lo tanto la columna conduce 1.

    Para descargar esa puerta, se utiliza radiacin ultravioleta.

    Para borrar la EPROM hay que quitarla del circuito.

    Problemas: mucho tiempo para ser borradas (20). Cuanta mas integracin, se necesita mas radiacin mas tiempo de exposicin.

  • E2PROM Cell

    NormalMOS transistor

    E2PROMtransistor

    Tecnologas de Programacin: (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 rpido que EPROM.

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

  • Tecnologas de Programacin: (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 estn cerrados y los datos se mantienen dentro del latch.

    Consumen mucha rea Pierden la informacin cuando dejan

    de ser alimentados. Pueden ser reprogramados

    rpidamente y repetidamente.SRAM

  • Tecnologas de Programacin: (8) .

    La tecnologa avanza proximamente. MRAM. (magnetic RAM) quien sabe

  • 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

    Tecnologas de Programacin

  • Tecnologas de Programacin

    State-of-the-art

    Feature

    Technology node

    SRAM Antifuse E2PROM /FLASHOne or more

    generations behindOne or more

    generations 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)

  • Origen de los FPGAsTecnologas relacionadas

    Tecnologas 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: PLDs : SPLDs a

    principios de los 70, CPLDs a fines de los 70 ASICs FPGA

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

    FPGAs

    ASICs

    CPLDs

    SPLDs

    Microprocessors

    SRAMs & DRAMs

    ICs (General)

    Transistors

    Tecnologas Vivas

  • PLDs

    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 lgicas funciones simples

  • PLDs

    SPLDs CPLDs

    PLAsPROMs PALs GALs etc.

  • 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 programacin se puede realizar con cualquiera de las tecnologas vistas (fusibles, EPROM, EEPROM).

    Solo es configurable la matriz OR.

    tiles para ecuaciones con pocas entradas y muchos trminos producto.

  • Implementacin de una funcin lgica 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^

  • 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

    Implementacin con PROM

  • 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 trminos

    producto. Son mas lentas que las PROMS

  • 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)

    Implementacin con PLA

  • 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 revs 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: inversin de las salidas, salidas triestado, salidas registradas, etc. Adems de tener un nmero mas grande de entradas y salidas.

  • ProgrammableInterconnect

    matrix

    Input/output pinsSPLD-like

    blocks

    CPLDs (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. Consuma mucho.

    1984: Altera (nueva empresa) introduce el CPLD basado en tecnologa CMOS y EPROM.

    Las conexiones entre los bloques se programan mediante la matriz de interconexin.

  • Proceso de Diseo Como se diseaba un circuito

    usando PLDs?Se realizaba un esquemtico o bien

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

    El esquemtico se converta del papel a una tabla (con un formato especial, requerido por el dispositivo programador). Esta tabla indicaba que conexiones se deban programar. La tabla se tipeaba en un computadora y se bajaba luego al dispositivo programador.

    Cada vendedor de PLDs, obviamente, haba desarrollado su propio formato para el archivo, que solo serva para sus dispositivos.

    (a) Host computer (b) Device programmer

    Unprogrammeddevice

    Programmeddevice

  • Ensambladores y Herramientas de Diseo

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

    John Birkner, creador de las PAL, crea PALASM el primer ensamblador para PAL. Es un primitivo HDL (Hardware Description Languaje) y adems una aplicacin software. Es usado para trasladar expresiones booleanas y grafos de estados a una tabla para PAL. PALASM solo es para PALs 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 PLDs 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 ASICs y FPGA.

  • PALASM

  • 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 seales mostrar el simulador. SETF define el valor de las variables en cada simulacin.

  • 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.

  • Esquema de la PAL

  • 24-Pin Small PAL Family

    PAL 20 L 8

  • PALASM: archivo .xpt Despus de creado el

    archivo extensin .pds se ensambla. El ensambaldor genera dos archivos:

    .xpt: contiene el fuse map

    .trf es el archivo para simulacin

    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 funcin \x (sus tminos producto y su habilitacin)

    Filas 8 y 9 corresponden a la funcin Z. Sus trminos producto y su habilitacin.

    Fijense que cada OR puede admitir hasta 7 trminos producto (pues uno de ellos se reserva para la habilitacin)

  • PALASM: archivo .xpt Interpretacin de los trminos producto.

    La funcin 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 funcin Z=/A*B + A*B + A*/B + /A*/B*CEs idntica 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 expresin Z=A + B + C/Z= ??????? (aqu se aplica Morgan)

  • PALASM: archivo .trf (simulacin)

  • ASIC Application Specific IC

    Diseado para una funcin especfica. Contienen cientos de millones de puertas

    lgicas y pueden ser usados para crear funciones complejas.

    El proceso de diseo y construccin de un ASIC es largo y caro, y finaliza en su realizacin en silicio.

    No puede ser usado ni testeado antes de su fabricacin.

  • Fabricacin 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 mscara.

    Algunas de las capas o niveles forman transistores, otras los planos de conexin.

    Un aspecto importante de un IC es el tamao del mas pequeo 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 contina mejorando,

    o sea haciendose mas pequeo. The state-of-art process approaches less than

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

  • ASICs

    ASIC: Es un chip (circuito integrado, IC) diseado para una determinada aplicacin y para una determinada compaa.

    Full custom: hecho enteramente por encargo (a medida): desde componentes pequeos, a microprocesadores diseados y fabricados para una compaa especfica.

    ASICs

    StructuredASICs

    GateArrays

    StandardCell

    FullCustom

    Increasing complexity

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

    una de las mscaras usadas para fabricar el chip. El vendedor del ASIC no prefabrica ningn componente

    en el silicio y no provee ninguna librera 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 diseadas por ellos.

    El proceso es altamente complejo, y consume mucho tiempo, pero el chip resultante contiene la mxima cantidad de lgica con el mnimo desperdicio de silicio.

  • (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 bsicas formadas por transistores y resistencias sin conexin.

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

    Los fabricantes definen una librera funciones lgicas (puertas primitivas, multiplexores, y registros) que son los que usan los ingenieros de la aplicacin.

    Los ingenieros disean hasta llegar a nivel de netlist. Luego se hace el mapeo, ubicacin y routing con las herramientas provistas por el fabricante.

    El resultado de este proceso son las mscaras con las cuales se crean los niveles de metalizacin que unirn las celdas bsicas entre s, as como los componentes dentro de las celdas bsicas.

  • Schematic. Gate Level. Netlist. Gate Level: el diseo se

    representa como una coleccin de puertas lgicas 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 diseo debe describirse de forma textual (archivos de texto)

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

    de bloques bsicos (multiplexores, registros, puertas, etc) que ofrece al ingeniero en forma de libreras.

    Tambin ofrece libreras que pueden incluir microprocesadores, elementos de comunicacin, funciones de ROM y RAM.

    Adems 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 diseo hasta

    llegar a nivel de netlist, que describe las puertas lgicas que usarn y sus conexiones. Las herramientas de diseo son, incluso hoy, muy sofisticadas)

    La diferencia con las Gate Arrays es que no hay nada prefabricado. Cada funcin se crea con el mnimo nmero de transistores necesarios, sin componentes redundantes.

    Mas eficiente uso del silicio que Gate Arrays.

  • Structured ASIC (2002) Cada vendedor tiene su

    arquitectura. Cada dispositivo est formado por

    elemento bsico llamado mdulo (tiles) que contiene una mezcla de lgica 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. Adems, 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 metalizacin, aunque muchos de estos niveles ya estn tambin predefinidos. Solo 2 o 3 niveles se deben aplicar. Reduccin 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

  • 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 ASICs, soportando funciones complejas, pero muy caros, y muy costosos en tiempo de disear. Adems, una vez el diseo estaba hecho, quedaba congelado en el silicio.

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

    FPGA

  • 3-inputLUT

    abc

    flip-flop

    clock

    muxy

    qd

    FPGA

    Basados en el concepto de bloque lgico programable, que contiene una LUT, un registro y un multiplexor.

    Cada FPGA contendr un nmero grande de estos bloques.

    Utilizando SRAM todos los bloques se pueden programar para que realicen una funcin diferente.

  • |

    &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

  • 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 nmero de bloques lgicos islas rodeados por un mar de interconexiones programables.

    Adems, suele haber interconexiones globales de alta velocidad que atraviesan todo el chip.

    Y, entradas/salidas. Los FPGA son el puente

    entre los ASICs y los PLDs porque son altamente configurables, y, pueden ser utilizados para implementar funciones complejas.

    Pueden ser utilizados en diseos hbridos, junto con ASIcs.

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

  • Consumo y RendimientoComparacin entre procesadores y

    ASICs Efficient Embedded Computing .Artculo de Stanford

    University, est en la pgina. Computer. Julio 2008 Algunos nmeros interesantes de rendimiento:

    Dispositivos electrnicos (telfonos celulares, cmaras de video y televisin digital) realizan ms operaciones que la ms rpida 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 tpica es de algunos GOPS, pero mantiene menos de un GOPs en la mayora de las aplicaciones.

  • Consumo y rendimiento Consumo:

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

    Un ASIC , diseado cuidadosamente, puede conseguir una eficiencia de 5pJ/op en la tecnologa 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) Conclusin: 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 )

  • 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