EL-4307
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
Diapositiva No. 1-1
EL-4307
El proceso de diseño
Design
Implementation
Debug
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)
Diapositiva No. 1-2
EL-4307
Elementos del diseño digital moderno
Representaciones, tecnologías y prototipos
Comportamiento
Bloques
Representaciones
del diseño
Formas de onda
Compuertas
Tablas de verdad
Álgebra booleana
Tecnologías de prototipo
Conmutadores
TTL
MOS
Simulación Síntesis
PAL, PLA, ROM, CPLD, FPGA
Diseño ayudado
por computadora (CAD)
ASIC
Tecnologías
de circuitos
Diapositiva No. 1-3
EL-4307
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
Diapositiva No. 1-4
EL-4307
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.
Diapositiva No. 1-5
John F.
Wakerly
EL-4307
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
+5
Logic 1
V
Logic 0
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
0
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.
Diapositiva No. 1-6
EL-4307
Sistemas digitales en hardware
Lógica combinacional vs. lógica secuencial
X1
X2
Xn
-
Sw itc hing
Netw or k
Z1
Z2
-
Zm
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)
A
B
Cin
Full
Adder
Sum
Cout
Diapositiva No. 1-7
EL-4307
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
Diapositiva No. 1-8
EL-4307
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
A
B
Sum
Carry
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
NOTA: 1 más 1 is 0 con un acarreo de
1 en binario
Ejemplo: sumador completo
suma dos dígitos binarios y
Carry in para formar Sum y
Carry Out
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
Cin
0
1
0
1
0
1
0
1
Sum C out
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
Diapositiva No. 1-9
EL-4307
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:
A B
0
0
1
1
0
1
0
1
Sum Carry
0
1
1
0
Sum = A B + A B
0
0
0
1
Diapositiva No. 1-10
EL-4307
Representaciones del diseño digital
Compuertas
usadas para representar los bloques más primitivos de construcción
de sistemas digitales
Representación
Esquemático de un medio sumador
estándar de compuertas lógicas
A
Inverter
AND
Net 1
SUM
B
OR
Net 2
CARRY
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
Diapositiva No. 1-11
Representaciones del diseño digital: compuertas
EL-4307
Esquemático de un sumador completo
\Cin \ B \ A
Cin
B
A
A
B
SUM
Cin
A
B
Cout
B
Cout
Cin
A
Cin
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
Diapositiva No. 1-12
EL-4307
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
100
200
A
B
SUM
CARRY
retardo
retardo
de propagación de
de propagación de
sum
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)
Diapositiva No. 1-13
EL-4307
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
A A
Sum
Sum
HA
B B Carry
A
Sum
HA
B Carry
A
B
Cout
Cin
Sumador completo realizado en términos
de la composición
de bloques de medio sumadores
Cin
Sum
A
B
Sum
FA
Cout
Cin Cout
Representación en bloque
del sumador completo
Diapositiva No. 1-14
EL-4307
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?
100
Glitch
200
A
B
Cin
Sum
Cout
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?
Diapositiva No. 1-15
EL-4307
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]}
Especificación
de tabla de verdad
[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;
Especificación
de ecuación
EQUATIONS
SUM = (A & !B) # (!A & B);
CARRY = A & B;
END half_adder;
AND
OR
NOT
Diapositiva No. 1-16
EL-4307
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?
Diapositiva No. 1-17
EL-4307
Esta especificación Verilog de un semisumador
A
s1
i1
a1
s3
o1
SUM
a2
B
i2
s4
s2
Carry
a3
Diapositiva No. 1-18
EL-4307
Representaciones del diseño digital: flujo y comportamiento
;
// 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
Los modelos AND, OR, NOT
están típicamente incluidos
en una biblioteca del
software y pueden accesarse
por medio de operadores
Modelo de comportamiento
de un Mux 4 a 1
Diapositiva No. 1-19
EL-4307
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
Diapositiva No. 1-20
EL-4307
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
Diapositiva No. 1-21
Prototipo rápido de sistemas electrónicos
EL-4307
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
Diapositiva No. 1-22
EL-4307
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
Verilog
Síntesis
de comportamiento
ABEL
Ecuaciones
de Boole
Síntesis
lógica
Bibliotecas
de compuertas
Se mapea la representación de comportamiento
en una representación más optimizada
Diapositiva No. 1-23
Esquemático
o archivos
para colocar y
enrutar las
compuertas en
un IC
EL-4307
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
Diapositiva No. 1-24
EL-4307
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
Diapositiva No. 1-25
EL-4307
¿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
Diapositiva No. 1-26
EL-4307
¿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
Diapositiva No. 1-27
Descargar

Chapter # 1: Introduction Contemporary Logic Design