Escolar Documentos
Profissional Documentos
Cultura Documentos
2.
3.
5.
ii
ndice
Simulacin funcional del latch SR................................................................. 76
Simulacin con retardo unitario del latch SR ................................................ 77
Latch D sncrono............................................................................................ 78
Biestable D maestro esclavo .......................................................................... 79
Biestable D disparado por flanco con entradas asncronas de set y clear ...... 79
Autocuestionario (a rellenar ANTES de la sesin de laboratorio)........................ 81
Cuestionario de laboratorio (a rellenar durante la sesin de laboratorio) .......... 81
6.
Errores ms frecuentes............................................................................................ 95
Errores generales................................................................................................... 95
Errores en el editor esquemtico ........................................................................... 96
Errores en el simulador ......................................................................................... 96
Bibliografa ............................................................................................................... 97
iii
Anexo: Algunas prcticas tienen una seccin titulada "Anexo" que son
simplemente algunos diagramas esquemticos a mayor escala.
vii
Introduccin
En trminos muy generales, el proceso de diseo de un sistema digital puede
definirse como la secuencia de pasos que llevan desde el concepto de un producto
digital hasta los esquemas de fabricacin que describen cmo hacer dicho producto.
Con pequeas variaciones inherentes a las empresas, a los productos y a las personas,
los pasos en este proceso de diseo son la especificacin del diseo, el desarrollo de
una biblioteca de componentes bsicos, la sntesis del diseo, el anlisis del diseo,
la documentacin y la fabricacin del circuito.
Los diseadores utilizan normalmente herramientas CAD (Computer Aided Design)
para facilitar algunas de las etapas anteriores. Estas herramientas CAD pueden
dividirse en cinco categoras diferentes segn la forma de usarlas en el proceso de
diseo, herramientas para captura y modelado, para sntesis, para verificacin y
simulacin, para ubicacin e interconexionado y para generacin de pruebas.
Las herramientas de captura y modelado permiten al diseador seleccionar un
componente de un men, situarlo en la pantalla y conectarlo a otros componentes
mediante lneas que representan cables. Este tipo de representacin estructural recibe
el nombre de esquemtica y las herramientas que ayudan a esta tarea se denominan
herramientas de captura de esquemas. Como alternativa puede utilizarse un lenguaje
para la descripcin del hardware.
Figura 1-10 Esquema del circuito tras aadir la puerta NAND y los terminales
de entrada y salida.
El siguiente paso es conectar los smbolos entre s. El editor de esquemas est en el
modo de dibujar smbolos, y antes que nada es necesario cambiarlo al modo de
trazado de conexiones. Para cambiar el editor a este modo de funcionamiento
seleccionamos Mode Draw Wires, o bien pulsamos el botn . A continuacin
pulsamos en el smbolo de la entrada X y luego en el terminal de entrada superior
8
Figura 1-12 Ventana para exportar una netlist en formato EDIF 200.
Ya hemos terminado todo el trabajo a realizar en el editor de esquemas, por lo que
regresaremos al gestor de proyectos seleccionando File Exit. Hasta ahora hemos
creado un esquema de un circuito, pero no hemos especificado todava que ese
esquema forma parte del proyecto actual. Para especificarlo seleccionamos
Document Add, con lo que aparece la ventana de la Figura 1-13. Pulsamos
entonces sobre el fichero nand.sch y luego en el botn Abrir.
10
13
14
Introduccin
Los circuitos combinacionales son aquellos circuitos digitales en los cuales los
valores de la salida en un instante cualquiera nicamente dependen de los valores de
las entradas en ese instante, sin importar cuales han sido las entradas en los instantes
de tiempos anteriores.
En esta segunda prctica capturaremos mediante el editor de esquemas la estructura
de un circuito digital combinacional sencillo y simularemos su comportamiento. A
posteriori, lo extenderemos aumentando su complejidad.
Objetivos
De manera general, los objetivos de esta segunda prctica son los siguientes:
1. Estudio de los circuitos combinacionales.
2. Adquisicin de destreza en la captura de diseos esquemticos complejos.
3. Profundizacin en las posibilidades avanzadas de las herramientas de diseo.
4. Manejo de vectores de prueba complejos.
5. Ilustrar la necesidad del diseo jerrquico y de otras tcnicas de captura de
esquemas.
En esta prctica comenzaremos realizando la captura y simulacin de un circuito
combinacional correspondiente a un sumador binario de 1 bit. Este esquema lo
verificaremos mediante la herramienta de simulacin. En un segundo paso
extenderemos el sumador binario de un nico bit para que sea posible la suma de
nmeros de dos bits, y finalmente extenderemos el sumador a 8 bits. Este circuito
15
INPUT0
INPUT1
CARRY_INPUT
SUM
CARRY_OUTPUT
17
18
Figura 2-6 Ventana para aadir el esquema add1.SCH del proyecto Add1_95 al
proyecto Add2_95.
Iniciamos el editor de esquemas, usando el botn
, o bien en la ventana principal
del gestor de proyectos, seleccionando ToolsDesign Entry Schematic Editor.
Para mayor claridad guardamos el esquema con el nombre ADD2.SCH indicando
con este nombre que el esquema corresponde a un sumador de dos bits. Para ello
seleccionamos File->Save As... y en el campo del nombre del archivo escribimos
ADD2.SCH.
Un sumador binario de dos bits tiene la misma estructura que un sumador binario de
un bit, replicada dos veces.
Para copiar esta estructura colocamos primero el editor de esquemticos en el modo
de seleccin, con la opcin del men principal ModeSelect and Drag.
Seleccionamos entonces todo el diseo. Marcamos un recuadro con el ratn
alrededor del esquema, picando primero con el botn izquierdo en la esquina
superior izquierda de un rea imaginaria que vaya a contener todo el dibujo y
moviendo el ratn hasta la esquina inferior derecha de esa rea. Si lo hemos hecho
bien tendremos que ver todos los componentes del esquema seleccionados en color
rojo. A continuacin copiamos en el portapapeles el esquema usando en la barra del
men principal la opcin EditCopy y luego lo recuperamos del portapapeles con
la opcin EditPaste. Aparecer entonces un recuadro que contiene todo el diseo
en su interior, tal y como se muestra en la Figura 2-7. Movemos el recuadro debajo
de los componentes que ya tenemos situados, de manera que no se solapen entre s, y
lo situamos definitivamente picando con el botn izquierdo. Si lo hemos hecho mal,
20
21
Figura 2-9 Esquema tras haber cambiado los nombres de los terminales
Algunos terminales en el esquema del sumador binario de dos bits son diferentes a
los terminales en el sumador binario de un bit. En concreto tenemos que realizar un
encadenamiento de los acarreos entre las etapas, es decir, tenemos que unir la seal
CO0 con CI1, y estas seales quedarn como seales internas al diseo. Esto quiere
decir que desde un punto de vista externo carecen de significado. Por ello, hemos de
eliminarlos. Para borrar cualquier componente primero lo seleccionamos con el ratn
picando con el botn izquierdo y luego pulsamos la tecla Suprimir. Hacemos este
proceso para borrar el OBUF asociado al terminal CO0, el propio terminal CO0, el
IBUF asociado al terminal CI1 y el terminal CI1.
Conectamos entonces la salida y la entrada de las puertas lgicas donde antes estaban
conectados los terminales CO0 y CI1. El esquema final debe ser equivalente al de la
Figura 2-10.
22
23
Figura 2-12 Ventana de visualizacin de las seales tras definir los buses para
las entradas y las salidas.
Es posible cambiar el nombre de los buses simplemente seleccionando el nombre del
bus al cual queremos cambiar el nombre. Luego seleccionamos SignalBusBus
Name... y escribimos el nuevo nombre. Tambin es posible cambiar el formato de
representacin de los valores en los buses a binario, octal, decimal o hexadecimal.
Para cambiar un valor, por ejemplo a binario, primero seleccionamos el bus y luego
24
25
26
28
29
Introduccin
El diseo de determinados circuitos digitales por mtodos puramente formales, tales
como la especificacin de su funcionamiento mediante una tabla de verdad y su
posterior simplificacin empieza a ser inviable a medida que aumenta el nmero de
entradas del circuito. Por ejemplo, la especificacin de la tabla de verdad para un
sumador binario de 8 bits implicara especificar, para cada una de las 28 x 28 = 65536
combinaciones de entrada, los correspondientes valores de las salidas, lo cual hace
impracticable la construccin de dicha tabla de verdad.
La solucin para la construccin de tales circuitos est en la capacidad humana de
descomponer un problema en problemas ms simples y luego combinar las
soluciones de los problemas ms simples para obtener la solucin del problema
original.
Para abordar el diseo del circuito sumador binario de 8 bits, la solucin fue
considerarlo como cuatro sumadores de dos bits y estos a su vez formados por
sumadores de un bit. El resultado es un diseo jerrquico por niveles, tal y como se
muestra en la Figura 3-1.
31
32
33
A
32
32
CO
S0
32
Desbordamiento
S1
B3
A
E
L
E
C4
A2
X3
Y3
X2
Y2
B1
X1
Y1
B0
A
E
L
E
C1
1 bit
F2
A0
A
E
L
E
C2
1 bit
F3
A1
A
E
L
E
C3
1 bit
B2
X0
Y0
C0
1 bit
F1
F0
Figura 3-3 Sumador de 4 bits con ampliadores aritmticos (AE) y lgicos (LE).
Como la ALU en cuestin realiza cuatro operaciones aritmticas y cuatro
operaciones lgicas, es necesario introducir una variable de control de modo, M, que
34
C0
Decremento
A-1
Todos
unos
Suma
A+B
Resta
A+B+1 A
Incremento
Todos
ceros
35
C0
Complemento
AND
A AND B A AND B 0
Identidad
OR
A OR B
A OR B
Ai
Ai Bi
Ai
Ai+Bi
Ai
36
37
Figura 3-7 Ventana para aadir el esquema del sumador binario de 1 bit al
proyecto ALU4_95.
Pica dos veces en el nombre del esquema para abrirlo. Una vez que est abierto el
esquema realiza los siguientes cambios:
1. Pica dos veces sobre el terminal INPUT0. Cuando aparezca la ventana para
los terminales de entrada y salida, Figura 3-8, cambia el nombre del terminal
de INPUT0 a A. De la misma manera cambia INPUT1 por B,
CARRY_INPUT por CIN y CARRY_OUTPUT por COUT.
2. Realiza una conexin directa entre los terminales de entrada y la salida de los
IBUF, y entre los terminales de salida y la salida de los OBUF.
3. Elimina los buffers IBUF y los buffer OBUF.
38
39
40
41
42
43
44
45
Complemento
AND
Identidad
Or
Decremento
Suma
Resta
Incremento
48
Anexo
49
50
51
52
Introduccin
En las prcticas anteriores hemos realizado simulaciones funcionales para comprobar
el funcionamiento del diseo lgico. En las simulaciones funcionales los retrasos de
las puertas lgicas son siempre cero. Esto significa que las salidas cambian
inmediatamente como respuesta a los cambios en los valores de las seales de
entrada, lo que no es ms que una simplificacin de la realidad.
A pesar de lo ideal que pueden ser las simulaciones funcionales no por ello dejan de
ser interesantes, ya que permiten visualizar claramente las relaciones de causa y
efecto, analizar fcilmente los cronogramas y verificar el comportamiento funcional
del circuito. Adems, las simulaciones lgicas son la nica manera de detectar
comportamientos oscilatorios en los diseos, que seran imposibles de comprobar
cuando las puertas tienen retardos.
A medida que vamos avanzando en el diseo se hacen necesarios otros modos de
simulacin. Por ejemplo, si queremos conocer cul es la frecuencia mxima a la que
puede operar el circuito diseado, o saber si las seales de entrada estn activas el
suficiente tiempo para que puedan funcionar correctamente los componentes que
utilizamos en los circuitos, es necesario que las simulaciones tengan en cuenta los
retardos.
Las causas de los retardos en los circuitos son variadas. Por una parte estn los
retardos debidos a las conexiones entre puertas. En cada nodo de un circuito real hay
una capacidad parsita asociada. Estas capacidades actan como almacenes
53
54
00 01 11 10
0
1
1
4
1 1
1
1
1
b
55
56
57
00
01
0
10
3
1
1
1
4
11
58
61
Figura 4-13 Esquema del ampliador aritmtico modificado para evitar riesgos
estticos.
En esta figura vemos cmo los pulsos espurios en la seal de salida han desaparecido
como consecuencia de aadir un nuevo primo implicante en la implementacin de la
funcin lgica de salida.
62
para simular.
64
65
Introduccin
Todas las prcticas realizadas hasta ahora han sido de circuitos combinacionales. La
caracterstica principal de todos ellos es el hecho de que los valores de salida se
calculan exclusivamente a partir de los valores actuales en las entradas. En cambio
los circuitos secuenciales difieren debido a que contienen elementos de memoria,
mientras que los combinacionales no. Como resultado, los valores de salida de los
componentes se calculan utilizando tanto los valores de entrada actuales como los
valores de entrada anteriores.
El elemento estructural bsico de los circuitos secuenciales es el latch SR, que
consta en una posible implementacin de dos puertas NOR conectadas de forma
cruzada. Como puede verse en la Figura 5-1, el latch SR tiene dos seales de entrada:
la seal de puesta a 1, S (set) y la seal de puesta a 0, (reset); tambin tiene dos
seales de salida Q y Q (en la figura llamada AUX por razones tipogrficas);
finalmente, tiene dos estados: un estado de puesta a uno (o set) cuando Q=1 (Q=0) y
un estado de puesta a cero (o reset) cuando Q=0 (Q=1).
67
Q(actual)
Q(siguiente)
Q(siguiente)
Q(siguiente)
R Q(actual) Q(siguiente)
X X
X X
indefinido
X 0
X 1
70
Figura 5-6 Biestable D disparado por flanco con entradas asncronas de clear y
preset.
Adems de los biestables D existen otros. En total son cuatro las clases de biestables:
SR, JK, D y T. Se diferencian en el nmero de entradas y en la respuesta que
proporcionan a valores diferentes de las seales de entrada. Las cuatro clases de
biestables se indican en la Tabla 5-5. Cada uno de estos biestables puede
caracterizarse por su smbolo grfico, por su tabla caracterstica, su ecuacin
caracterstica y por su tabla de excitacin.
71
Smbolo del
biestable
Tabla
caracterstica
Ecuacin
caracterstica
Tabla de
excitacin
SR
S
R Q(t+1)
Q(t)
K Q(t+1)
Q(t)
Q(t) Q(t+1) S R
0
0 X
1 0
0 1
X 0
Q(t+1) = S +
RQ
JK
Q(t) Q(t+1) J K
0
0 X
1 X
X 1
Q(t)
X 0
Q(t+1)
Q(t+1)
Q(t)
Q(t)
Q(t+1)=JQ+KQ
Q(t) Q(t+1)
Q(t+1) = D
Q(t) Q(t+1)
Q(t+1) = TQ
+TQ
Latch SR
Inicia la herramienta Xilinx. Luego crea un proyecto de nombre delay, tal y como
indica la Figura 5-7. En el campo directorio debes hacer referencia a tu directorio
personal de trabajo.
73
74
75
76
para
77
Latch D sncrono
Con el objeto de evitar el comportamiento oscilatorio del latch SR es posible
construir otro tipo de latch a partir de l, llamado latch D que, sin disminuir la
funcionalidad del mismo, evita el problema de las oscilaciones.
En la Figura 5-4 est la estructura de un latch D sncrono.
La parte prctica de este apartado consiste en realizar la simulacin funcional y
unitaria del latch D sncrono. Los estmulos a aplicar a las seales C y D son las
mostradas en la Figura 5-17. Para ello debers editar las frmulas correspondientes.
78
79
Figura 5-20 Simulacin con retardo unitario del biestable D disparado por
flanco.
En esta simulacin las seales de entrada de PRS y CLR estn fijas a valor alto.
Modifica estas seales asignndoles frmulas, de manera que pueda observarse su
funcionalidad en el resultado de la simulacin.
80
81
Introduccin 83
Objetivos 83
Desarrollo de la prctica 84
Multiplicador binario 84
Diseo de la ruta de datos del multiplicador binario de 4 bits 84
Diseo de la unidad de control del multiplicador binario de 4 bits 87
Diseo del multiplicador binario de 4 bits 90
Realizacin prctica 90
Implementacin de la unidad de control 91
Implementacin del camino de datos 91
Implementacin del multiplicador de 4 bits 92
Anexo 93
Autocuestionario (a rellenar ANTES de la sesin de laboratorio) 94
Cuestionario de laboratorio (a rellenar durante la sesin de laboratorio) 94
Introduccin
Los caminos datos se emplean en todas las implementaciones de procesadores
estndar y de ASIC (circuitos integrados de propsito especfico) para realizar
clculos numricos complejos y manipular datos. Un camino de datos consta de
elementos de memoria temporal, adems de unidades aritmticas, lgicas, y de
desplazamiento.
En estos caminos de datos tiene lugar la ejecucin de algoritmos bajo la supervisin
de la unidad de control. Una unidad de control no es ms que la implementacin de
una mquina de estados finitos en la que, en cada estado, dependiendo de los valores
de la seales provenientes del camino de datos o externas, se produce la correcta
activacin de las seales de control del camino de datos.
En esta prctica se disear una unidad de control para un camino de datos que
realizar la operacin de multiplicacin binaria.
Objetivos
Los objetivos de esta prctica son:
1. Diseo, implementacin y depuracin de un circuito secuencial.
83
84
Un algoritmo de multiplicacin: P = X x Y
Inicio
Estado S0
CX = X;
CY=Y;
P ='0';
Estado S1
CY='0'?
NO
P = CX + P;
CY = CY -1;
Estado S2
Fin
85
Tipo
Funcionalidad
CLK
LDX
LDY
LDP
RSP
DCY
CYZ
Salida
Figura 6-3 Bloque funcional del camino de datos para el multiplicador binario
de 4 bits.
Para completar el diseo y que se realice la operacin de multiplicacin, es necesario
que las seales de entrada tomen los valores adecuados, en funcin de qu valores
vayan teniendo las seales de salida.
El componente encargado de activar y desactivar las seales de control es la unidad
de control y su comportamiento se especificar mediante un diagrama de estados.
87
89
Figura 6-7 Unidad de control y camino de datos del multiplicador binario de 4 bits.
En la Figura 6-7 el nico detalle significativo es el hecho que las seales de reloj de
la unidad de control y del camino de datos estn invertidas una respecto de la otra.
Esto es as ya que los cambios de estado ocurren en la transicin positiva del reloj y
por tanto el funcionamiento del camino de datos debe producirse en las transiciones
negativas, lo cual es equivalente a invertir la seal de reloj conectada a la ruta de
datos.
Realizacin prctica
La realizacin prctica consiste en la implementacin de la unidad de control a partir
de un diseo propio del alumno, la captura del esquemtico del camino de datos, la
simulacin de ambos mdulos de manera independiente y posteriormente la unin de
los mdulos para realizar la operacin de multiplicacin.
Una caracterstica del programa, que resulta muy til para depurar la mquina de
estados, es la posibilidad de usar las letras del teclado como estmulos.
90
92
Anexo
93
son
necesarias
para
multiplicar
nmeros
en
94
Errores ms frecuentes
ndice
Errores generales 95
Errores en el editor esquemtico 96
Errores en el simulador 96
En este captulo estn descritos los errores ms frecuentes, as como algunas guas
para evitarlos.
Los errores estn clasificados en tres categoras: Errores generales, Errores en el
editor esquemtico y Errores en el simulador. En la categora Errores generales estn
los errores que tienen que ver con el uso del gestor de proyectos. En la categora
Errores en el editor esquemtico estn lo errores ms frecuentes cuando usamos la
herramienta para la captura de esquemas y en la categora Errores en el simulador,
los errores mas habituales cuando utilizamos la herramienta de simulacin. Las
situaciones descritas en las dos ltimas categoras estn muchas veces
interrelacionadas y deberan aparecer en algunos casos en ambas categoras, ya que
muchos errores en la simulacin son consecuencia directa de un mal uso de la
herramienta de captura de esquemas, an as aparecen en una sola de ellas
simplemente por mayor facilidad de bsqueda.
Errores generales
1. Para nombrar proyectos, macros, o subdirectorios no deben utilizarse
identificadores con ms de 8 caracteres. Esto es aplicable a todos los nombres
en el camino completo, as por ejemplo, en c:\<directorio>\<nombre de
proyecto> el campo <directorio> y el campo <nombre de proyecto> tienen
que tener como mximo 8 caracteres de longitud.
2. Al copiar un proyecto a otro directorio no debe olvidarse copiar el fichero con
extensin .pdf. Es imprescindible copiar el directorio del proyecto as como el
fichero .pdf a la nueva localizacin. Para copiar un proyecto es preferible usar
la opcin FILE->COPY PROJECT en el men principal en la ventana del
gestor de proyectos a usar las herramientas del sistema operativo para copiar
ficheros. Otra posibilidad tambin vlida es usar la caracterstica ARCHIVE,
esto pondr toda la informacin del proyecto en un fichero comprimido
formato zip.
3. Al copiar un proyecto a un disquete utilizando la opcin FILE->COPY
PROJECT la herramienta avisa que el disquete no tiene espacio suficiente
para guardar el proyecto. Esta situacin suele ocurrir cuando intentamos
guardar en un disquete proyectos en los cuales hay simulaciones con tiempos
de simulacin grandes. Es este caso puedes utilizar la caracterstica
ARCHIVE para guardar el proyecto de manera comprimida o bien eliminar
del proyecto los ficheros de simulacin que genera automticamente el
Errores ms frecuentes
solucin para evitar esta situacin es aumentar la escala de visualizacin
picando en el botn
.
2. Los valores visualizados de seales agrupadas en un bus son incorrectos. Esto
puede ocurrir si el bit ms significativo es el menos significativo y viceversa.
Para corregir esta situacin usa la opcin SIGNAL->BUS->Change
Direction.
3. Las seales del esquema no aparecen en el simulador. Esto puede ocurrir
cuando el esquema est abierto, pero no pertenece al proyecto. Basta usar la
opcin Document->Add en la ventana principal del gestor del proyecto para
incorporar el fichero conteniendo el esquema al proyecto y reiniciar la
herramienta de simulacin.
4. Aparece una seal con el valor X (desconocido) o Z (alta impedancia). Las
causas pueden ser las descritas en Errores en el editor esquemtico. Otra
posible causa ms es haber conectado un estmulo a una seal de salida.
Bibliografa
[Bout99]
Bout, David Van den. The practical Xilinx Designer Lab Book.
[Floy97]
[Gask97]
[Haye96]
Hayes, Jhon P., Introduccin al Diseo Lgico Digital, Addison
Wesley Iberoamericana.
Pgina Web de Xilinx Foundations Series: http://www.xilinx.com
97