1 / 27

Introducción Diseño digital contemporáneo

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?

steel-hunt
Download Presentation

Introducción Diseño digital contemporáneo

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IntroducciónDiseñ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

  2. 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)

  3. Elementos del diseño digital moderno Representaciones, tecnologías y prototipos Representaciones del diseño Comportamiento Bloques Formas de onda Compuertas Tablas de verdad Álgebra booleana Conmutadores 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

  4. 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

  5. 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

  6. 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.

  7. 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)

  8. 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

  9. 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

  10. 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 Carry 0 0 0 1 A 0 0 1 1 B 0 1 0 1 Sum 0 1 1 0

  11. 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

  12. 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

  13. 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)

  14. 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 Representación en bloque del sumador completo Sumador completo realizado en términos de la composición de bloques de medio sumadores

  15. 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?

  16. 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; Representaciones del diseño digital: Comportamientos ABEL Hardware Description Language 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 NOT AND OR

  17. 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; output S,C; 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) endmodule Caja negra vista desde el exterior Comportamiento interno Note la introducción del retardo ¿Cómo hacer un sumador de 4 bits?

  18. Esta especificación Verilog de un semisumador

  19. 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

  20. 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 begin if (LOAD) COUNT <= DIN; else if (CE) if (DIR) COUNT <= COUNT + 1; else COUNT <= COUNT - 1; end end endmodule Usada para representar operaciones complejas con registros

  21. 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; end else LOAD = 0; endmodule

  22. 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

  23. 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 lógica Síntesis de comportamiento 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

  24. 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

  25. 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

  26. ¿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

  27. ¿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

More Related