Capitulo 02 Introduccion Logica Programada 2de3

83
EE-636-M Ing. MSc. Aurelio Morales V. 1 de 83 SISTEMAS DIGITALES II SISTEMAS DIGITALES II Capítulo II Capítulo II Introducción a la Lógica Programada Introducción a la Lógica Programada Parte II Parte II Ing. MSc. Aurelio Morales Villanueva Ing. MSc. Aurelio Morales Villanueva Facultad de Ingeniería Eléctrica y Electrónica Facultad de Ingeniería Eléctrica y Electrónica Universidad Nacional de Ingeniería Universidad Nacional de Ingeniería http://fiee.uni.edu.pe http://fiee.uni.edu.pe

description

logica programada

Transcript of Capitulo 02 Introduccion Logica Programada 2de3

  • EE-636-M Ing. MSc. Aurelio Morales V. 1 de 83

    SISTEMAS DIGITALES IISISTEMAS DIGITALES II

    Captulo II Captulo II

    Introduccin a la Lgica ProgramadaIntroduccin a la Lgica ProgramadaParte IIParte II

    Ing. MSc. Aurelio Morales VillanuevaIng. MSc. Aurelio Morales Villanueva

    Facultad de Ingeniera Elctrica y ElectrnicaFacultad de Ingeniera Elctrica y ElectrnicaUniversidad Nacional de IngenieraUniversidad Nacional de Ingeniera

    http://fiee.uni.edu.pehttp://fiee.uni.edu.pe

  • EE-636-M Ing. MSc. Aurelio Morales V. 2 de 83

    AgendaAgenda

    IntroduccinIntroduccin Tcnicas de Diseo LgicoTcnicas de Diseo Lgico

    Alternativas para sntesis de funciones lgicasAlternativas para sntesis de funciones lgicas Soluciones UniversalesSoluciones Universales Arquitecturas de Tecnologa FPLArquitecturas de Tecnologa FPL Granularidad de celdasGranularidad de celdas Medios de interconexinMedios de interconexin

  • EE-636-M Ing. MSc. Aurelio Morales V. 3 de 83

    IntroduccinIntroduccin

    La realidad del diseo lgico actual Complejidad creciente TTM: Time to Market Bsqueda de costos cada vez menores

    Las exigencias que plantea: Confiabilidad Testeabilidad

    Las metas: Contar con una solucin de uso universal

  • EE-636-M Ing. MSc. Aurelio Morales V. 4 de 83

    Las exigencias del mercadoLas exigencias del mercado

    Tiempos de desarrollo cada vez ms cortos (TTM: Time To Market)

    Especificaciones variables o an indefinidas en el momento del desarrollo

    Necesidad de adaptabilidad a nuevas exigencias o especificaciones

  • EE-636-M Ing. MSc. Aurelio Morales V. 5 de 83

    Breve anlisis de costosBreve anlisis de costos

    El costo de un producto surge del costo total dividido el volumen vendido

    El costo total se compone de un costo fijo ms un costo variable que es funcin del volumen vendido

    La opcin ms conveniente surge de comparar las curvas de costo para distintas soluciones y distintos volmenes de ventas

    Esta comparacin usa previsiones de ventas.

  • EE-636-M Ing. MSc. Aurelio Morales V. 6 de 83

    Los costos fijosLos costos fijos

    Aprendizaje de la tecnologa Herramientas de diseo Ingeniera de diseo Costo de introduccin comercial del

    producto Costos no repetitivos propios de cada

    diseo Costos de iteracin Costo de oportunidad

  • EE-636-M Ing. MSc. Aurelio Morales V. 7 de 83

    El costo de oportunidadEl costo de oportunidad

    El mercado tiene una capacidad de compra limitada. Quien primero entra al mercado obtiene ventajas

    comerciales: Mayores beneficios econmicos iniciales. Mayor insercin en el mercado a la hora de competir. Permite definir standards propios.

  • EE-636-M Ing. MSc. Aurelio Morales V. 8 de 83

    Costos variables proporcionales al Costos variables proporcionales al volumen vendidovolumen vendido

    Precio del componente Tamao del chip Precisin: resolucin litogrfica Costo segn la madurez de la tecnologa Material base: rendimiento, nivel de fallas Procesos: inyeccin de iones, ajuste lser Capas de metalizacin, encapsulado

    Gastos de comercializacin Volumen contratado

  • EE-636-M Ing. MSc. Aurelio Morales V. 9 de 83

    Beneficios de una solucin universalBeneficios de una solucin universal

    Fcil adaptabilidad a cambios de diseo Aumento de la vida comercial til del producto

    Mayor desempeo Ms rpido, ms pequeo, ms confiable, ms fcil de armar

    Mejora en cuanto al aprovechamiento de los recursos de ingeniera Menor costo de desarrollo (TTM!)

    Disminucin de costos de stock Necesidad de menor stock de productos (menor cantidad y

    menor variedad) Menor costo administrativo por la reduccin del Stock y la

    menor cantidad de proveedores con los que coordinar Disminucin de tiempos muertos

  • EE-636-M Ing. MSc. Aurelio Morales V. 10 de 83

    Alternativas para sntesis de funciones lgicasAlternativas para sntesis de funciones lgicas

    Lgica convencional Soluciones mediante multiplexores y

    decodificadores Soluciones programables:

    La suma de trminos productos Tablas de lookup Lgica basada en multiplexores

  • EE-636-M Ing. MSc. Aurelio Morales V. 11 de 83

    Primera Idea: Solucin algebricaPrimera Idea: Solucin algebrica

    Simplificacin algebraica de una funcin lgica

    P.ej: F(A,B,C) = A./B.C + A.B + /A.C

    Mediante pasos algebraicos se transforma en:

    Con lo que el hardware realizadoen forma literal queda

    F(A,B,C) = A.B + CABC

    F

    AB

    C

    FY si se lo resuelve mediante unnico tipo de compuerta

  • EE-636-M Ing. MSc. Aurelio Morales V. 12 de 83

    Primera Idea: Solucin algebrica (cont.)Primera Idea: Solucin algebrica (cont.)

    Ventajas Puede obtenerse una excelente solucin en

    cuanto a la cantidad de compuertas lgicas usadas (aunque no necesariamente la mejor si se mide la cantidad de chips, o la velocidad de operacin del diseo)

    Desventajas La solucin obtenida es totalmente rgida, y el

    menor cambio puede significar un rediseo total. Obliga a mantener un amplio repertorio de

    componentes en stock.

  • EE-636-M Ing. MSc. Aurelio Morales V. 13 de 83

    Solucin mediante multiplexoresSolucin mediante multiplexores

    Cul es la ecuacin lgica que define la operacin de un multiplexor? (p.ejm.: un mux 8:1)

    S = I0./A./B./C + I1./A./B.C + I2./A.B./C + I3./A.B.C + I4.A./B./C + I5.A./B.C + I6.A.B./C + I7.A.B.C

    I0I1I2I3I4I5I6I7

    000001010011100101110111

    ABC

    S

    lneas deseleccin

  • EE-636-M Ing. MSc. Aurelio Morales V. 14 de 83

    Solucin mediante multiplexores (cont.)Solucin mediante multiplexores (cont.)

    Sntesis mediante multiplexor de una funcin lgica

    lneas de seleccin(ahora las variables de la funcin)

    AB,C

    00 01 11 10

    0

    1

    I0 I1 I3 I2

    I4 I5 I7 I6

    S0

    1

    I0I1I2I3I4I5I6I7

    000001010011100101110111A(msb)BC(lsb)

    01

  • EE-636-M Ing. MSc. Aurelio Morales V. 15 de 83

    Solucin mediante multiplexores (cont.)Solucin mediante multiplexores (cont.)

    El caso de un multiplexer con n entradas de control para sintetizar una funcin de n+1 variables

    I0I1I2I3I4I5I6I7

    S

    000001010011100101110111

    0 1

    A(msb)BC(lsb)

    ABC

    D

    D /D

    las cuatro conectividadesde una variable D

    A,B 00 01 11 10

    00

    01

    11

    10

    C,D

    0 0 1 10 1 0 10 0 1 01 0 1 0

  • EE-636-M Ing. MSc. Aurelio Morales V. 16 de 83

    Solucin mediante multiplexores (cont.)Solucin mediante multiplexores (cont.)

    El multiplexor como herramienta lgica de uso universal

    Conclusiones: Un multiplexor con n entradas de control garantiza poder

    sintetizar CUALQUIER funcin lgica de n variables. Un multiplexor con n entradas de control permite

    particionar una funcin de m variables (donde m>n) en 2^n funciones de (m-n) variables.

    Se garantiza un retardo mximo de 4 compuertas.

    Nota: recordar que una funcin de X variables tiene 2^(2^X) conectividades!

  • EE-636-M Ing. MSc. Aurelio Morales V. 17 de 83

    Solucin mediante multiplexores (cont.)Solucin mediante multiplexores (cont.)

    Lgica mediante multiplexores El multiplexor y el negador son dispositivos muy fciles de realizar en tecnologa CMOS

    Un nico MUX 2:1 permite la sntesis de ocho posibles funciones no obvias de dos variables A y B, adems de las obvias 1 y 0:

    NOT A y NOT B (/A y /B)

    BUF A y BUF B A or B y A and B A and /B /A and B

    A0 A1 S Funcin0 0 0 0B 0 A /A and B0 1 A NOT AA 0 B A and /B0 1 B NOT B0 B 1 BUF (B)0 B A A and B0 A 1 BUF (A)B 1 A A or B1 1 1 1

    A1

    A0

    S

    0

    1

    F

  • EE-636-M Ing. MSc. Aurelio Morales V. 18 de 83

    Solucin mediante decodificadoresSolucin mediante decodificadores Cmo usar un decodificador para la sntesis de una

    funcin cualquiera F(A,B,C)?

    AB,C

    00 01 11 1001

    0 0 1 1

    1 1 0 1

    ABC

    000001010011100101110111

    VCC

    F

  • EE-636-M Ing. MSc. Aurelio Morales V. 19 de 83

    Uso de multiplexores y decodificadoresUso de multiplexores y decodificadores

    Conclusiones: El multiplexor es la solucin ms simple para

    generar una nica funcin cualquiera de las variables de seleccin, pues slo basta con poner sus entradas a 0 o a 1, segn corresponda.

    Un multiplexor con n entradas de control permite particionar una funcin compleja de muchas variables en 2^n funciones ms simples de nmenos variables.

    El decodificador requiere ms elementos externos, pero nos permite sintetizar varias funciones independientes de las entradas comunes de control.

  • EE-636-M Ing. MSc. Aurelio Morales V. 20 de 83

    Otra solucin universal: Memorias ROMOtra solucin universal: Memorias ROM Creacin de una ROM programable de 64 bits en base a

    multiplexores y decodificadores:

    Multiplexor 8:1

    Decodificador3:8

    ABC

    DEF

    +VCC

    fusible

    Salida

    EntradasA,B,C,D,E,F

    f (A,B,C,D,E,F)

  • EE-636-M Ing. MSc. Aurelio Morales V. 21 de 83

    Solucin por suma de trminos productoSolucin por suma de trminos producto

    Las soluciones tipo MUX y ROM se basan en la suma de trminos normalizados (minitrminos) y no intentan ningn tipo de minimizacin

    El uso de trminos no normalizados de mayor orden, obtenidos por procesos de minimizacin y agrupamiento, puede ofrecer soluciones mas eficientes

    Este criterio lleva a la creacin de las PAL

  • EE-636-M Ing. MSc. Aurelio Morales V. 22 de 83

    PAL PAL Programmable Array LogicProgrammable Array Logic

    Objetivo: optimizar el uso del dispositivo

    Cantidad de trminos producto usados Las soluciones basadas en muxs, decoders, ROMs

    y LUTs usan la expresin cannica de una funcin (suma de minitrminos) y no intentan ningn tipo de minimizacin (bsqueda de implicantes primos esenciales)

    El anlisis estadstico de una enorme cantidad de funciones de mediana complejidad (5 a 15 variables de entrada) muestra que casi todas ellas pueden ser sintetizadas mediante slo 5 a 7 implicantes de orden superior.

  • EE-636-M Ing. MSc. Aurelio Morales V. 23 de 83

    PAL PAL -- Suma de productosSuma de productos

    Suma de hasta 7trminos producto

    Un trmino productopara control de Tri-State

    Lneas especficas de entrada Feedback desde una entrada/salida

    Matriz de fusibles de interconexin

    Se cuenta a lo largo de TODO EL CHIP con los literales de todas las variables de entrada (la variable y la variable negada).

    Mediante lgica cableada es posible generar trminos producto (AND) de la cantidad de literales que se desee.

    Para generar la funcin slo es posible sumar (OR) hasta 7 u 8 trminos producto.

  • EE-636-M Ing. MSc. Aurelio Morales V. 24 de 83

    PAL PAL -- Suma de productosSuma de productos

    Cada trmino producto puede ser generado a partir de la interseccin de un numero elevado de variables.

    Es de suma utilidad en el caso de funciones de gran fan-in.

    La cantidad de trminos productos que es posible sumar est usualmente acotado entre seis y ocho.

    Cada trmino producto ocupa gran superficie del chip e involucra un elevado nmero de fusibles.

  • EE-636-M Ing. MSc. Aurelio Morales V. 25 de 83

    PAL PAL -- EjemploEjemplo

    .................................................

    Una seal global decontrol de TriState

    Salidas delos registrosTri-State

    Feedback desdelos registros !

    Un nico clock global

    Entradas dedicadas

    Matriz de interconexin global

    Incorporacin de elementos de memoria (16R8) Ideal para la sntesis de mquinas secuenciales!

  • EE-636-M Ing. MSc. Aurelio Morales V. 26 de 83

    PAL PAL -- MacroceldaMacrocelda Macrocelda de una PAL simple moderna (Classic EP610)

    Suma de productos

    Opcin OE/ClkClockGlobal

    Pinde I/O

    Opcin:macroceldacon salida por Registro oCombinatoria

    Opcin: Realimentacin desdela macrocelda o de pin

    Clear asincrnicoRealimentacin desdepines y macroceldas

    Matriz de realimentacin

    Control deinversin

  • EE-636-M Ing. MSc. Aurelio Morales V. 27 de 83

    Tablas de LookTablas de Look--Up (LUT)Up (LUT)

    Lneas de operacin

    Salida serie haciael Shift-Register siguiente

    Entrada de datos deconfiguracin desdeel Shift Register previo

    n variables lgicas

    Salida dela funcin

    Clock deconfiguracin

    lneas de configuracin

    Shift-RegisterEntrada serie ysalida paralela

    Multiplexer 2^n:1

    SI SO

    rea de

    configuraci

    n

    rea de

    operacin

    Balance:3 variables -> 8 flipflops

  • EE-636-M Ing. MSc. Aurelio Morales V. 28 de 83

    Tablas de LookTablas de Look--Up (LUT)Up (LUT)

    Si se recuerda la solucin basada en ROMs, dado que la memoria de configuracin tiene tantos bits como minitrminos existen, es posible generar cualquier funcin de las variables de entrada, sin restricciones.

    Dado que para almacenar la tabla se usan elementos de memoria, es usual que una LUT pueda ser usada como memoria RAM.

    La cantidad de bits de memoria requeridos crece en forma exponencial con el nmero de variables de entrada, por que las LUTs suelen ser de entre 4 y 5 variables (16 a 32 bits de memoria).

  • EE-636-M Ing. MSc. Aurelio Morales V. 29 de 83

    Solucin mediante tablas de LookSolucin mediante tablas de Look--UpUp

    Una elaboracin ms potente del diseo del multiplexor permite particionarlo segn las necesidades. Tomar por ejemplo, con 2^n bits de lookup es posible: Generar una funcin

    cualquiera de n variables Generar dos funciones de

    (n-1) variables Generar 2^m funciones de

    (n-m) variables

    F(a,b,c)

    a b c

    G0(a,b)

    G1(a,b)

    H0(a)

    H1(a)

    H2(a)

    H3(a)

    Ejemplo: con n==3 (8 bits de look-up) se pueden generar:- una funcin F de tres variables a,b,c- dos funciones G0..1 de dos variables a,b- cuatro funciones H0..3 de una variable a

    b0b1b2b3b4b5b6b7

  • EE-636-M Ing. MSc. Aurelio Morales V. 30 de 83

    Solucin mediante tablas de LookSolucin mediante tablas de Look--Up (cont.)Up (cont.)

    Ejemplo:Ejemplo:Funcin de 1 variable

    Ejemplo:Ejemplo:Funcin de 2 variables

  • EE-636-M Ing. MSc. Aurelio Morales V. 31 de 83

    Solucin mediante tablas de LookSolucin mediante tablas de Look--Up (cont.)Up (cont.)

    Incluyendo un Flip-Flop al LUT

    Para la programacin de las celdas LUT, as como tambin la asignacin de las entradas y salidas, existen varios mtodos, los dos ms representativos son la tecnologa Antifuse propuesta por la empresa ACTEL, y la tecnologa SRAM utilizada por la mayora de las otras empresas (XILINX, ALTERA, ATMEL etc.).

    LUT de 3 entradas

  • EE-636-M Ing. MSc. Aurelio Morales V. 32 de 83

    Arquitecturas de Tecnologa FPLArquitecturas de Tecnologa FPL

    FPL = Field Programmable Logic

    ELEMENTOS BSICOS Las celdas lgicas Las celdas de entrada y

    salida Los recursos de

    interconexin

  • EE-636-M Ing. MSc. Aurelio Morales V. 33 de 83

    Elementos bsicos de conexinElementos bsicos de conexin

    antifuses: dispositivos normalmente abiertos que una vez programados pasan a ser un cortocircuito, en un proceso irreversible

    switches EPROM/EEPROM: dispositivos de paso reprogramables, cuyo estado no se altera al cortarse la alimentacin de energa

    llaves SRAM: basados en llaves de paso MOS controladas desde un flipflop esttico, cuyo contenido se borra al cortarse la energa

  • EE-636-M Ing. MSc. Aurelio Morales V. 34 de 83

    Los antifusiblesLos antifusibles

    Puntos de paso normalmente abiertos que pasan a conduccin irreversible mediante la circulacin de una corriente de programacin

    Por contacto entre capas de Silicio por fusin de un separador dielctrico (Actel PLICE)

    Por contacto metlico entre lneas metlicas por fusin de Si amorfo (Quick Logic Via Link)

  • EE-636-M Ing. MSc. Aurelio Morales V. 35 de 83

    Ventajas y desventajas de los antifusiblesVentajas y desventajas de los antifusibles

    Ventajas: altsima densidad de integracin

    Desventajas: irreversibilidad, y por ello imposibilidad de test exhaustivo en

    fbrica. degeneracin de la seal por agregado de resistencias y

    capacidades parsitas. requieren ocupar rea de silicio y capas de metalizacin para

    circuitos especiales de programacin con circulacin de corrientes relativamente importantes.

    la fabricacin de antifusibles requiere procesos especiales.

  • EE-636-M Ing. MSc. Aurelio Morales V. 36 de 83

    Los fusibles EPROM/EEPROMLos fusibles EPROM/EEPROM

    Ventajas: muy alta densidad de integracin. posibilidad de test exhaustivo en fbrica. en ciertos casos, ofrecen programacin en el circuito.

    Desventajas: requieren dedicar rea de silicio y de metalizacin para

    circuitos especiales de programacin con la aplicacin de voltajes relativamente elevados.

    el uso de tecnologas EPROM/EEPROM requiere de procesos especiales.

  • EE-636-M Ing. MSc. Aurelio Morales V. 37 de 83

    Las llaves SRAMLas llaves SRAM

    Basadas en flip-flop estticos que controlan a: Llaves CMOS que operan como llaves de paso

    (Transmission Gates) Bancos de memoria RAM para resolver lgica

    mediante tablas de bsqueda (LUTs o LookUp Tables)

    Configuradas en forma serie al conectarse la alimentacin de energa al dispositivo, pierden su configuracin al cortarse la energa.

  • EE-636-M Ing. MSc. Aurelio Morales V. 38 de 83

    Solucin basada en llaves SRAMSolucin basada en llaves SRAM

    Ventajas: el uso de SRAM no requiere procesos especiales. posibilidad de test exhaustivo en fbrica. programacin en el circuito, con la posibilidad de

    reconfiguracin dinmica.

    Desventajas: media a baja densidad de integracin. Cada llave

    SRAM implica el uso de seis o ms transistores. circuitos especiales de carga de la informacin de

    configuracin (usualmente aprovechada para tareas JTAG).

  • EE-636-M Ing. MSc. Aurelio Morales V. 39 de 83

    La reconfiguracinLa reconfiguracin

    La reconfiguracin es el proceso de alterar la programacin del dispositivo.

    Es un proceso de software que permite redefinir el comportamiento de hardware del dispositivo.

    Puede ser usado solo como proceso de arranque, o para el mantenimiento/upgrade del hardware.

    Permite aumentar la vida til de un producto, y con ello el volumen vendido acumulado, permitiendo disminuir la influencia de los costos fijos.

  • EE-636-M Ing. MSc. Aurelio Morales V. 40 de 83

    El caso ISPEl caso ISP

    ISP por In System Programming. Aprovecha ciertas patas asignadas a la interfase

    JTAG (standard IEEE 1149.1), que sirve a su vez para el test del dispositivo. Esta interfase JTAG puede ser usada para otras funciones, como BST (Boundary Scan Testing).

    Permite la programacin de dispositivos EEPROM ya instalados y soldados en el equipo definitivo.

    Se encuentra en las familias MAX7000S y MAX9000 de ALTERA.

  • EE-636-M Ing. MSc. Aurelio Morales V. 41 de 83

    El caso ICREl caso ICR

    ICR por In Circuit Reconfiguration Propia de todos los dispositivos FPL basados en

    SRAM. Puede ser realizada en modo activo por el propio

    dispositivo, leyendo datos de una memoria externa. O en modo pasivo, por un procesador externo. Usualmente el dispositivo puede estar en dos

    posibles estados: en configuracin o en operacin.

    Pero ciertos dispositivos (Ej: XILINX XC6200) permiten que una parte del chip opere mientras otra parte est siendo reconfigurada.

  • EE-636-M Ing. MSc. Aurelio Morales V. 42 de 83

    Innovacin: Reconfiguracin dinmica parcialInnovacin: Reconfiguracin dinmica parcial

    La reconfiguracin dinmica es un tema an en debate a nivel acadmico.

    Permitira la generacin de lgica evolutiva. Recientes trabajos tericos para el

    apropiado control de este proceso. An no es clara la relacin costo/beneficio

    eventualmente lograda.

  • EE-636-M Ing. MSc. Aurelio Morales V. 43 de 83

    Las celdas lgicas: Concepto de granularidadLas celdas lgicas: Concepto de granularidady jerarquas de conectividady jerarquas de conectividad

    Una celda lgica es un bloque funcional capaz de resolver una funcin combinatoria o secuencial.

    Una celda que por s sola puede llegar a resolver una funcin compleja (4 o ms variables de entrada) genera circuitos de baja granularidad (lgica de grano grueso).

    Una celda capaz de resolver nicamente funciones elementales de 2 o 3 variables (a veces slo combinatorias) es llamada de grano fino.

  • EE-636-M Ing. MSc. Aurelio Morales V. 44 de 83

    Las celdas lgicas: Concepto de granularidadLas celdas lgicas: Concepto de granularidady jerarquas de conectividad (cont.)y jerarquas de conectividad (cont.)

    Cuanto ms compleja es una celda, mayor es la posibilidad de su subempleo. Sin embargo, en este caso la mayor parte del problema es resuelta dentro de la celda, y por ello se requieren menos recursos de interconexin con otras celdas.

    Cuanto ms simples son las celdas, ms se requieren para resolver un dado problema, pero son usadas plenamente (el subempleo de celdas es menor). En contraparte, la necesidad de mltiples vnculos entre celdas requiere de poderosos recursos de interconexin.

  • EE-636-M Ing. MSc. Aurelio Morales V. 45 de 83

    Las celdas lgicas: Concepto de granularidadLas celdas lgicas: Concepto de granularidady jerarquas de conectividad (cont.)y jerarquas de conectividad (cont.)

    La conectividad entre celdas requiere el uso de vnculos que ocupan rea del chip.

    Cuanto ms larga es una conexin, mayor es su inductancia, su resistencia y su capacidad parsita, y con ello los retardos de propagacin que introduce.

    Una conexin corta, en contrapartida obliga a que las dos celdas que ella conecta estn fsicamente prximas entre s dentro del chip.

    Todos los fabricantes ofrecen por ello jerarquas de conectividad, de distinto alcance.

  • EE-636-M Ing. MSc. Aurelio Morales V. 46 de 83

    Lgica de grano grueso: Xilinx XC4000Lgica de grano grueso: Xilinx XC4000

    Basada en celdas complejas que hacen uso de tablas de LookUp, con tecnologa SRAM.

    Cada bloque lgico (CLB) resuelve 2 funciones lgicas F y G, combinatoria o secuencial, de hasta 4 variables independientes, o una funcin lgica combinada (H) de 5 variables.

    Con 2 flip-flops para la sntesis de mquinas secuenciales.

    Cada CLB puede ser usado como una RAM de 32 bits.

    Con caminos especiales de propagacin a celdas vecinas para la rpida propagacin interceldas(carry).

  • EE-636-M Ing. MSc. Aurelio Morales V. 47 de 83

    Bloques lgicos en serie XC4000 (CLB)Bloques lgicos en serie XC4000 (CLB)

    D QSD

    RDEC

    S/RControl

    D QSD

    RDEC

    S/RControl

    1

    1

    HFunc.Gen.

    GFunc.Gen.

    FFunc.Gen.

    F'H'

    G4G3G2G1

    F4F3F2F1

    C4C1 C2 C3

    K

    YQ

    Y

    XQ

    X

    H1 DIN S/R EC

    DinFGH

    GH

    DinFGH

    3 generadores de funcin F, G y H

    entradas al CLB: F1-F4 al generador F G1-G4 al generador G H1 (& F, G) al

    generador H 4 salidas del CLB

    F, G, o H, y a travs de los registros

  • EE-636-M Ing. MSc. Aurelio Morales V. 48 de 83

    Lgica de grano grueso: Familia MAX de AlteraLgica de grano grueso: Familia MAX de Altera

    Basada en suma de trminos producto. Con dispositivos de memoria para la realizacin de

    circuitos secuenciales, y recursos para optimizar el uso de los trminos producto sobrantes (expansoresparalelos o compartidos).

    Con algoritmos de sntesis que emplean una XOR comandada por un trmino producto para funciones combinatorias complejas.

    Con posibilidad de sintesis simultnea de una funcin combinatoria compleja ms una secuencial simple en una nica celda (register packing, en las MAX9000).

  • EE-636-M Ing. MSc. Aurelio Morales V. 49 de 83

    Lgica de grano grueso: MAX7000 de AlteraLgica de grano grueso: MAX7000 de Altera

    QDPRN

    CLRNENA

    LAB Local ArrayGlobal Clear

    Global Clock

    Shared Logic Expanders

    Clock

    Clear Select

    Parallel Expanders

    to PIA andI/O Contol BlockProduct-

    Term Select Matrix

    from I/O Pin(E and S versions only)

    from PIA

  • EE-636-M Ing. MSc. Aurelio Morales V. 50 de 83

    Lgica de grano medio: FLEX 10K de AlteraLgica de grano medio: FLEX 10K de Altera

    Usa tecnologa SRAM y Tablas de LookUp. Cada LUT permite resolver una funcin de hasta 4

    variables. Con un flipflop opcional, que puede ser usado en el

    modo register packing. Con modos especiales de operacin para el uso en

    funciones aritmeticas o dentro de contadores. Con caminos especiales de propagacin a celdas

    vecinas para la rpida propagacin interceldas(cadenas de carry y de cascada).

  • EE-636-M Ing. MSc. Aurelio Morales V. 51 de 83

    Lgica de grano medio: FLEX 10K de AlteraLgica de grano medio: FLEX 10K de Altera

    LAB Local Interconnect

    Fastrack Interconnect

    Data 1Data 2Data 3Data 4

    LAB Control 3LAB Control 4

    To FastTrackInterconnect

    Carry Chain

    Cascade Chain

    LUT

    Clear/PresetLogic

    Clock

    Carry in Cascade-in

    CarryOut

    Cascade Out

    LAB Control 1LAB Control 2

    LAB Control Signals

    QDPRN

    CLRNENA

    Device-wideClear

    RegisterPacking

  • EE-636-M Ing. MSc. Aurelio Morales V. 52 de 83

    Lgica de grano medio a fino: ACT2 de ActelLgica de grano medio a fino: ACT2 de Actel

    Con dos distintas subceldas (C-Module y S-Module), cada una de ellas de grano fino

    El C-module es un mdulo puramente combinatorio

    El S-Module agrega al C-Module un elemento de memoria

    OR

    AND

    OR

    AND

  • EE-636-M Ing. MSc. Aurelio Morales V. 53 de 83

    SEL

    A

    B

    Y2

    Y3

    1

    0

    C

    S

    F

    D Q

    /QClk

    Clr

    AB

    sel

    A

    selclkD Q

    Clr

    A

    selclk

    D Q

    Clr

    clkD Q

    Clr

    AB

    sel

    0 1

    OR

    OR

    OR

    OR

    AND

    AND

    XOR

    XOR

    AND

    AND

    Lgica de grano fino: XC6200 de XilinxLgica de grano fino: XC6200 de Xilinx

  • EE-636-M Ing. MSc. Aurelio Morales V. 54 de 83

    Lgica de grano muy fino: ACT1 de ActelLgica de grano muy fino: ACT1 de Actel

    Un circuito simple, con 3 MUXs 2:1 y una OR2.

    Cada modulo ACT1 es aun mas simple que el C-Module de la familia ACT2.

    En tanto, un latchtransparente puede ser realizado con una nica celda, la sntesis de un simple flip-flop requiere del uso de dos celdas. OR

    0

    1

    0

    0

    1

    1

  • EE-636-M Ing. MSc. Aurelio Morales V. 55 de 83

    Casos hbridos: EAB en FLEX 10K de AlteraCasos hbridos: EAB en FLEX 10K de AlteraEAB = EAB = Embedded Array BlockEmbedded Array Block

    En los FLEX10K, dentro de una arquitectura de grano medio se intercalan grandes bloques de memoria RAM rpida (1024 o ms bits), con ancho de salida configurable (1, 2, 4, 8 o 16 bits).

    Los EABs permiten resolver velozmente varias funciones simultneas (variables comunes) de gran fan-in.

    Permite su uso ptimo como RAM: por ejemplo, almacenar coeficientes en en aplicaciones de DSP, o hacer multiplicacion por tablas en aplicaciones grficas.

    La concentracin de la RAM no desperdicia recursos de cableado.

  • EE-636-M Ing. MSc. Aurelio Morales V. 56 de 83

    Celdas de Entrada/Salida (I/O)Celdas de Entrada/Salida (I/O)

    Responsables de la interconexin del dispositivo con el mundo externo deben manejar corrientes importantes y capacidades parsitas decenas de veces

    mayores a las existentes dentro del chip Deben ser bidirecionales

    Contribuyen fuertemente a crear ciertos problemas de diseo agregado de retardos picos de corriente de consumo y consiguiente

    ruido de fuente (ground bouncing)

  • EE-636-M Ing. MSc. Aurelio Morales V. 57 de 83

    Celdas elementales de I/O: MAX7000Celdas elementales de I/O: MAX7000

    Slo permiten definir si la puerta ser de entrada, salida o bidireccional, y cada celda de I/O est asociada a una celda lgica determinada.

    A la matriz de interconexin

    (PIA)

    salida de la macroceldaPin de I/O

    Mux para seleccin de control de Tri-StateOE1n

    OE2n

    Buffer Tri-State

    Sealesglobalesde control

  • EE-636-M Ing. MSc. Aurelio Morales V. 58 de 83

    Celdas I/O complejas: MAX9000, FLEX, XilinxCeldas I/O complejas: MAX9000, FLEX, Xilinx

    No hay una relacin predeterminada entre las celdas de I/O de las celdas lgicas.

    Para vincularlas se usan los recursos de interconexin.

    Se derivan a las celdas de I/O ciertas tareas de sincronizacin de datos externos.

    Se cuenta con muchas opciones de configuracin, como control de slew rate, de pullups o pulldowns, agregado de retardos, etc.

  • EE-636-M Ing. MSc. Aurelio Morales V. 59 de 83

    Celdas de I/O complejas: XilinxCeldas de I/O complejas: Xilinx

    D Q

    Controlslewrate Pasivos

    Pull-Up,Pull-Down

    Delay

    Vcc

    Bufferdesalida

    Buffer deentrada

    Q D

    OK (OutputClock)

    IK (InputClock)

    I1

    2I

    O

    T/OE

    Pad

    CE

    XILINXXC4000

  • EE-636-M Ing. MSc. Aurelio Morales V. 60 de 83

    Celdas de I/O complejas: MAX9000Celdas de I/O complejas: MAX9000

    96

    10 bloquede I/O

    pin de I/O

    mux 10:1

    cada bloque de I/Opuede excitar hastados posibles filas

    filas

    48

    17 bloquede I/O

    pin de I/O

    mux 17:1

    cada bloque de I/Opuede excitar hastados posibles columnas

    columnas

    pata de I/O

    D Q

    ENACLRN

    vcc

    vcc

    vcc

    OE[7..0]

    CLK[3..0]

    ENA[5..0]

    CLR[1..0]

    slew ratecontrol

    bus perifrico

  • EE-636-M Ing. MSc. Aurelio Morales V. 61 de 83

    Las redes de cableadoLas redes de cableado

    Fuertemente relacionadas con la granularidad: Cuanto mayor es la granularidad (menores las

    celdas) ms recursos de cableado se requieren para resolver la misma funcin.

    Con estructuras jerrquicas, segn el alcance: Local: conecta cada celda a los vecinos

    inmediatos. Vecinal: permite conectar grupos de celdas. Global: permite conectar cualquier celda con

    cualquier otra dentro del dispositivo.

  • EE-636-M Ing. MSc. Aurelio Morales V. 62 de 83

    Interconexiones LocalesInterconexiones Locales

    Las cadenas de CARRY y CASCADA (ALTERA): son conexiones de cada celda lgica con las

    inmediatas superior e inferior, orientados especialmente para acelerar la realizacin de operaciones aritmticas.

    Interconexin rpida directa (XILINX): son caminos potenciales entre cada celda y las 4

    que la rodean, de propsitos generales y bajo tiempo de propagacin.

  • EE-636-M Ing. MSc. Aurelio Morales V. 63 de 83

    Interconexin rpida directaInterconexin rpida directa

    CLBCLB

    CLBCLB

    CLBCLB

    CLBCLB

    Provee un camino directo de cada CLB con los CLB o IOB adyacentes.

    Es un vnculo de bajsimo retardo: Menos de 1 ns.

    Limitado en las XC3000 y en la XC4000.

  • EE-636-M Ing. MSc. Aurelio Morales V. 64 de 83

    Cadena de Carry en FLEX 10KCadena de Carry en FLEX 10K

    LUT

    Carrychain

    Register

    entrada de Carry(desde el LE previo)

    s1

    LE1

    LUT

    CarryChain

    s2

    LE2

    a1b1

    a2b2

    Salida de Carry(al prximo LE en el LAB)

    Register

  • EE-636-M Ing. MSc. Aurelio Morales V. 65 de 83

    Funciones en cascada: FLEX 10KFunciones en cascada: FLEX 10K

    IN [(4n-1)..4(n-1)]

    Cascada tipo AND Cascada tipo OR

    IN [3..0]

    IN [7..4]

    IN [3..0]

    IN [7..4]

    IN [(4n-1)..4(n-1)]

  • EE-636-M Ing. MSc. Aurelio Morales V. 66 de 83

    Interconexiones vecinalesInterconexiones vecinales

    El caso de los LAB en ALTERA un conjunto de 8, 10 o 16 celdas lgicas se agrupan

    fsicamente, y se define una matriz de conexionado rpido entre ellas, con acceso a los sistemas de interconexin global y a LABs vecinos.

    Half lines de XILINX en este caso, la existencia de lneas de corto

    alcance permiten vincular a cada celdas con varias otras vecinas.

    Los MAGIC BLOCKs de XILINX conectan entre s, segmentos horizontales y

    verticales de corta longitud, a travs de matrices bidireccionales de transistores.

  • EE-636-M Ing. MSc. Aurelio Morales V. 67 de 83

    Interconexin de propsito generalInterconexin de propsito general

    Son segmentos con puntos de conexin a los CLBs, que se pueden interconectar entre s mediante matrices de switches (magic blocks).

    Agregan un retardo de propagacin importante, dependiente de la cantidad de switches atravesados.

    Facilitan la interconexin y la ubicacin de CLBs e IOBs.

    Ideal para seales lentas. Un cambio de ubicacin de

    un CLB puede alterar todos los timings del diseo.

    CLBCLB

    CLBCLB

    CLBCLB

    CLBCLB

  • EE-636-M Ing. MSc. Aurelio Morales V. 68 de 83

    16 macroceldas forman un Logic Array Block (LAB).

    Un LAB tiene una matriz local de conexin con 48 seales internas (entre expansores y feedback) y 66 seales provenientes de las filas de la red global.

    Las salidas de los LABspueden ir tanto a las filas como a las columnas.

    Tienen asociados caminos para que seales de las columnas puedan llegar a las filas.

    Matriz deconexin local(114 canales)

    Filas deInterconexin(Row FastTrack)

    Expansorescompartidos

    macrocelda 1macrocelda 2macrocelda 3macrocelda 4

    macrocelda 13macrocelda 14macrocelda 15macrocelda 16

    macrocelda 9macrocelda 10macrocelda 11macrocelda 12

    macrocelda 5macrocelda 6macrocelda 7macrocelda 8

    3316 16

    48

    4816

    1616

    48

    66

    Columnas deInterconexin

    Al bus perifrico

    GCLK1

    GCLK2

    GCLR

    Al bus perifrico ya los otros LABsdel dispositivo

    Feedbacklocal

    salidasdel LABa lasfilassalidas

    del LABa lascolumnas

    caminosdecolumnasa filas

    MAX9000 de AlteraMAX9000 de Altera

  • EE-636-M Ing. MSc. Aurelio Morales V. 69 de 83

    Interconexiones globalesInterconexiones globales

    Suelen hacer uso de lneas rpidas (en general metlicas) y son usadas para distribucin de seales globales (por ejemplo: de reloj, reset):

    long lines (XILINX): pueden ser excitadas desde buffers Tri-State propios de cada celda.

    FastTrack (ALTERA): configuran una matriz de filas y columnas metlicas conectadas mediante multiplexores.

  • EE-636-M Ing. MSc. Aurelio Morales V. 70 de 83

    Interconexin global: Altera FastTrackInterconexin global: Altera FastTrack

    ....

    ....

    ....

    ....

    ....

    ....

    ....

    ....Celdas de I/O

    LABs: Bloques de 16 macroceldas

    Macroceldas

    Fast TrackInterconnect

    Interconexinpor filas

    Interconexinpor columnas

    ....

    ....

    ....

    ..

  • EE-636-M Ing. MSc. Aurelio Morales V. 71 de 83

    Lneas largas para redes con gran fanoutLneas largas para redes con gran fanout

    Son lneas metlicas que atraviesan todo el chip.

    Muy bajo skew. Ideal para seales de

    gran fanout. Ideal para relojes. Requiere alineacin

    vertical u horizontal de las cargas.

    Con buffers tristatepara buses.

    CLBCLB

    CLBCLB

    CLBCLB

    CLBCLB

  • EE-636-M Ing. MSc. Aurelio Morales V. 72 de 83

    Peor caso de propagation delay (retardo de propagacin)

    tplogic = worst-case of propagation delay of the logictcdlogic = minimun delay (contamination delay) of the logictcdregister = minimum delay (contamination delay) of register

    Caso de un registro sncronoSetup y Hold TimeSetup y Hold Time een n circuitos circuitos digitaldigitaleses

  • EE-636-M Ing. MSc. Aurelio Morales V. 73 de 83

    Clock SkewClock SkewEs la variacin espacial del tiempo de llegada de la seal de reloj para los diferentes registros de un circuito sncrono.

    El clock skew puede ser positivo o negativo, dependiendo de la propagacin de la seal de reloj y la posicin de la fuente de reloj.

    El clock skew se produce por las diferentes longitudes de los caminos de la seal de reloj entre los diferentes registros dentro del chip.

  • EE-636-M Ing. MSc. Aurelio Morales V. 74 de 83

    Clock Skew (cont.) Clock Skew (cont.)

    Para este circuito se puede determinar las siguientes relaciones para el mnimo ciclo de reloj:

    Podemos entonces pensar que un clock skew positivo es bueno; pero incrementndolo hace que el circuito sea susceptible a race condition(condicin de carrera). Entonces, formulamos la siguiente restriccin:

    Enrutando el reloj en la direccin opuesta (skew negativo) hace que la condicin previa siempre se cumpla pero puede complicar el desempeo.

  • EE-636-M Ing. MSc. Aurelio Morales V. 75 de 83

    Clock Skew (cont.) Clock Skew (cont.)

    Estructura de camino de datos con realimentacin

    Skew positivo y negativo. Entonces, tomar en cuenta el peor caso.

  • EE-636-M Ing. MSc. Aurelio Morales V. 76 de 83

    Clock Jitter Clock Jitter El clock jitter se refiere a la variacin temporal de la seal de reloj

    en un determinado punto. La seal de reloj se puede expandir o reducir en el punto

    determinado, de manera cclica. El jitter reduce el desempeo del sistema secuencial. Por lo tanto, es

    importante reducir el jitter en la red de reloj a fin de maximizar el desempeo.

    Idealmente el perodo de reloj empieza en el flanco 2 y termina en el flanco 5 (valor nominal TCLK). Pero debido al jitter, los flancos no se presentan siempre en la misma posicin.

  • EE-636-M Ing. MSc. Aurelio Morales V. 77 de 83

    Clock Jitter (cont.) Clock Jitter (cont.)

    El escenario de peor caso ocurre cuando el flanco actual de reloj se atrasa (flanco 3) y el siguiente flanco de reloj se adelanta (flanco 4):

  • EE-636-M Ing. MSc. Aurelio Morales V. 78 de 83

    Efecto del Skew y JitterEfecto del Skew y Jitter CLK1 tiene un tjitter1 y CLK2 tiene un tjitter2.

    El peor caso para determinar TCLK se da cuando el flanco de subida de CLK1 ocurre en 3, y el siguiente flanco en CLK2 ocurre en 10.

    El peor caso para determinar el skew se da cuando CLK1 ocurre en 1, y el mismo flanco se da en CLK2 en 6.

    Mnimo Perodo de reloj:

    Mximo skew :

  • EE-636-M Ing. MSc. Aurelio Morales V. 79 de 83

    Slack TimeSlack TimeEs la diferencia entre la llegada deseada de una seal y el valor real de llegada de sta. El slack puede ser positivo, negativo o cero. Si es positivo, se puede incrementar la frecuencia de trabajo. Si es negativo, no se cumplen condiciones, si es cero, est en el lmite.

    Slack con repecto al Setup:ARRIVAL TIME = Propagation delay of the flip-flop + propagation delay of the combinational logicREQUIRED TIME = Clock period (defined by our constraint) + skew (difference inarrival of clock b/w two flip flop) setup time of the flip-flop.

    SLACK(setup) = REQUIRED TIME - ARRIVAL TIME

    Slack con respecto al Hold:ARRIVAL TIME = Propagation delay of the flip-flop + propagation delay of the combinational logicREQUIRED TIME = Clock period (defined by our constraint) + skew (difference inarrival of clock b/w two flip-flop) + hold time of the flip-flop

    SLACK(hold) = ARRIVAL TIME - REQUIRED TIME

  • EE-636-M Ing. MSc. Aurelio Morales V. 80 de 83

    Influencia del mtodo de conexin y el tipo deInfluencia del mtodo de conexin y el tipo dellaves en la velocidad de operacinllaves en la velocidad de operacin

    La lgica de grano fino requiere mltiples conexiones entre celdas y varias celdas, con lo que la mayor velocidad de cada celda a veces no significa que la solucin final lo sea.

    Las llaves tipo antifuse, transmission gate o bidireccionales generan una cadena RC que influyen en el retardo total, donde el valor de R esta dado por los fusibles ON sucesivos, y el de C por aquellos en estado OFF. Este efecto es mas importante en lneas de conexin de Si (Actel) por la mayor resistencia del conductor.

  • EE-636-M Ing. MSc. Aurelio Morales V. 81 de 83

    Influencia del mtodo de conexin y el tipo deInfluencia del mtodo de conexin y el tipo dellaves en la velocidad de operacin (cont.)llaves en la velocidad de operacin (cont.)

    Los buffers Tri-State en las long-lines de XILINX generan el riesgo de bus-contention, obligando a agregar retardos como mrgenes de proteccin.

    Las lneas de trmino producto poseen una importante capacidad parsita propia de los fusibles abiertos.

    Las arquitecturas cuya velocidad de operacin es afectada por el tiempo de propagacin de seales son altamente sensibles a cambios de diseo, pues la reubicacin de una celda puede afectar fuertemente el desempeo de un diseo.

  • EE-636-M Ing. MSc. Aurelio Morales V. 82 de 83

    Diseo usando lgica programableDiseo usando lgica programable

    CONCLUSIONES El uso de lgica programable no descarta el uso de

    lgica discreta, sino que la restringe a casos muy simples.

    Es una herramienta rpida, de alta confiabilidad, y de bajsimo costo por compuerta.

    La fcil modificacin de un diseo permite asegurar el mantenimiento y upgrade de un producto.

    Conocer profundamente las tcnicas de diseo lgico es la mejor manera de aprovechar la lgica programable.

    Se pasa del diseo por compuertas al diseo por sistemas.

  • EE-636-M Ing. MSc. Aurelio Morales V. 83 de 83

    ResumenResumen Revisin de tcnicas de sntesis de funciones lgicas:Revisin de tcnicas de sntesis de funciones lgicas:

    algebrica, multiplexores, decodificadores, ROM, PALalgebrica, multiplexores, decodificadores, ROM, PAL Arquitecturas de Tecnologa FPL:Arquitecturas de Tecnologa FPL:

    granularidad de celdas, jerarqua de interconexingranularidad de celdas, jerarqua de interconexin

    BibliografaBibliografa John F. Wakerly Digital Design Principles and Practices, 4ta EJohn F. Wakerly Digital Design Principles and Practices, 4ta Edicin, dicin, Prentice Hall, 2005.Prentice Hall, 2005.

    J. Rabaey, A. Chandrakasan, B. Nikolic Digital Integrated CircJ. Rabaey, A. Chandrakasan, B. Nikolic Digital Integrated Circuits: A uits: A Design Perspective 2da Edicin, Prentice Hall, 2003.Design Perspective 2da Edicin, Prentice Hall, 2003.

    http://www.xilinx.comhttp://www.xilinx.com http://www.altera.comhttp://www.altera.com http://www.actel.comhttp://www.actel.com