Los dos HDLs: : VHDL, Verilog Los dos HDLs: : VHDL, Verilog Dominios de síntesis Dominios de síntesis
Dominios de síntesis Dominios de síntesis Por qué diseñar en alto nivel? Por qué diseñar en alto nivel?
funcional funcional: : Scheduling funcional: : Scheduling funcional: : ALU Allocation
funcional: : ALU Allocation funcional: : Register Allocation funcional: : Register Allocation funcional: : Scheduling
de Alto nivel/behavioral/arquitectura/funcional de Alto Nivel Especificationes Entrada Especificación funcional Criterios de diseño (timing, prestaciones, coste, consumo, #pines, etc) Una función de optimización Una librería de módulos representando las funciones disponibles Objetivos Generar un diseño RTL que Implemente la función especificada Satisfaga los criterios de diseño Conduzca a una optimización de la función coste Coste= a Area + b Tiempo_ejecución + Salida Estructura RTL Controlador (capturado normalmente simbólicamente como SM) Otros atributos, tales como información geométrica, que guíen a las siguientes tareas lujo de síntesis de alto nivel Scheduling Schedulling: asignación de cada operación a un intervalo de tiempo correspondiente a un ciclo de reloj o intervalo Resource Allocation: Selección del tipo de harware y el número de componentes Module binding: Asignación de operaciones a los componentes harware del control: Diseño del estilo de control y estrategia de reloj
Scheduling: : Ejemplo Scheduling: : Ejemplo Scheduling: : Ejemplo Allocation y binding Allocation : determinación del tipo y número de recursos Elementos funcionales Elementos de almacenamiento Conexiones, busses Binding : Asignación de recursos a componentes Operaciones a componentes funcionales Valores a almacenar a componentes de almacenamiento Transferencias de datos a buses/líneas Puntos clave: Compartición de recursos Objetivos en la optimización Minimizar coste total de recursos, interconexiones Cumplir los criterios de retraso (restricciones en caminos críticos) Técnicas Constructivas: comenzar con un datapath vacio y añadir componentes funcionales, de almacenamiento e interconexiones a medida que se necesitan de acuerdo al scheduling. Algoritmos tipo Greedy: realizar allocation para un paso de tiempo a la vez Basados en reglas: usados para seleccionar el tipo y número de unidades funcionales, especialmente antes del scheduling Basadas en teoría de grafos: las sub-tareas se asocian a problemas bien definidos en la teoría de grafos Clique partitioning Algoritmo Left-edge
Clique-partitioning Left-edge edge algorithm de lógica/rtl Especificationes lujo de síntesis lógica Descripción RTL (Verilog, VHDL) Independiente Tecnología Librería Dependiente Tecnología Optimización Lógica Red Booleana Technology Mapping Gate-level Netlist Minimizar # de literales actorización Extracción el. Comunes Opt. temporal (reestructurar red) Estimar coste Velocidad Area Consumo DMII La Lógica se divide en dos partes: Optimización independiente de la tecnología Determinación de la estructura lógica Estimación de coste (indep. de la tecnología) Optimización dependiente de la tecnología (technology mapping) Asociación a puertas de la librería Modelo detallado de coste específico para la tecnología
Two-Level vs. Multi-Level Logic Synthesis Technology mapping Suma de productos: x = A D + A E + B D + B E + C D + C E + G 6 AND3 + 1 OR7 (podría no existir!) 25 cables (19 literales + 6 líneas internas) A D 1 A E 2 B D 3 B E C D C E 4 5 6 7 x A B C D E G Necesaria para SCs, Gas, PGAs 1 2 3 orma factorizada (SOP(SOP( ))): x = (A + B + C) (D + E) + G 1 OR3 + 2 OR2 + 1 AND3 1 cables (7 literales + 3 líneas internas) 4 x t 1 t 3 + fgh d+e t 4 at 2 +c b+h d e a f c g h G Minimizar # términos producto. Quine-McCluskey. Espresso (SOP) Minimizar # literales, puertas, retraso. actorización algebraica. SIS (forma factorizada) b h Technology mapping: Cual es el problema? Technology mapping (área( rea) t 1 = d + e; t 2 = b + h; t 3 = at 2 + c; t 4 = t 1 t 3 + fgh; = t 4 ; f g d e h b a inv(1) nand2(2) nand3 (3) f g t 1 = d + e; d t 2 = b + h; t 3 = at 2 + c; e t 4 = t 1 t 3 + fgh; = t 4 ; h b a Coste total = 23 c inv(1) nand2(2) nand3 (3) nor(2) aoi21 (3) xor (5) nor3 (3) oai22 (4) c nor(2) aoi21 (3) xor (5) nor3 (3) oai22 (4) t 1 = d + e; t 2 = b + h; t 3 = at 2 + c; t 4 = t 1 t 3 + fgh; = t 4 ; Area total = 19 f g d e h b a c and2(3) or2(3) or2(3) nand2(2) inv(1) nand2(2) aoi22(4) t 1 = d + e; t 2 = b + h; t 3 = at 2 + c; t 4 = t 1t 3 + fgh; = t 4 ; Area total = 15 f g d e h b a c oai21 (3) oai21(3) inv(1) nand3(3) nand2(2) and2(3)
Technology mapping (delay) Area Load-Dependent Delay INV (1) INV (1) NAND2 (2) NAND3 (3) AOI21 NAND4 Area INV (1) Load-Dependent Delay INV (1) NAND2 (2) NAND3 (3) AOI21 NAND4 NAND2 (2) NAND3 (3) INV (2) NAND2 (4) NAND3 (5) INV (3) NAND2 (5) NAND3 (7) NAND2 (2) NAND3 (3) AOI21 (3) INV (2) NAND2 (4) NAND3 (5) INV (3) NAND2 (5) NAND3 (7) AOI21 (3) NAND4 (4) 2 INV (3) NAND2 (4) NAND3 (7) INV (5) NAND2 (9) NAND3 (12) AOI21 NAND4 2 + 1 = 3 MAX(3,) + 2 = 5 1 MAX( 5,1) + 2 = 7 8 MAX( 8,) + 2 =1 NAND4 (4) INV (3) NAND2 (4) NAND3 (7) INV (5) NAND2 (9) NAND3 (12) AOI21 NAND4 2 1 2 + 1 = 3 3 MAX (3,1,) + 3 = 6 MAX (3,,) + 3 = 6 MAX (6,) + 2 = 8 Technology mapping (delay) física Area INV (1) NAND2 (2) NAND3 (3) Load-Dependent Delay INV (1) NAND2 (2) NAND3 (3) AOI21 NAND4 INV (2) NAND2 (4) NAND3 (5) INV (3) NAND2 (5) NAND3 (7) AOI21 (3) NAND4 (4) INV (3) NAND2 (4) NAND3 (7) INV (5) NAND2 (9) NAND3 (12) AOI21 NAND4 3 7 MAX (7,3) + 7 = 14 NAND3 MAX (4,,) + 4 = 8 2 2 + 2 = 4 MAX (8,) + 5 = 13 NAND3
Particionado Particionado recursivo: : min-cut Algorítmos de biparticionado Algorítmos de biparticionado
Algorítmos de biparticionado: Ejemplo K-L loorplanning loorplanning loorplanning
Placement Placement iterativo: : Simulated annealing Estrategia clásica Recocido simulado Mal placement Buen placement Placement iterativo: : Simulated annealing Placement iterativo: : Simulated annealing
Routing Routing Maze Routing Routing detallado: Definiciones y modelos de asignación de capas Entrada: Dos vectores de la misma longitud que representan los pines en ambs lados del canal. Número de capas y modelo de conexión. Salida: Conexión de pines. Minimización de la anchura del canal. Minimización del número de vias. Ejemplo: (13211) (3123) ( = no terminal) Channel routing + Switchbox routing 1. ix the terminals between A & B 2. Route B, C, then D (channel) 3. Route A (switchbox) Lee s Algorithm
Left-Edge Channel Routing Algorithm Left-Edge Algorithm Constrained Left-Edge Algorithm