Síntesis Lógica con HDL

Slides:



Advertisements
Presentaciones similares
Org. y Arquitectura del Computador
Advertisements

Lenguajes de Descripción de Hardware
Equipo #3 Unidad III: ALU Efraín Corral Eduardo Castillo Elías Alarcón
DISEÑO DE TRANSFERENCIA ENTRE REGISTROS
Métodos de diseño en VHDL.
GESTIÓN y VALORACIÓN del PUESTO de TRABAJO
Intoduccion a la Arquitectura y Organizaciòn del Computador
DATA WAREHOUSE Presentador Por: Andrés Fabián Cortes Solano.
Introducción a LAS Bases de Datos
MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas
DISEÑO ORIENTADO AL OBJETO
Circuitos Digitales II
Modelo de Datos Unidad II.
Modelos de Datos Modelado y Diseño de Bases de Datos
Aplicación de Patrones de diseño al diseño de Hardware
Vhdl para síntesis Alfredo Rosado Muñoz Universidad de Valencia Ingeniería Electrónica Diseño de Circuitos y Sistemas Electrónicos.
Presentado por: Lenin Isaías Escobar Mendoza
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERIA DIVISIÓN DE INGENIERÍA ELÉCTRICA COMPUTACIÓN PARA INGENIEROS NOTA IMPORTANTE: Para complementar.
DIAGRAMAS DE CLASES Completando los diagramas de interacción, es posible identificar la especificación de las clases que participarán en la solución indicando.
CONTROL AUTOMATICO III SEMANA INGENIERIA EN ENERGIA VI CICLO
INGENIERIA ELECTRICA Y ELECTRONICA
EXPCAD – El Filtro CAD Universal
CURSO: UNIDAD 4: LENGUAJES HDL
DISEÑO DETALLADO PROGRAMACIÓN DE SISTEMAS ISC 5° “A” ABILENNE CORTES CONTRERAS YANET DIAZ PEREZ VERONICA ROMERO ZAMORA YENI HERNANDEZ HERNANDEZ CRISTIAN.
Washington DC, noviembre 2002 MARCO ANALÍTICO PARA LA EVALUACIÓN DE SISTEMAS DE SERVICIO CIVIL MARCO ANALÍTICO PARA LA EVALUACIÓN DE SISTEMAS DE SERVICIO.
1. Introducción El objetivo final del proyecto piloto es probar el uso de la tecnología XBRL para el intercambio de información financiera entre el Banco.
VHDL.
Laura Patricia Pinto Prieto Ingeniera de sistemas.
Arquitectura del Computador
Listas de cotejo y escalas de apreciación
HERRAMIENTAS CAD Jorge Felipe Blanco Medina Rafael Duran Oscar Pizza.
Interfaces de entrada / salida
Interfases de Entrada / Salida
GESTION DE LA JERARQUIA
Capítulo.2 - Fundamentos del Lenguaje VHDL
DISEÑO Genera soluciones a requerimientos planteados
 El primer navegador Web incluía un lenguaje de estilo interno que utilizaba dicho navegador para mostrar las páginas HTML.  Sin embargo estos primeros.
DSL Domain Specific Language (Lenguaje Especifico del Dominio)
Ingeniería de Software Orientado a Objetos
VHDL Breve introducción.
Others, soporte para síntesis. Los agregados tienen la habilidad de usar la sentencia others, la cual asignará un valor a todos los otros elementos de.
5.3 APROXIMACIONES AL DISEÑO
Conceptos de la Electrónica
PROGRAMACION AVANZADA DE PLC’s
Modelos de Bases de Datos
Comunicación y Multimedia
Introducción Electrónica Digital
Programación de Sistemas
DISEÑO Genera soluciones a requerimientos planteados Describe las especificaciones del sistema propuesto Define CÓMO lo va a hacer el nuevo Sistema Define.
Introducción a VHDL Agenda Un poco de historia Definiciones generales Entidades Arquitecturas Configuraciones.
Especificación de sistemas embebidos Agustín J. González 1s06 Se ha tomado como base el material generado por Peter Marwedel de la Univ. Dortmund, Alemania.
CICLO DE VIDA Y NORMAALIZACION DE UN SISTEMA DE BASE DE DATOS
Importancia en la efectividad del:
Diseño de Software y su Proceso
Universidad Tecnológica del Centro Programa de la Asignatura ARQUITECTURA DEL COMPUTADOR Universidad Tecnológica del Centro Programa de la Asignatura ARQUITECTURA.
“Interpretación de los
Guía para la Interpretación de los Gráficos PDA Bienvenidos.
Son datos en tablas relacionadas por el contenido de ciertas columnas.
Diseño de Sistemas.
Conceptos Fundamentales
Ingeniería de Requisitos
Diseño del Software e Ingeniería del Software
Estructurar tus ideas para hacerlas realidad
3. Paradigmas de la ingeniería de software.
Diseño Lógico 2 Metodología de Diseño
Republica Bolivariana de Venezuela Universidad Alonso de Ojeda Facultad de Ingeniería Escuela de Computación Ing. Prof. Leonel Sequera Entrada y Salidas.
Presentación De UML Lenguaje estándar para escribir planos de software Se usa para visualizar, especificar, construir y documentar los artefactos de un.
1 LENGUAJE DE DESCRIPCION DE HARDWARE ELECTRONICA DIGITAL NAYIBE CHIO CHO NAYIBE CHIO CHO.
Tecnologías y Arquitecturas de SE
Programación en VHDL.
Transcripción de la presentación:

Síntesis Lógica con HDL Especificación y Metodología en VHDL

¿Qué es la Síntesis Lógica? Obtención automática de una descripción arquitectural a partir de una funcional Utiliza un subset del lenguaje HDL (VHDL) => No es sintetizable cualquier descripción El estilo de descripción influye notablemente. Las descripciones deben realizarse pensando en que se van a convertir en puertas reales HDLs más comunes: VHDL y VERILOG Es capaz de optimizar respecto del número de puertas y respecto de la temporización: Relación área/tiempo => Trade-off Síntesis = Traslación a puertas + Optimización

Estilos de Descripción (1/2) En VHDL exiten únicamente 3 estilos definidos: dataflow: Implica una estructura y un comportamiento behavioral: No existe información estructural structural: Se describen las interconexiones de los componentes (comportamiento implícito) Se pueden combinar los estilos anteriores en una misma descripción Estas descripciones hacen referencia a la forma de especificar el objeto de VHDL architecture

Estilo de Descripción (2/2) Hoy en día, el estilo que mejor se adapta a las herramientas de Síntesis Lógica combina los 3 anteriores junto con las experiencia de los diseñadores y las recomendaciones de aquellas: Realizar una partición jerárquica adecuada al diseño Los bloques a sintetizar no deben ser excesivamente grandes Aritmética entera Descripciones explícitas y a nivel de transferencia entre registros (RTL)

Ejemplos (1/2) architecture dataflow of ejemplo1 is begin C<=not(A xor B); end dataflow; Ejemplo: Data_flow architecture behavioral of ejemplo1 is begin process (A,B) begin if (A = B) then C <= ‘1’; else C <= ‘0’; end if; end process; end behavioral; Ejemplo: Behavioral

Ejemplos (2/2) A C I XR2 INV B architecture structural of ejemplo1 is signal I: bit; component XR2, INV,...; begin U0: XR2 port map (I,A,B); U1: INV port map (C,I); end structural; Se declaran señales internas y los componentes que se utilizan Los componentes han de estar definidos en una libreria structural U0 A U1 C I XR2 INV B

Variables vs Señales (1/3) Similitudes: Ambas son objetos de VHDL cuyo valor puede ser cambiado Ambas son sintetizadas como lógica combinacional y/o conexiones En ambos casos existen reglas de ámbito y persistencia como en los lenguajes de programación Diferencias: Las variables se usan exclusivamente dentro de los procesos (process) y subprogramas (procedure y function) Las variables son siempre asignadas a un valor en simulación, por lo que su procesamiento es más rápido Siempre que sea posible, desde el punto de vista de la síntesis lógica, se han de usar variables

Variables vs Señales (2/3) Recomendaciones: Usar señales en operaciones de poca complejidad computacional Usar variables para tipos y expresiones complejas Asignar señales a variables, de forma temporal, siempre que sea posible Usar señales para comunicar procesos No usar NUNCA tipos reales (No son sintetizables) Reservar el tipo INTEGER para operaciones que así lo impongan Intentar usar STD_LOGIC, STD_ULOGIC, BIT Las operaciones tienen una precedencia por defecto, salvo que se usen paréntesis El uso de paréntesis también impacta en el resultado final de la síntesis

Variables vs Señales (3/3) signal A,B,C,X,Y: mi_vector; begin process(A,B,C) C <= A; IGNORADA X <= C + 2; C <= B; PROCESADA Y <= C + 2; end process; signal A,B,X,Y:mi_vector; begin process(A,B) variable C: mi_vector; C:= A; INMEDIATO X <= C + 2; C:= B; INMEDIATO Y <= C + 2; end process; X 2 X 2 + + A B B Y Y + + 2 2

Ejemplo SUMADOR a b c d z z = a + b + c + d z = (a + b) + (c + d)

Procesos y Sentencias Concurrentes Sentencia concurrente: Signal S,A:std_logic; S <= A and B; Equivale a una forma abreviada del process Cada sentencia da lugar a un process Siempre señales Se evalua siempre que cambia A y/o B Process: Signal S,A:std_logic; Process (A) begin S <= A and B; end process; Variables o señales Se activa solo si en A se produce un evento Puede haber varios process en paralelo

Síntesis de Sentencias Concurrentes (1/3) Se ejecutan de forma asíncrona, sin un orden prefijado Siempre dentro de una architecture y entre señales Se usan en descripciones de tipo structural, dataflow y/o RTL Ejemplo: A <= B + C; D <= E + F; Este ejemplo produciría el mismo Hw dentro y fuera de un process. Sólo si las señales B, C, E y F estan en la lista de sensibilidad daría los mismos resultados en simulación B A + C E + D F

Síntesis de Sentencias Concurrentes (2/3) El resultado de la síntesis es siempre combinacional Existen 2 formas de asignación de valores en sentencias concurrentes: Condicional: Similar a las sentencias if de los process Selección: Similar a las sentencias case de los process Ejemplo: Z<= A when (X>3) else B when (Y=5) else C; X > 3 Y =5 C Multiplexores con orden de prioridad Z B 1 A 1

Síntesis de Sentencias Concurrentes (3/3) Se deben evitar la realimentación de una señal en la misma sentencia, pues se sintetizan bucles asíncronos A <= B + A; El compilador advierte de esta situación! La existencia de una asignación múltiple a una señal necesita de una función de resolución que indique como se ha de resolver C <= A; C <= B; B A + A A C B

Síntesis de Sentencias Secuenciales (VHDL, VERILOG) Las más utilizadas IF Y CASE. Son más explícitas IF codifica prioridades CASE codifica tablas de verdad y máquinas de estados (FSM) FOR y WHILE son menos utilizadas. Son mas implícitas Operaciones directamente sintetizables: Sumas, restas, incrementos y decrementos Operaciones booleanas

IF en Lógica Combinacional VHDL: process (a,b,sel) begin if(sel = ‘1’) then c <= a; else c <= b; end if; end process; a 1 mux c b sel

IF sin ELSE en Expresión Combinacional VHDL: process(a,sel) begin if(sel = ‘1’) then b <= a; end if; end process; b a D Q E QN sel

IF en Lógica Secuencial VHDL: process begin wait until clk´’event and clk´=‘1’; if(sel = ‘1’) c <= a; else c <= b; end if; end process; a b sel c mux 1 clk D Q CK

IF sin ELSE en Lógica Secuencial VHDL: process begin wait until clk’event and clk=‘1’; if(sel=‘1’) then c <= a; end if; end process; a sel c mux 1 clk D Q CK

Condiciones Asíncronas VHDL: process(clk,reset) begin if(reset=‘0’) then c <= ‘0’; elsif (clk’event and clk =‘1’) if(sel=’1’) then c <= a; end if; end process; mux D Q c a 1 sel CK clr clk reset

CASE en Combinacionales VHDL: process(bcd) begin case(bcd) is when 0=>led=“1111110”; when 1=>led=“1100000”; when 2=>led=“1011011”; when 3=>led=“1110011”; when 4=>led=“1100101”; when 5=>led=“0110111”; when 6=>led=“0111111”; when 7=>led=“1100010”; when 8=>led=“1111111”; when 9=>led=“1110111”; when others=>led =“-------”; end case; end process;

CASE en Secuenciales. FSM VHDL: process(clk,reset) begin if(reset=‘0’) then status<=0; elsif (clk’event and clk=‘1’) then case(status) is when 0=>if(c=‘1’) then status<=1; end if; when 1=>status<=2; when 2=>if(c=‘1’) then else status<=0; end case; end process; c=0 c=1 1 c=0 c=X 2 c=1

Atributos y Restricciones Se aplican desde la propia librería de componentes y desde las preferencias del usuario fan-out, hold y setup marcados por la librería Área, frecuencia máxima de trabajo, capacidades marcados por el usuario Influyen en el trade-off del sintetizador Los sintetizadores suelen incorporar una herramienta de análisis de tiempos

Flujo Síntesis Lógica SÍNTESIS LIBRERÍA DE COMPONENTES DESCRIPCIÓN FUNCIONAL RESTRICCIONES SÍNTESIS ESTRUCTURAL INFORME DE CARACTERIZACIÓN

Restricciones en el lenguaje HDL CONCLUSIONES A la hora de especificar para síntesis no hay que perder de vista que el resultado será hardware Restricciones en el lenguaje HDL Restricciones físicas: retardos y área