Download Capítulo 3: Subsistemas Combinacionales

Document related concepts
no text concepts found
Transcript
Subsistemas Combinacionales
Capítulo 3:
Subsistemas
Combinacionales
• Introducción: Ideas y Conceptos de
Diseño Combinacional
• Orientado a velocidad
• Orientado a minimizar el consumo
• Orientado a minimizar el nº de puertas
• Orientado a utilizar puertas del mismo
tipo
• El problema de las “carreras” (Races) en el
diseño combinacional
• Consecuencias: “Glitches” y su
impacto en el consumo
• Soluciones
D.I.E. DCSE.3-1
Subsistemas Combinacionales
Introducción: Ideas y conceptos de diseño
combinacional
•Diseñar un buen circuito combinacional no
es simplificar la función lógica del circuito
(Karnaugh, Quine-McKluskey, etc)
•Se han de tener en cuenta, qué parámetros
son críticos:
•Velocidad
•Consumo
•Nº de puertas máximo
•Tipos de puertas
•Eliminación de “carreras” o de sus efectos
•La tecnología de implementación
condicionará los criterios y técnicas del
diseñador:
•Circuitos comerciales para placas de circuito
impreso (PCB)
•PLDs
•FPGAs
•ASICs
•etc
D.I.E. DCSE.3-2
Subsistemas Combinacionales
1.- Diseño orientado a velocidad
•La velocidad de respuesta de un circuito
combinacional viene determinada por el
“camino” de mayor retardo, desde
cualquiera de sus entradas a cualquiera de
sus salidas
•Ejemplo:
Tnand=5ns
Tor=6,5ns
A
Tinv=3,5ns
B
C
S
D
•TRET, es estático, pues se obtiene sumando
el retardo de las puertas del camino más
largo (mayor profundidad de lógica)
•Se ha de tener en cuenta que el retardo
dinámico (cuando se producen cambios en
las entradas) puede ser diferente:
•Combinaciones de las señales de entrada que
no se producen nunca
•Retardos por cargas elevadas, etc
D.I.E. DCSE.3-3
Subsistemas Combinacionales
•Si C = “1” siempre, entonces el retardo
dinámico sería:
T’RET = TNAND + TNAND = 10ns
•El comportamiento dinámico del circuito será:
"1"
S
"1"
D
•Funcionalmente, S = D
•No quiere decir que se pueda eliminar el
circuito:
•C puede ser una señal de control que seleccione 2
modos de funcionamiento diferentes, según el tipo
de datos recibidos
•No hay que perder de vista la aplicación, al
determinar la velocidad del circuito
D.I.E. DCSE.3-4
Subsistemas Combinacionales
•Otro aspecto importante es la tecnología con
la que se va a implementar el circuito:
A) PCB con componentes estándar
•Las puertas NAND de 2 entradas y los inversores
suelen ser los más rápidos (Bipolar, CMOS, etc)
•Los chips comerciales tienen varias puertas del
mismo tipo integradas
•Si transformamos el circuito anterior a puertas
NAND
A
B
C
S
D
•Se necesitan 2 chips de NAND2 (2 entradas)
•TRET(estático) = 5xTNAND = 25ns
•Se ha empeorado el tiempo estático, pero:
•Todas las puertas son del mismo tipo
•Se necesitan 2 chips iguales, el circuito original
necesita: 1 de inversores (sólo utiliza 1), 1 de OR
(utiliza 1) y 1 de NAND
D.I.E. DCSE.3-5
Subsistemas Combinacionales
B) PLDs: PLA y PAL
•Ambos tipos responden a la misma arquitectura
•Plano AND: Donde se realizan los productos
lógicos de la función (Programable en ambos)
•Plano OR: Donde se realizan las sumas lógicas de
la función (Programable sólo en PLA; no en PAL)
•La expresión idónea de la función es, pues, en
formato MINTERM o MAXTERM
•En el ejemplo anterior:
S=(A.B+C).C.D = A.C+B.C+A.D+B.D+C.D
•Se ha de seleccionar una PLD combinacional
•El retardo viene impuesto por el dispositivo
•La simplificación por Karnaugh es una buena
herramienta cuando se emplean estos dispositivos
D.I.E. DCSE.3-6
Subsistemas Combinacionales
C) FPGA
•Nos restringimos a la familia XC4000 clásica de
Xilinx. Dada su sencillez y cuya arquitectura
ilustra muy bien los conceptos que se manejan en
este tema
Líneas de
longitud
simple
Bloque
Lógico
Configurable
(CLB)
Bloque de
Conmutación
Programable
Puntos de
conexión
Programables
•La funcionalidad de los CLBs es configurable. Si
suponemos que estuvieran formadas por 1 única
puerta OR, podría realizar 5 funciones f=a+b, f=a,
f=b, f=1 y f=0.
D.I.E. DCSE.3-7
Subsistemas Combinacionales
•El CLB de la familia XC4000 está formada por:
•2 flipflops
•2 generadores de funciones lógicas de 4 entradas
cada uno
•Un conjunto de multiplexores que permiten
seleccionar las salidas de los generadores anteriores
para completar la función lógica a realizar (4 señales
de control)
•1 memoria RAM (look-up table, “LUT”) por cada
bloque generador, para configurar la función lógica
a realizar
•Los bloques de conmutación programable
permiten establecer las comunicaciones entre las
líneas de longitud simple.
•Las líneas de longitud simple permiten comunicar
un CLB con el/los vecino/s próximo/s
•Los puntos de conexión programables permiten
conectar físicamente los CLB a las líneas de
longitud simple, a las de longitud doble y las líneas
largas
•Las líneas de longitud doble permiten conectar un
CLB con otro, dejando uno en medio
•Las líneas largas tienen bajo retardo y bajas
pérdidas resistivas y se utilizan para rutar el reloj
(por su bajo Skew), el reset o señales críticas
D.I.E. DCSE.3-8
Subsistemas Combinacionales
•Según el nivel de funcionalidad (complejidad
expresada en nº de puertas lógicas) que sea posible
configurar en un CLB se habla de:
•Arquitectura de grano grueso (CLB grandes)
•Arquitectura de grano fino (CLB pequeños)
•La funcionalidad afecta a la velocidad resultante:
•Alta funcionalidad Menor número de CLB
usados Mayor retardo en el CLB Menor
nº de interconexiones Menor retardo de
interconexión
•Baja funcionalidad Mayor número de CLB
usados Menor retardo en el CLB Mayor
nº de interconexiones Mayor retardo de
interconexión
•El nivel de funcionalidad también influye en el
porcentaje de uso de los recursos de la FPGA
(área):
•Entre el 70 y el 90% del área total de la FPGA
está ocupada por los recursos de interconexión
•CLBs con funcionalidad elevada puede
provocar el uso de muchas señales de E/S, con
lo que aumentaría la ocupación de área de la
FPGA, el retardo y el consumo.
•Es necesario llegar a un compromiso entre
todos estos aspectos
D.I.E. DCSE.3-9
Subsistemas Combinacionales
•A continuación se dan algunos consejos prácticos
que permiten obtener buenos diseños en FPGAs en
cuanto a velocidad, consumo y área de ocupación:
•Conocer la arquitectura de la FPGA
•Seguir las recomendaciones del fabricante en sus
notas de aplicación
•Utilizar una herramienta específica (del propio
fabricante de la FPGA) de diseño, sobre todo en las
fases finales (configuración de la FPGA)
•Aprovechar al máximo los CLB, en todo caso que
el número de puertas de todos ellos sea equivalente
•Minimizar el número de interconexiones entre
CLBs mediante líneas largas y/o de doble longitud
•Los CLBs deben estar próximos entre sí
•Los CLBs que reciben las señales a procesar del
exterior del chip deben estar cerca de la periferia, así
como los que entregan los resultados al exterior.
•Aprovechar, si existen, bloques funcionales
preconfigurados por el fabricante: descodificadores,
multiplexores, multiplicadores, etc
D.I.E. DCSE.3-10
Subsistemas Combinacionales
D)ASIC (Circuitos de Aplicación Específica)
•Nos restringiremos a ASIC con células estándar
(“standard cells”), también conocido como diseño
semicustom
•Con la evolución de la tecnología CMOS (la de
mayor difusión hoy en día para aplicaciones de
varios cientos de miles de puertas y velocidades en
el entorno de algunos cientos de megahercios), el
retardo de las interconexiones es mayor que el de la
lógica.
•Las herramientas de diseño (como en las FPGAs)
también condicionan la calidad, en cuanto a
velocidad, de los diseños.
•A continuación se dan algunas recomendaciones de
diseño que, aunque son independientes de la
tecnología, en algunos casos tienen un importancia
especial en el diseño de ASICs:
•Estudiar las características de las células de la
librería del fabricante con el que se va a diseñar.
•Utilizar, siempre que sea posible, por ser las
más rapidas:
•NAND2
•NAND3
•Inversores
•MUX2A1, etc
D.I.E. DCSE.3-11
Subsistemas Combinacionales
•Nunca se deben hacer bucles de realimentación en
lógica combinacional
A
B
S
C
•No tiene sentido (aunque sólo sea por razones de
coste) diseñar un ASIC para implementar
únicamente circuitos combinacionales
•Se ha de controlar la profundidad de la lógica
•Hay que llegar a un compromiso entre tipos de
puertas (con más o menos entradas) y carga
admisible en la salida
•La carga a la salida de una puerta y el Fanout son
elementos a tener muy en cuenta para el cáculo de
retardos
•Ejemplo:
•Si se quisiera implementar la función S que se
viene estudiando desde el comienzo:
S=(A.B+C).C.D
•En su forma MINTERM:
S= A.C+B.C+A.D+B.D+C.D
D.I.E. DCSE.3-12
Subsistemas Combinacionales
•El circuito equivalente para esta expresión será:
A
B
C
D
S
•A no se utiliza nunca; A está conectada a 2 puertas
AND de 2 entradas
•B no se utiliza nunca; B está conectada a 2 puertas
AND de 2 entradas
•C está conectada a 1 puerta AND; C a 2 puertas
AND de 2 entradas
•D no se utiliza nunca; D está conectada a 3 puertas
AND de 2 entradas
•El retardo máximo estático sería:
TRET=TINV+TAND2+TNOR5
D.I.E. DCSE.3-13
Subsistemas Combinacionales
•En primer lugar es difícil encontrar puertas de más
de 4 entradas. Si se sustituye por:
T’RET=TINV+TAND2+TNOR3+TAND2
•Para el cálculo del retardo dinámico se ha de tener
en cuenta las cargas que tiene cada puerta
•D se conecta a 3 puertas AND, luego:
T’’RET(din)=TINV+TAND2+TNOR3+TAND2+∆TCARGAS,INV
•Este término, ∆TCARGAS,INV, se suele expresar en el
diseño de ASICs en ns/pF (tecnología CMOS)
•Si todas las puertas AND son iguales y el inversor
tiene un Fanout ≥ 3, entonces:
∆TCARGAS,INV=3x ∆TAND2(ns/pF)xFaninNAND2
•Todo lo que se ha dicho hasta el momento, puede
aplicarse al caso de diseño de ASICs (GateArray),
FPGAs y PCBs
•Una fase de la metodología de diseño muy
particular de los ASICs es la denominada “diseño
físico (“Layout”).
D.I.E. DCSE.3-14
Subsistemas Combinacionales
•El diseñador debe colocar (“placement”) las
células lo más próximas entre sí:
•Disminuye la longitud de las líneas de
interconexión y, por tanto, su impacto en el
retardo.
•Disminuye el área del chip
•Disminuye el consumo, al disminuir el efecto
resistivo de las interconexiones
•Otro aspecto importante es que, en lo posible,
todas las entradas (A,B,C y D) deberían ofrecer la
misma carga hacia el exterior
A
B
C
D
S
•Suponiendo TNAND2 = TNAND3, el retardo estático será:
TRET=2xTINV+2xTNAND2+TNOR2(=NAND2)=22ns
•Este valor es ligeramente superior al que se calculó
para el circuito original (20ns)
D.I.E. DCSE.3-15
Subsistemas Combinacionales
•El diseño sin embargo, cuenta con ventajas
importantes:
•Los retardos desde cualquiera de sus entradas
a la salida están más igualados. La diferencia
se reduce al retardo de un inversor
•La probabilidad de que se produzcan señales
indeseadas (“GLITCHES”) en la salida es
menor
El problema de las “carreras” (Races) en el
diseño combinacional
•Ejemplo:
A
B
1
C
3
S
2
D
D.I.E. DCSE.3-16
Subsistemas Combinacionales
•Teniendo en cuenta los retardos estáticos de cada
puerta, a partir del circuito de la figura, se obtiene el
diagrama de tiempos siguiente:
2ns
2ns
A
B
C
D
1
2
3
S
t=0
"GLITCH"
•Inicialmente:
A=1; B=1; C=1; D=0
S= 0 (IDEAL)
•t = 0
A=1; B=0; C=1; D=0
S= 0 (IDEAL)
•t=8,5ns
A=1; B=1; C=0; D=0
S= 0 (IDEAL)
D.I.E. DCSE.3-17
Subsistemas Combinacionales
•En la última propuesta de realización del circuito la
diferencia está en el retardo de 1 inversor.
•Se puede seguir produciendo el “glitch”, pero la
probabilidad es menor, por estar los “caminos” más
ecualizados en tiempo.
•En resumen:
1.- Los “glitches” se producen por las carreras
(“Races”) de las señales en los circuitos
combinacionales
2.- Son difíciles de eliminar; pero, si se ecualizan
los retardos, la probabilidad es menor
3.- Si los “glitches” son muy frecuentes se está
aumentando considerablemente el consumo
dinámico del circuito
4.- Es siempre recomendable utilizar puertas del
mismo tipo que tenga a su salida una carga parecida
5.- Si no se cumple el punto anterior, el circuito se
“desecualiza” por efecto de ∆TCARGAS (sobre todo
en tecnología CMOS); a pesar de haber utilizado
puertas del mismo tipo y de que las señales
atraviesen la misma profundidad de lógica
D.I.E. DCSE.3-18
Subsistemas Combinacionales
Comentarios finales sobre el consumo en
circuitos combinacionales
•El consumo de un circuito combinacional depende de
muchos factores. Unos han sido comentados ya; a
continuación se hace un resumen de los más
importantes:
1.- Tecnología:
*BIPOLAR: Consumo estático elevado.
Consumo dinámico elevado
*BiCMOS: Consumo estático elevado, debido
a los transistores bipolares; aunque menor que
la tecnología bipolar. Consumo dinámico
elevado
*CMOS: Consumo estático prácticamente
nulo. Consumo dinámico menor que
BIPOLAR o BiCMOS
2.- Tipos de puertas:
*Lógica negada (NAND, NOR, etc): Menor
consumo que lógica sin negar (esto no se puede
generalizar), debido a que tiene menor número
de elementos activos
*El consumo por puerta aumenta cuantas más
entradas tiene una puerta
*Las puertas con Fanout grande consumen más
*Las puertas más rápidas consumen más
D.I.E. DCSE.3-19
Subsistemas Combinacionales
3.- Interconexiones largas y/o mal dimensionadas
(anchura de pistas)
4.- Interconexiones con ángulos y recodos
5.- Interconexiones con cambios abruptos de
sección
Las herramientas de diseño de ASICs tienen
utilidades que permiten detectar y corregir
estos fallos.
•De todo lo anterior se puede deducir que hay una
estrecha relación entre consumo y velocidad:
•Puertas de 2 ó 3 entradas Mayor velocidad
Mayor consumo
•Evitar técnicas de simplificación que obligue a
reutilizar puertas Funciones lógicas redundantes
Disminuir el consumo
•Lógica muy estructurada en niveles Menor
número de puertas Disminuye la velocidad
•Hay que llegar a un compromiso entre Nº de circuitos
lógicos y Velocidad
•Respetar la ecualización de los retardos para evitar
“glitches”:
•Se evitan errores de funcionamiento
•Se disminuye el consumo al disminuir la actividad
espurea de los circuitos
D.I.E. DCSE.3-20