Mayor Complejidad de Dispositivos y Contexto
Crecimiento exponencial de la complejidad de los dispositivos – ley de Moore.
Crecimiento de la complejidad de los sistemas en los cuales se utilizan los dispositivos (ej. celular).
Crecimiento de la productividad en diseño
Complejidad
Hay exponencialmente más transistores
Efectos Submicrón
Las geometrías pequeñas causan diversos efectos que eran ignorados en el pasado
Capacitancias de acoplamiento
Integridad de señales
Resistencia
Inductancia
Efectos DSM
El diseño de cada transistor es más difícil
Heterogeneidad en el Chip
Gran diversidad de elementos en el chip
Procesadores
Software
Memoria
Análogo
Más transistores hacen cosas diferentes
Heterogeneidad
Fuerte Presión del Mercado
Ventana de diseño más pequeña
Menor tolerancia a revisiones
Mayor complejidad, mayor riesgo, mayor variedad,
ventana más pequeña
Time-to-money
Productividad del Diseño
Dominio
específico
Comportamental
RTL
Puerta
Transistor
Puertas/semana
Dataquest
8K – 12K
2K – 10K
1K – 2K
100 – 200
10 – 20
Flujo de Diseño
(Gp:) Floorplan
(Gp:) Síntesis
Síntesis lógica
Test (SCAN/JTAG)
Reducción de potencia
Síntesis datapath
(Gp:) CWLM
(Gp:) Lib
(Gp:) DW
(Gp:) Restricciones
(Gp:) Verificación formal
(Gp:) Verificación puertas
(Gp:) Testbench
(Gp:) Verificación RTL
(Gp:) ATPG
(Gp:) Código RTL
(Gp:) Spec
(Gp:) Selección de arquitectura
(Gp:) RTL
(Gp:) Chequeo código
(Gp:) Diseño físico
(Gp:) Análisis estático del tiempo
(Gp:) Netlist puertas
(Gp:) Información posicionamiento
(Gp:) GDSII
Flujo Simplificado
HDL
Síntesis RTL
Netlist
Optimización lógica
Netlist
Diseño físico
Layout
Diseño manual
Generador de módulos
Librería
Diseño Manual
Nivel compuerta (100 compuertas / semana)
Nivel transistor (10 – 20 compuertas / semana)
Excesivamente caro (costo y tiempo)
Usado para
Analógico
Biblioteca de compuertas
Datapath en diseños de alto rendimiento
Generador de Módulos
Generadores parametrizables de layout
Generalmente usados en
Memorias
PLA
Register files
Ocasionalmente usados para
Multiplicadores
Datapath de propósito general
Datapaths en diseños de alto rendimiento
Biblioteca
Contiene por cada celda
Información funcional
Información temporal
Información física (área)
Características de potencia
Modelos de simulación
HDL a Nivel RTL
module foobar (q,clk,s,a,b);
input clk, s, a, b;
output q;req q; reg d;
always @(a or b or s) // mux
begin
if(!s)
d = a;
else if(s)
d = b;
else
d = ‘bx
end //always
always @(clk) // latch
begin
if(clk == 1)
q = d;
else if(clk !== 0))
q = ‘bxb;
end //always
End module
RTL
Implícitamente estructural
Los registros y su interconectividad están definidos
El comportamiento clock-to-clock está definido
Solo la lógica de control de transferencia es sintetizada
Mejoras posibles
Asignación automática de recursos
Sintesis RTL
module foobar (q,clk,s,a,b);
input clk, s, a, b;
output q;req q; reg d;
always @(a or b or s) // mux
begin
if(!s)
d = a;
else if(s)
d = b;
else
d = ‘bx
end //always
(Gp:) HDL
(Gp:) Netlist
(Gp:) Sintesis
RTL
Optimización Lógica
Realiza transformaciones y optimizaciones
Transformación grafos estructurados
Transformaciones booleanas
Mapeo en una librería física
Diseño Físico
Transforma circuitos secuenciales en circuitos físicos
Posiciona componentes
Rutea
Transforma en mascaras
O FPGA
Posiciona tablas look-up
Rutea
Layout en Celdas Estándares
Gate Array
Optimización Lógica Combinatoria
Entradas
Red booleana inicial
Caracterización temporal del módulo
Tiempo de llegada de entradas
Factores de carga
Objetivos de optimización
Tiempos requeridos
Superficie
Descripción librería a usar
Salida
Netlist con área mínima que cumple con los tiempos requeridos
Flujo de Diseño RTL
Netlist
(Gp:) Netlist
Biblioteca
Optimización
lógica
Independiente
tecnología
Dependiente
tecnología
Opt. Lógica
2 niveles
Opt. Lógica
multinivel
Biblioteca
Optimización 2 Niveles
Eficiente y madura
Fundamentos teóricos para la optimización lógica multinivel
Usada directamente para PLA y PLD
Usada como subrutina en optimización multinivel
“Logic Minimization Algorithms for VLSi Synthesis”, Robert King Brayton, Alberto L. Sangiovanni-Vincentelli, Curtis T. McMullen, Gary D. Hachtel, Agosto 1984
Nueva Metodología
Divide la optimización lógica en dos problemas
Optimización independiente de la tecnología
Determina la estructura lógica general
Estima costos independientes de la tecnología
Optimización dependiente de la tecnología
Mapea en puertas de la biblioteca
Optimización Independiente de la Tecnología
Minimiza las funciones lógicas (2 niveles)
Busca subexpresiones comunes
Sustituye una expresión dentro de la otra
Factoriza funciones simples
f=ac+ad+bc+bd+a!e (suma de productos)
=(a+b)(c+d)+a!e (forma factorizada)
Técnicas de Optimización
Independientes
Two-level minimization
Selective collapsing
Algebraic decomposition
Restructuring for timing
Redundancy removal
Transduction
Global-flow
Dependientes
Tree covering
Load buffering
Rule-based mapping
Signature analysis
Inverter phase assignment
Discrete sizing
Síntesis Comportamental
HDL
Síntesis RTL
Netlist
Optimización lógica
Netlist
Diseño físico
Layout
Librería
Síntesis Comportamental
HDL
Nivel Comportamental
Una descripción comportamental es siempre funcional
Relaciones temporales son expresadas como precedencias
Una micro arquitectura completa es sintetizada a partir de una descripción comportamental
Elementos Claves
Asignación automática de recursos
Ordenamiento cronológico (scheduling)
Características Sintesis Comportamental
Ordenamiento de operaciones (scheduling)
Inferencia de memoria
Asignación de recursos
Uso de componentes pipeline
Lazos de pipeline
Generación automática de autómatas de estado finito para control
Beneficios Diseño Comportamental
Abstracción
Especifica funcionalidad en vez de implementación
Simulación rápida
Diseño a nivel sistema
Mejor calidad de resultado
Generación automática de FSM
Estado del Arte
Síntesis RTL madura y usada para diseño de chips
Síntesis comportamental menos madura
Usada originalmente en diseño de DSP
Creciente uso en video, networking, y diseño ASIC
No ha crecido lo suficiente para desplazar síntesis RTL
Síntesis de Sistemas
Diseños son heterogéneos
y atraviesan los dominios del
control y flujo de datos en
forma arbitraria
Diseños deben ser modelados
en lenguajes estándares y
gráficos con consistencia
entre dominios y niveles de
abstracción
HW
Diseño de altos niveles de
abstracción
Reuso debe ser considerado a
altos niveles de abstracción
Necesita mezclar C, C++,
Verilog y VHDL
SW
Integrado antes en el proceso
de diseño
Evaluación rápida de partición
HW/SW
Reuso de código debe ser
considerada
Página anterior | Volver al principio del trabajo | Página siguiente |