Los dos HDLs: : VHDL, Verilog. DMII Síntesis funcional Síntesis RTL A. Diéguez. Dominios de síntesis



Documentos relacionados
TEMA IV: SÍNTESIS HARDWARE

Tema 16 ELECTRÓNICA DIGITAL LENGUAJES DE DESCRIPCIÓN DE LOS SISTEMAS DIGITALES (PARTE 1)

IV. Metodologías de diseño de alto nivel

Síntesis arquitectónica y de alto nivel

VHDL. Lenguaje de descripción hardware Introducción e historia

Miniproyecto I Diseño microelectrónico de un multiplicador de cuatro bits

Índice. Segundo cuatrimestre Fundamentos de los Computadores. Tema 1: conceptos generales sobre sistemas digitales. FC_2P Tema 1 ISI - ESCET - URJC 1

Scheduling Problem. Cuándo y dónde debo hacer cada trabajo?

Laboratorio de Diseño de Sistemas Digitales

MATERIAL COMPLEMENTARIO TEMA I Niveles de abstracción en la descripción de sistemas digitales

ELO211: Sistemas Digitales. Tomás Arredondo Vidal

UNIVERSIDAD DE SEVILLA Dpto. de Ingeniería Electrónica. Introducción a los lenguajes HDL y conceptos. Octubre de 2007

SINTESIS Y DESCRIPCIÓN DE CIRCUITOS DIGITALES UTILIZANDO VHDL ANTECEDENTES

Diseño Lógico I Facultad de Ciencias Exactas y Tecnología UNT. LENGUAJES DE DESCRIPCIÓN DE HARDWARE

Operaciones Booleanas y Compuertas Básicas

Técnicas de Programación Hardware: CAD para FPGAs y CPLDs. Clase 1: Lógica Configurable

CURSO DISEÑO DE SISTEMAS DIGITALES MEDIANTE VHDL PARA SU IMPLEMENTACIÓN CON FPGAS. 40 horas (15 horas teoría + 25 horas práctica)

Administración de proyectos. Organizar, planificar y programar los proyectos de software

concepto y fases de la SAN

WAN y Enrutamiento WAN

Curso Completo de Electrónica Digital

Dispositivos Lógicos Programables (FPGAs) Guillermo Güichal Emtech

Simulín. Qué es Simulín? Características. Simulador de circuitos digitales para uso docente. v5.60 (Julio 2014) Función lógica (expresión algebraica)

Universidad de Buenos Aires Facultad De Ingeniería. Operaciones Lógicas. [75.40] Algoritmos y Programación I. 2do Cuatrimestre 2010

Fundamentos del diseño 3ª edición (2002)

DIPLOMADO EN TECNOLOGÍAS DE LA INFORMACIÓN

Resolución de problemas en paralelo

Diseño Lógico I Facultad de Ciencias Exactas y Tecnología UNT. Introducción. Fabricantes. Elevada complejidad. Facilitar tareas de diseño

Electrónica Digital. Conceptos Digitales. Dr. Oscar Ruano

Unidades temáticas de Ingeniería del Software. Fases del proceso de desarrollo 4ª edición (2008)

BLOQUE 2. (PARTE 3: Tema 1) CONJUNTO CONFIGURABLE DE PUERTAS FPGA (Field Programmable Gate Array) Clasificación y descripción

La Unidad Procesadora.

Laboratorio 4: Uso de una FPGA

Breve Curso de VHDL. M. C. Felipe Santiago Espinosa. Profesor Investigador UTM

Plan docente. Laboratorio de Diseño Digital (16311/17186)

Diseño de Circuitos Integrados

CRIPTOGRAFÍA SIMÉTRICA Y ASIMÉTRICA

TEMA 0: Introducción: Aspectos Tecnológicos y Metodológicos del diseño de sistemas

Puertas Lógicas. Contenidos. Objetivos

1. Cuál es el objetivo del Diseño del Sistema de Información? del sistema. información. a. 5. b. 4. c. 3. d. 2. c. Diseño de. b.

5.3. Álgebras de Boole y de conmutación. Funciones lógicas

Capítulo 1: Diseño Estructurado:

TEMA 5. ELECTRÓNICA DIGITAL

BUSES. Una comunicación compartida Un conjunto de cables para comunicar múltiples subsistemas. Memoria

Metodologías de diseño de hardware

- Bases de Datos - - Diseño Físico - Luis D. García

TEMA I INTRODUCCIÓN A LA MICROELECTRÓNICA

Resolución de Problemas

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA INGENIERIA EN COMUNICACIONES Y ELECTRÓNICA ACADEMIA DE COMPUTACIÓN

DE SISTEMAS: ANALÓGICOS:

1º CFGS ASIR IMPLANTACIÓN DE SISTEMAS OPERATIVOS

Introducción a las FPGA

Introducción. Conceptos y principios. Introducción. Introducción. Elementos del modelo de análisis. Elementos del modelo de diseño.

EL PROCESO DE DISEÑO DEL SOFTWARE

Examen final de CL 11 de Enero de 2012 Fecha de publicación de notas: Fecha de revisión:

Verificación de sistemas

Características de Samba

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz

Organización del Computador 1. Máquina de von Neumann Jerarquía de Niveles

1. Instala servicios de configuración dinámica, describiendo sus características y aplicaciones.

1. Vectores 1.1. Definición de un vector en R2, R3 (Interpretación geométrica), y su generalización en Rn.

Proyecto de Diseño 2

3.1 Introducción a VHDL

SUPLEMENTO EUROPASS AL TÍTULO

Sistemas Digitales. Ejercicios Tema 5. El Procesador de Propósito General

Compuertas Lógicas. Sergio Stive Solano Sabié. Agosto de 2012 MATEMÁTICA. Sergio Solano. Compuertas lógicas NAND, NOR, XOR y XNOR

SILABO I. DATOS GENERALES

Álgebra Relacional. Unidad 5

Técnicas de Programación Hardware: CAD para FPGAs y CPLDs

En el presente capítulo se describe la programación del instrumento virtual y cómo

Ingeniería del Software. Diseño. Diseño en el PUD. Diseño de software. Patrones arquitectónicos. Diseño Orientado a Objetos en UML

VHDL. Carlos Andrés Luna Vázquez. Lección 5. Sentencias concurrentes

TECNÓLOGO EN DESARROLLO DE SOFTWARE

Circuitos Electrónicos Digitales. Tema III. Circuitos Combinacionales

DESARROLLO DE UN COPROCESADOR EN PUNTO FLOTANTE PARA LA RESOLUCIÓN DE LA ECUACIÓN DE POISSON 1D EN ESTRUCTURAS SOI. Ingeniería Electrónica

Tema 7: Esquema del Funcionamiento de una Computadora. Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid

Centro de Investigación y Desarrollo en Ingeniería en Sistemas de Información (CIDISI)

FPGA: Herramientas de diseño

BOLETÍN OFICIAL DEL ESTADO

INTRODUCCIÓN AL SOFTWARE ISE (Integrated Software Environment) DE XILINX

Tipos Abstractos de Datos

Clase 20: Arquitectura Von Neuman

TELECOMUNICACIONES Y REDES

1. Instala sistemas operativos en red describiendo sus características e interpretando la documentación técnica.

NETWORK TIME PROTOCOL

CENTRO DE ENSEÑANZA SAN ROQUE, S.L. Teléfono FAX

Grado en Ingeniería en Organización Industrial

ANÁLISIS SEMÁNTICO. Especificación formal: Semántica Operacional, semántica denotacional, semántica Axiomática, Gramáticas con Atributos.

PRÁCTICA: LENGUAJE VHDL

Matemáticas Básicas para Computación. Sesión 7: Compuertas Lógicas

Técnicas de prueba 1. FUNDAMENTOS DE LA PRUEBA DEL SOFTWARE

Anexo 3 MÓDULO DE FORMACIÓN EN CENTROS DE TRABAJO PROGRAMA FORMATIVO. Centro de trabajo: Tutor del centro de trabajo:

[RECOMENDACIONES SOBRE LOS CONTENIDOS DE LAS COMPETENCIAS DE AUTOMÁTICA EN LOS GRADOS DE INGENIERÍA INDUSTRIAL]

1. Representación de la información en los sistemas digitales

Define las propiedades del medio físico de transición. Un ejemplo es: CABLES, CONECTORES Y VOLTAJES.

FAMILIA PROFESIONAL: Informática y Comunicación CICLO SUPERIOR DESARROLLO DE APLICACIONES WEB DAW 350 HORAS

: CIRCUITOS DIGITALES

INDICE Parte I. Conceptos 1. El estudio de los lenguajes de programación 2. Cuestiones de diseño de lenguajes

Fundamentos de Ethernet. Ing. Camilo Zapata Universidad de Antioquia

6. SISTEMAS CAD-CAM (CAM) 6.1. CONCEPTO DE CAM

Transcripción:

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