Introducción Diseño digital contemporáneo

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
Tema 7: Análisis y diseño con registros
INGENIERÍA DE SOFTWARE Introducción Arquitectura de Software
Fundamentos de Diseño de Software INFT.1
FAMILIA DE LÓGICA PROGRAMABLE EMBEBIDA ALTERA FLEX 10K.
Análisis y Diseño Estructurado
Sistemas Digitales Tema 3.
DESCRIPCION DE SISTEMAS
Circuitos de Conmutación
Circuitos Digitales II
CIRCUITOS ELECTRICOS Y ELECTRONICOS
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA 2006.
PERCY CHUMBE BUENDIA. KIZZY GUTIERREZ VALVERDE. RUTH NOEMY APAZA JARA.
Técnico en programación de Software
Vhdl para síntesis Alfredo Rosado Muñoz Universidad de Valencia Ingeniería Electrónica Diseño de Circuitos y Sistemas Electrónicos.
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
SISTEMAS DIGITALES INTRODUCCION
UNIDAD VI: CIRCUITOS LÓGICOS SECUENCIALES
Cibernética y Computación 1
El procesador: la ruta de datos y el control (II Parte)
CLASE 6.
Ingeniería del Software
NIVEL DE LENGUAJES ORIENTADOS A PROBLEMAS NIVEL DE LENGUAJE ENSAMBLADOR NIVEL DE MAQUINA DEL SISTEMA OPERATIVO NIVEL DE MICROPROGRAMACIÓN NIVEL DE LÓGICA.
Algebra Booleana y Compuertas Lógicas
Circuitos Secuenciales
Álgebra de Boole Electrónica Digital
CURSO: UNIDAD 4: LENGUAJES HDL
Circuitos Combinacionales Comunes
Composición Interna de un Procesador
Lenguaje de Descripción de Hardware.
Entradas FF Sincrónicas y Asincrónicas
VHDL.
Diseño digital para microprocesadores
Universidad Autónoma de Nuevo León Facultad de Ingeniería Mecánica y Eléctrica Abril 2013 Sistemas Digitales Electrónica Digital I Diseño Combinacional.
Electrónica Digital.
Demultiplexor y Chip 74LS154
Organización del Computador I Verano MIPS (1 de 2) Basado en el capítulo 3 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
EXAMEN CORTO SOBRE FLIP-FLOPS
VHDL Breve introducción.
Diseño lógico combinacional mediante VHDL
Introducción Electrónica Digital
Tecnologías de las computadoras
ARQUITECTURA DE COMPUTADORES
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
Maestría en Ingeniería Electrónica
Ingeniería de software
Integración de entidades en VHDL
CLASE 2.
[ Arquitectura de Computadores ] SISTEMAS DIGITALES Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia.
1 © UPM-ETSISI Tema 7.-Tecnología de las Estructuras y Subsistemas Lógicos Combinacionales © UPM-ETSISI Tema 7 Tecnología de las Estructuras y Subsistemas.
Diseño lógico secuencial con VHDL
Introducción. ¿Que es una computadora? Maquina electrónica capaz de resolver problemas ejecutando las instrucciones de un programa: 1.recibe datos, 2.los.
Organización del Computador 1
Organización del Computador 1
Ingeniería de Requisitos
Contenido Los puntos 9.7 y 9.8 no se dan 9.1. Revisión del concepto de máquina secuencial. Taxonomía Temporización en los circuitos lógicos síncronos.
Alumno: Gerardo Mario Valdés Ortega
Compuertas lógicas INTRODUCCION
Universidad Autónoma de Nuevo León Facultad de Ingeniería Mecánica y Eléctrica Octubre 2012 Sistemas Digitales Electrónica Digital I Diseño Combinacional.
Diseño Lógico 2 Metodología de Diseño
UNIDAD 2. DISEÑO LÓGICO DE PROCESADORES: UNIDAD ARITMÉTICO-LÓGICA Ing. Elizabeth Guerrero V.
Subsistemas aritméticos y lógicos
 PRESENTADO POR : ANDRES MAYORGA DANIELA PAEZ VEGA.
Circuitos Combinacionales I
Organización del Computador 1 Lógica Digital 2 Circuitos y memorias.
Transcripción de la presentación:

Introducción Diseño digital contemporáneo Laboratorio de Diseño de Sistemas Digitales I semestre 2004 Profesor: Alfonso Chacón Rodríguez alchacon@itcr.ac.cr http://www.ie.itcr.ac.cr

El proceso de diseño Diseño Concepto inicial: ¿cuál es la función que lleva a cabo el objeto? Restricciones: ¿cuán rápido? ¿cúanta área? ¿cuánto cuesta? Transforme los bloques abstractos funcionales en objetos concretos Implementación Ensamble los bloques primitivos en bloques más complejos Alambre la composición resultante Escoja alternativas para mejorar el diseño Debug o depuración Sistemas defectuosos: fallas de diseño, composición y componentes Diseñe para hacer la depuración más efectiva Habilidades para la formación de hipótesis y resolución (troubleshooting)

Tecnologías de prototipo Elementos del diseño digital moderno Representaciones, tecnologías y prototipos Comportamiento Bloques Formas de onda Compuertas Tablas de verdad Álgebra booleana Conmutadores Representaciones del diseño Tecnologías de prototipo Simulación Síntesis PAL, PLA, ROM, CPLD, FPGA TTL Diseño ayudado por computadora (CAD) MOS ASIC Tecnologías de circuitos

Consejos para el diseño digital Buenas herramientas no garantizan buenos diseños Los circuitos digitales tienen características analógicas Sepa siempre cuando preocuparse y cuando no sobre los aspectos analógicos del diseño digital Documente sus diseños para hacerlos comprensibles para usted y los demás Asocie los niveles actives con los nombres de las señales y practique el diseño lógico de burbuja a burbuja Entienda y use bloques funcionales estándar Diseño para un costo mínimo en el nivel de sistema, incluido su esfuerzo de ingeniería como parte del costo

Consejos para el diseño digital El diseño de máquinas de estados es como programar; aproxímesele de esa manera Use lógica programable para simplificar los diseños, reducir el costo y acomodar modificaciones de último minuto Evite el diseño asincrónico. Practique siempre el diseño sincrónico hasta que no aparezca una mejor metodología. Identifique las interfaces asincrónicas inevitables entre diferentes subsistemas y el mundo externo, y provea de sincronizadores confiables. Capturar un glitch (ruido) a tiempo ahorra nueve. John F. Wakerly

Sistemas digitales en hardware El mundo real Los componentes electrónicos físicos son continuos, no discretos Estos son los bloques funcionales de todos los sistemas digitales La transición de un 1 lógico a un 0 lógico no ocurre instantáneamente en los sistemas digitales reales Valores intermedios pueden ser visibles por un instante El álgebra booleana es útil para describir el comportamiento en estado estacionario de los sistemas digitales Hay que estar también al tanto del comportamiento dinámico, variante con el tiempo.

Sistemas digitales en hardware Lógica combinacional vs. lógica secuencial Red implementada con elementos de conmutación o compuertas digitales. La presencia de realimentación distingue a una red secuencial de una combinacional. Lógica combinacional No hay realimentación entre entradas y salidas Las salidas son función únicamente de las entradas e.i., sumador completol : (A, B, Carry In) se mapea en (Sum, Carry Out)

Lógica secuencial entradas y salidas pueden traslaparse las salidas dependen de las entradas y la historia entera de ejecución la red tiene únicamente un número limitado de configuraciones únicas estas configuraciones se llaman estados i.e., un controlador de semáforo secuencia infinitamente por cuatros estados otro componente en las redes de lógica secuencial: elementos de almacenamiento para recordar el estado actual la salida y el estado nuevo son función de las entradas y el estado pasado i.e., las entradas realimentadas son el estado Sistemas sincrónicos Una señal de referencia periódica, el reloj, hace que los elementos de almacenamiento acepten nuevos valores y que el estado cambie Sistemas asincrónicos No existe indicación de cuando cambiará el estado

Representaciones del diseño digital Tablas de verdad Tabular todas las posibles combinaciones de entradas y sus valores asociados de salida Ejemplo: medio sumador suma dos dígitos binarios `para formar Sum y Carry Ejemplo: sumador completo suma dos dígitos binarios y Carry in para formar Sum y Carry Out NOTA: 1 más 1 is 0 con un acarreo de 1 en binario

Representaciones del diseño digital: Álgebra de Boole valores: 0, 1 variables: A, B, C, . . ., X, Y, Z operaciones: NOT, AND, OR, . . . NOT X se escribe como X X AND Y se escribe como X & Y, o a veces X Y X OR Y se escribe como X + Y Las ecuaciones de Boole pueden derivarse de las tablas de verdad: Sum = A B + A B A 1 B 1 Sum 1 Carry 1

Representaciones del diseño digital Compuertas usadas para representar los bloques más primitivos de construcción de sistemas digitales Representación estándar de compuertas lógicas Esquemático de un medio sumador Red o net: colección de alambres conectados eléctricamente Lista de red o netlist: tabulación de las entradas y salidas de las compuertas y las redes conectadas a ellas

Representaciones del diseño digital: compuertas Esquemático de un sumador completo Fan-in: número de entradas de una compuerta Fan-out: número de entradas de compuertas a las que está conectada una salida Las reglas de composición de la tecnología usada imponen los límites sobre el fan-in/fan-out

Representaciones del diseño digital Formas de onda comportamiento dinámico del circuito circuitos reales tienen retardos que no son cero Diagrama de tiempos de un medio sumador retardo de propagación de sum retardo de propagación de sum riesgo de circuito: ¡1 más 0 es 1, no 0! Los cambios en la salida están retrasados de los cambios a la entrada El retardo de propagación es sensible a las rutas en el circuito Las salidas pueden cambiar temporalmente del valor correcto a uno errado y de vuelta al correcto: a esto se le llama ruido, o riesgo (glitch o hazard)

Representaciones del diseño digital Bloques organización estructural del diseño cajas negras con conexiones de entrada y salida corresponde a funciones bien definidas se concentran en cómo se componen los componentes por el cableado Sumador completo realizado en términos de la composición de bloques de medio sumadores Representación en bloque del sumador completo

Representaciones del diseño digital Verificación de formas de onda ¿Se comporta el sumador completo compuesto de la misma manera que la implementación con compuertas? Las formas de onda de ondas Sum, Cout van detrás de los cambios en el tiempo de las entradas ¿Después de cuántas unidades de tiempo luego de que cambia la entrada es seguro examinar las salidas?

Representaciones del diseño digital: Comportamientos ABEL Hardware Description Language MODULE half_adder; a, b, sum, carry PIN 1, 2, 3, 4; TRUTH_TABLE {[a, b] -> [sum, carry]} [0, 0] -> [0, 0]; [0, 1] -> [1, 0]; [1, 0] -> [1, 0]; [1, 1] -> [0, 1]; END half_adder; Especificación de tabla de verdad MODULE half_adder; a, b, sum, carry PIN 1, 2, 3, 4; EQUATIONS SUM = (A & !B) # (!A & B); CARRY = A & B; END half_adder; Especificación de ecuación AND OR NOT

Representaciones del diseño digital: a nivel de compuertas Los lenguajes de descripción de hardware estructuran la función de un diseño digital Ejemplo: sumador de un bit en Verilog //Descripción jerárquica a nivel de compuertas module mediosumador (S, C, x, y); input x, y; output S,C; //usando primitivas definidas en Verilog xor (S, x, y); and (C, x, y): endmodule // Sumador completo module sumadorcompleto (S,C,x,y,x); input x,y,z; wire S1,D1, D2 ; // para pegar semisumadores mediosumador # (30) HA1 (S1, D1, x, y), # (20) HA2 (S, D2, S1, z); or g1 (C, D2, D1) Caja negra vista desde el exterior Comportamiento interno Note la introducción del retardo ¿Cómo hacer un sumador de 4 bits?

Esta especificación Verilog de un semisumador

Representaciones del diseño digital: flujo y comportamiento ; Los modelos AND, OR, NOT están típicamente incluidos en una biblioteca del software y pueden accesarse por medio de operadores // Descripción de flujo de datos de un // sumador de 4 bits module sumador_binario (A, A, B, Cin, SUM, Cout); input [3:0] A, B; input Cin; output [3:0] SUM; output Cout; assign {Cout, SUM} = A + B + Cin; endmodule // Descripción de comportamiento de un // mux 4 a 1 module mux4x1 (a,b,c,d, selct, y); input a,b,c,d input [1:0] select; output y; reg y; always @ (a or b or c or d or selct) case (select) 2’b00: y = a; 2’b01: y = b; 2’b10: y = c; 2’b11: y = d; endcase endmodule Modelo de comportamiento de un Mux 4 a 1

Representaciones del diseño digital: RTL (transferencia de registros) ; module contador(CLK, RESET, CE, LOAD, DIR, DIN, COUNT); // 4-bit synchronous up-down counter with count enable, // asynchronous reset and synchronous load input CLK; input RESET; input CE, LOAD, DIR; input [15:0] DIN; output [15:0] COUNT; reg [15:0] COUNT; always @(posedge CLK or posedge RESET) begin if (RESET) COUNT <= 16'b0; else if (LOAD) COUNT <= DIN; if (CE) if (DIR) COUNT <= COUNT + 1; COUNT <= COUNT - 1; end endmodule Usada para representar operaciones complejas con registros

Representaciones del diseño digital: ¿Cómo probar el diseño? module testbench(); // Inputs reg CLK; reg RESET; reg CE; reg LOAD; reg DIR; reg [15:0] DIN; // Outputs wire [15:0] COUNT; // Instantiate the UUT contador uut ( .CLK(CLK), .RESET(RESET), .CE(CE), .LOAD(LOAD), .DIR(DIR), .DIN(DIN), .COUNT(COUNT) ); // Initialize Inputs initial begin CLK = 0; RESET = 0; CE = 0; LOAD = 0; DIR = 0; DIN = 0; forever #25 CLK = !CLK; end ; initial begin #100 RESET = 1; #100 RESET = 0; DIN = 4'b1111; #100 CE = 1; #500 DIR = 1; DIN = 4'b1001; #800 $stop; end always @(posedge CLK) if (COUNT == 4’hc) begin $display("La cuenta llegó a 12 en %0d",$time); LOAD = 1; else LOAD = 0; endmodule

Prototipo rápido de sistemas electrónicos Metas: rápida construcción de sistemas digitales para probar conceptos rápida exploración de aproximaciones alternativas al diseño desempeño comprometido para alcanzar más rápida implementación Técnicas: herramientas de diseño ayudado por computadora CAD simulación: halle cómo se comportará el diseño antes de construirlo síntesis: genere descripciones detalladas, como esquemáticos desde descripciones de alto nivel, como ecuaciones de Boole tecnologías de veloz cambio de implementción lógica programamble

Prototipo rápido de sistemas electrónicos : CAD Herramientas de síntesis crean porciones del diseño desde otras porciones mapea representaciones abstractas en representaciones físicas Síntesis de comportamiento Síntesis lógica Ecuaciones de Boole Verilog Esquemático o archivos para colocar y enrutar las compuertas en un IC Bibliotecas de compuertas ABEL Se mapea la representación de comportamiento en una representación más optimizada

Prototipo rápido de sistemas electrónicos Simulación programa que ejecuta dinámicamente una descripción abstracta de un diseño se obtiene verificación del funcionamiento correcto y algo de información de temporización antes de construir el circuito físicamente más fácil de chequear y depurar una simulación que un diseño implementado la simulación no garantiza que un diseño funcionará es tan buena como los casos de prueba intentados no cheque problemas eléctricos no contempla algunas de las realidades de un sistema real Simulación lógica Se describe el diseño en términos de compuertas se verifican tablas de verdad Simulación de temporización se analizan formas de onda de entradas y salidas se modelan los retardos de compuertas ¿son las formas de onda las esperadas? se identifican los cuellos de botella

Prototipo rápido de sistemas electrónicos Tecnologías de rápida implementación se puede personalizar la función e interconexión de un componente alternativa a las compuertas discretas y el alambrado se reduce la complejidad del alambrado y el número de compuertas facilita los cambios rápidos de diseño y las mejoras

¿Qué vamos a hacer aquí? Usar las herramientas de Mentor Graphics y Xilinx Inc. para generar diseños digitales avanzados Para ello necesitaremos Dominar el flujo de trabajo que lleva de una idea para la solución de un problema con lógica digital hasta la generación de un prototipo programable que implemente dicha solución

¿Qué deben hacer ahora? Solicitar sus claves de acceso al laboratorio de diseño en VLSI si desean usar las herramientas del mismo Aprender a invocar las herramientas de Mentor Graphics desde linux Usar el ISE WebPack de Xilinx para los procesos de síntesis Estudiar mucho Verilog