Introducción Diseño digital contemporáneo

27
EL-4307 Diapositiva No. 1-1 Introducción Diseño digital contemporáneo Laboratorio de Diseño de Sistemas Digitales I semestre 2004 Profesor: Alfonso Chacón Rodríguez [email protected] http:// www.ie.itcr.ac.cr

description

Introducción Diseño digital contemporáneo. Laboratorio de Diseño de Sistemas Digitales I semestre 2004 Profesor: Alfonso Chacón Rodríguez [email protected] 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? - PowerPoint PPT Presentation

Transcript of Introducción Diseño digital contemporáneo

Page 1: Introducción Diseño digital contemporáneo

EL-4307

Diapositiva No. 1-1

Introducción

Diseño digital contemporáneo

Laboratorio de Diseño de Sistemas Digitales

I semestre 2004

Profesor: Alfonso Chacón Rodríguez

[email protected]

http://www.ie.itcr.ac.cr

Page 2: Introducción Diseño digital contemporáneo

EL-4307

Diapositiva No. 1-2

El proceso de diseño

DiseñoConcepto 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ónEnsamble los bloques primitivos en bloques más complejosAlambre la composición resultanteEscoja alternativas para mejorar el diseño

Debug o depuraciónSistemas defectuosos: fallas de diseño, composición y componentesDiseñe para hacer la depuración más efectivaHabilidades para la formación de hipótesis y resolución (troubleshooting)

Implementation

Design

Debug

Page 3: Introducción Diseño digital contemporáneo

EL-4307

Diapositiva No. 1-3

Elementos del diseño digital moderno

Tecnologías de prototipo

Representacionesdel diseño

Tecnologías de circuitos

MOS

TTL

Comportamiento

Bloques

Formas de onda

Compuertas

Tablas de verdad

Álgebra booleana

Conmutadores

Simulación Síntesis PAL, PLA, ROM, CPLD, FPGA

Diseño ayudado por computadora (CAD)

Representaciones, tecnologías y prototipos

ASIC

Page 4: Introducción Diseño digital contemporáneo

EL-4307

Diapositiva No. 1-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

Page 5: Introducción Diseño digital contemporáneo

EL-4307

Diapositiva No. 1-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

Page 6: Introducción Diseño digital contemporáneo

EL-4307

Diapositiva No. 1-6

Sistemas digitales en hardware

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áneamenteen los sistemas digitales reales

Valores intermedios pueden ser visibles por un instante

El álgebra booleana es útil para describir el comportamiento en estado estacionariode los sistemas digitales

Hay que estar también al tanto del comportamiento dinámico, variante con el tiempo.

El mundo real

+5

V

0

Logic 1

Logic 0

Page 7: Introducción Diseño digital contemporáneo

EL-4307

Diapositiva No. 1-7

Sistemas digitales en hardware

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)

Red implementada con elementos de conmutación o compuertas digitales.La presencia de realimentacióndistingue a una red secuencial de una combinacional.

Lógica combinacional vs. lógica secuencial

- - -

X 1 X 2 X n

Switching Network

Z 1 Z 2 Z m

- - -

A B Cin

Full Adder

Sum Cout

Page 8: Introducción Diseño digital contemporáneo

EL-4307

Diapositiva No. 1-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ónicosUna señal de referencia periódica, el reloj, hace que loselementos de almacenamiento acepten nuevos valoresy que el estado cambie

Sistemas asincrónicosNo existe indicación de cuando cambiará el estado

Page 9: Introducción Diseño digital contemporáneo

EL-4307

Diapositiva No. 1-9

Representaciones del diseño digital

Tablas de verdad

Tabular todas las posibles combinaciones de entradasy 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

A B

0 0 1 1

0 1 0 1

Sum Carry

0 1 1 0

0 0 0 1

A 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1

C in 0 1 0 1 0 1 0 1

S um 0 1 1 0 1 0 0 1

C out 0 0 0 1 0 1 1 1

Page 10: Introducción Diseño digital contemporáneo

EL-4307

Diapositiva No. 1-10

Representaciones del diseño digital: Álgebra de Boole

NOT X se escribe como XX AND Y se escribe como X & Y, o a veces X YX OR Y se escribe como X + Y

valores: 0, 1variables: A, B, C, . . ., X, Y, Zoperaciones: NOT, AND, OR, . . .

A

0011

B

0101

Sum

0110

Carry

0001

Sum = A B + A B

Las ecuaciones de Boole pueden derivarse de las tablas de verdad:

Page 11: Introducción Diseño digital contemporáneo

EL-4307

Diapositiva No. 1-11

Representaciones del diseño digitalCompuertas

usadas para representar los bloques más primitivos de construcciónde sistemas digitales

Representaciónestándar de compuertas lógicas Esquemático de un medio sumador

Lista de red o netlist: tabulación de las entradas y salidas delas compuertas y las redes conectadas a ellas

Red o net: colección de alambres conectados eléctricamente

Inverter

AND

OR

Net 1

Net 2

A

B

CARR Y

SUM

Page 12: Introducción Diseño digital contemporáneo

EL-4307

Diapositiva No. 1-12

Representaciones del diseño digital: compuertasEsquemático de un sumador completo

Fan-in: número de entradas de una compuertaFan-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 loslímites sobre el fan-in/fan-out

Cin B A \Cin \ B \ A

A

B

Cin SUM

Cout

A B

B C in

A C in

C out

Page 13: Introducción Diseño digital contemporáneo

EL-4307

Diapositiva No. 1-13

Representaciones del diseño digitalFormas de onda

comportamiento dinámico del circuitocircuitos reales tienen retardos que no son cero

Diagrama de tiempos de un medio sumador

riesgo de circuito: ¡1 más 0 es 1, no 0!

retardode propagación de

sum

Los cambios en la salida están retrasados de los cambios a laentrada

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)

100 200

A B SUM CARR Y

retardode propagación de

sum

Page 14: Introducción Diseño digital contemporáneo

EL-4307

Diapositiva No. 1-14

Representaciones del diseño digitalBloques

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érminosde la composición

de bloques de medio sumadores

Representación en bloquedel sumador completo

Sum

Cout

A

B

Cin

A

B

Sum

Carry HA

A

B

Sum

Carry HA

Sum

Cout

A

B

Cin

A

Cin

Sum

Cout

F A B

Page 15: Introducción Diseño digital contemporáneo

EL-4307

Diapositiva No. 1-15

Glitch 100 200

A B Cin Sum Cout

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 delos 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?

Page 16: Introducción Diseño digital contemporáneo

EL-4307

Diapositiva No. 1-16

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;

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ónde tabla de verdad

Especificaciónde ecuación

AND OR NOT

Page 17: Introducción Diseño digital contemporáneo

EL-4307

Diapositiva No. 1-17

Representaciones del diseño digital: a nivel de compuertas

//Descripción jerárquica a nivel de compuertasmodule mediosumador (S, C, x, y); input x, y; output S,C;//usando primitivas definidas en Verilogxor (S, x, y);and (C, x, y):endmodule

// Sumador completomodule 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 vistadesde el exterior

Comportamiento internoNote la introducción

del retardo

Los lenguajes de descripción de hardwareestructuran la función de un diseño digital

Ejemplo: sumador de un bit en Verilog

¿Cómo hacer un sumador de 4 bits?

Page 18: Introducción Diseño digital contemporáneo

EL-4307

Diapositiva No. 1-18

Esta especificación Verilog de un semisumador

A

SUM

Carry

s4

s3 a1

a2

a3

o1

i1

i2 s2

s1

B

Page 19: Introducción Diseño digital contemporáneo

EL-4307

Diapositiva No. 1-19

Representaciones del diseño digital: flujo y comportamiento

;

Los modelos AND, OR, NOT están típicamente incluidos

en una biblioteca delsoftware y pueden accesarse

por medio de operadores

// Descripción de flujo de datos de un // sumador de 4 bitsmodule 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

Modelo de comportamientode un Mux 4 a 1

// Descripción de comportamiento de un // mux 4 a 1module 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; endcaseendmodule

Page 20: Introducción Diseño digital contemporáneo

EL-4307

Diapositiva No. 1-20

Representaciones del diseño digital: RTL (transferencia de registros)

;

Usada para representaroperaciones complejas

con 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 endendmodule

Page 21: Introducción Diseño digital contemporáneo

EL-4307

Diapositiva No. 1-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

Page 22: Introducción Diseño digital contemporáneo

EL-4307

Diapositiva No. 1-22

Prototipo rápido de sistemas electrónicos

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

Metas:

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

Page 23: Introducción Diseño digital contemporáneo

EL-4307

Diapositiva No. 1-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íntesisde comportamiento

Síntesisde comportamiento

Verilog Ecuacionesde Boole

Síntesislógica

Síntesislógica

Bibliotecasde compuertas

Esquemáticoo archivospara colocar yenrutar lascompuertas enun IC

Se mapea la representación de comportamiento en una representación más optimizada

ABEL

Page 24: Introducción Diseño digital contemporáneo

EL-4307

Diapositiva No. 1-24

Prototipo rápido de sistemas electrónicosSimulació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ógicaSe describe el diseño en términos de compuertasse verifican tablas de verdad

Simulación de temporización

se analizan formas de onda de entradas y salidasse modelan los retardos de compuertas¿son las formas de onda las esperadas?se identifican los cuellos de botella

Page 25: Introducción Diseño digital contemporáneo

EL-4307

Diapositiva No. 1-25

Prototipo rápido de sistemas electrónicosTecnologí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

Page 26: Introducción Diseño digital contemporáneo

EL-4307

Diapositiva No. 1-26

¿Qué vamos a hacer aquí?

Para ello necesitaremos

• Usar las herramientas de Mentor Graphics y Xilinx Inc. para generar diseños digitales avanzados

• 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

Page 27: Introducción Diseño digital contemporáneo

EL-4307

Diapositiva No. 1-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