Post on 03-Jan-2016
description
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
alchacon@itcr.ac.cr
http://www.ie.itcr.ac.cr
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
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
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
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
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
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
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
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
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:
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
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
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
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
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?
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
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?
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
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
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
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
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
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
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
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
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
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