capitulo 02 introduccion logica programada 2de3
DESCRIPTION
logica programadaTRANSCRIPT
-
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