Sunteți pe pagina 1din 107

i

ndice
Acerca de las prcticas de Sistemas Digitales.......................................................... v
1. Prctica 1: Introduccin a las herramientas de diseo .................................. 1
Introduccin............................................................................................................. 1
Objetivos .................................................................................................................. 2
Desarrollo de la prctica......................................................................................... 2
XILINXs Foundation Series Software................................................................ 2
Puertas lgicas ..................................................................................................... 3
Realizacin prctica ............................................................................................. 3
Paso 1. Iniciar Xilinx ....................................................................................... 4
Paso 2. Inicio de un nuevo proyecto ................................................................ 5
Paso 3. Captura del diseo utilizando el editor de esquemas........................... 6
Paso 4. Simulacin funcional del diseo ....................................................... 10
Autocuestionario (a rellenar ANTES de la sesin de laboratorio)........................ 14
Cuestionario de laboratorio (a rellenar durante la sesin de laboratorio) .......... 14
2. Prctica 2: Circuitos combinacionales ........................................................... 15
Introduccin........................................................................................................... 15
Objetivos ................................................................................................................ 15
Desarrollo de la prctica....................................................................................... 16
Sumador binario de un bit.................................................................................. 16
Realizacin prctica ........................................................................................... 17
Realizacin de un sumador binario de un bit................................................. 17
Realizacin de un sumador binario de 2 bits ................................................. 20
Realizacin de un sumador binario de 8 bits ................................................. 25
Autocuestionario (a rellenar ANTES de la sesin de laboratorio)........................ 29
Cuestionario de laboratorio (a rellenar durante la sesin de laboratorio) .......... 29
3. Prctica 3:Diseo modular y jerrquico........................................................ 31
Introduccin........................................................................................................... 31
Objetivos ................................................................................................................ 33
Prcticas de Sistemas Digitales
ii
Desarrollo de la prctica ....................................................................................... 33
ALU de 4 bits ..................................................................................................... 34
Realizacin prctica ........................................................................................... 37
Realizacin de un mdulo sumador de 1 bit .................................................. 37
Realizacin del ampliador aritmtico de 1 bit................................................ 39
Realizacin del ampliador lgico de 1 bit ...................................................... 41
Realizacin de la ALU de 4 bits..................................................................... 42
Simulacin de la ALU de 4 bits ..................................................................... 45
Realizacin de la ALU de 32 bits................................................................... 48
Anexo...................................................................................................................... 49
Autocuestionario (a rellenar ANTES de la sesin de laboratorio) ........................ 52
Cuestionario de laboratorio (a rellenar durante la sesin de laboratorio)........... 52
4. Prctica 4: Retardo de puertas........................................................................ 53
Introduccin ........................................................................................................... 53
Objetivos................................................................................................................. 56
Desarrollo de la prctica ....................................................................................... 56
Ampliador aritmtico ......................................................................................... 56
Realizacin prctica ........................................................................................... 58
Simulacin con retardos de puertas del ampliador aritmtico de 1 bit .......... 58
Eliminacin de los riesgos estticos............................................................... 61
Retardo total del ampliador aritmtico........................................................... 62
Riesgos estticos del mdulo ampliador lgico ............................................. 63
Retardo total de la ALU de 4 bits................................................................... 64
Autocuestionario (a rellenar ANTES de la sesin de laboratorio) ........................ 65
Cuestionario de laboratorio (a rellenar durante la sesin de laboratorio)........... 65
5. Prctica 5: Elementos de estado...................................................................... 67
Introduccin ........................................................................................................... 67
Objetivos................................................................................................................. 73
Desarrollo de la prctica ....................................................................................... 73
Realizacin prctica ........................................................................................... 73
Latch SR......................................................................................................... 73
ndice
iii
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. Prctica 6:Camino de datos ............................................................................ 83
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
Errores ms frecuentes............................................................................................ 95
Errores generales................................................................................................... 95
Errores en el editor esquemtico........................................................................... 96
Errores en el simulador ......................................................................................... 96
Bibliografa............................................................................................................... 97
v
Acerca de las prcticas de Sistemas Digitales
Este manual de prcticas ha sido diseado para cubrir los objetivos prcticos de
laboratorio de la asignatura de Sistemas Digitales de la titulacin de Ingeniero
Tcnico en Informtica de Sistemas. En esta asignatura los contenidos prcticos
tienen una carga lectiva de 30 horas (3 crditos). Este material docente puede
utilizarse tambin para la asignatura Sistemas Digitales de la Ingeniera en
Informtica, puesto que tiene una carga lectiva prctica de 30 horas. Sin embargo,
para poder utilizar este material en la asignatura de Fundamentos de Computadores I
de Ingeniera Tcnica en Informtica de Gestin, que tiene una carga lectiva prctica
de 15 horas, es preciso realizar una adaptacin consistente en la eliminacin de los
apartados avanzados de diseo, cubriendo as los mismos contenidos, pero en menor
profundidad.
En la asignatura de Sistemas Digitales cada alumno recibe 2 horas a la semana de
docencia prctica en el laboratorio. El objetivo de estas prcticas es complementar la
docencia terica y de problemas, acercando al alumno a la realidad del proceso de
diseo digital, tanto de sistemas combinacionales como secuenciales. El cuatrimestre
est pensado de tal manera que realicemos varias prcticas de laboratorio, cada una
de ellas dividida en una o varias sesiones semanales de 2 horas cada una.
El manual de prcticas propone la realizacin de seis prcticas de laboratorio, cuyos
temas abarcan la mayora de los contenidos prcticos de la asignatura. Las prcticas
propuestas son las siguientes:
Prctica 1: Introduccin a las herramientas de diseo. Es una prctica
introductoria cuyos objetivos son presentar la herramienta de diseo, dar una
introduccin a las puertas lgicas e igualar el nivel de conocimientos prctico
bsico de los alumnos en cuanto al manejo de un computador personal. Tiene
asignadas 8 horas de laboratorio. Aunque pueda parecer una duracin
excesiva, hay que tener en cuenta que la asignatura de Sistemas Digitales se
imparte en el primer cuatrimestre de primer curso, lo que supone
encontrarnos con alumnos que no tienen los conocimientos informticos ms
rudimentarios para trabajar con el sistema operativo. Por ello, es preferible al
principio del curso dedicar unas horas a proporcionar los conocimientos
informticos bsicos que permiten homogeneizar el nivel de conocimientos
previos de la clase. Segn hemos constatado con la experiencia, al final este
tiempo es tiempo ganado.
Prctica 2: Circuitos combinacionales. Los objetivos son introducir al
alumno en el estudio de los circuitos combinacionales y adquirir destreza en
el manejo de la herramienta de diseo utilizada en las prcticas. La duracin
de esta prctica es de 4 horas.
Prctica 3:Diseo modular y jerrquico. Los objetivos son aprender las
tcnicas de diseo modular y jerrquico, adquirir destreza en la funcionalidad
de la herramienta en cuanto a la captura y simulacin de diseos jerrquicos y
disear y simular circuitos combinacionales complejos. La duracin de esta
prctica es de 8 horas.
Prctica 4: Retardo de puertas. Los objetivos son introducir el concepto de
retardo en un circuito, realizar simulaciones de circuitos combinacionales con
retardos y determinar la frecuencia de funcionamiento de los circuitos
Prcticas de Sistemas Digitales
vi
basndose en los retardos de las puertas que los componen. La duracin de
esta prctica es de 2 horas.
Prctica 5: Elementos de estado. Esta es la primera prctica en la que se
estudian componentes secuenciales y los objetivos son realizar el estudio
prctico de circuitos secuenciales sencillos como latches y biestables,
aprender a manejar cronogramas complejos, estudio de comportamientos
oscilatorios y propuesta de patrones de prueba para comprobar el correcto
funcionamiento de los circuitos. La duracin de esta prctica es de 4 horas.
Prctica 6:Camino de datos. La ltima prctica tiene como objetivo la
realizacin del diseo, verificacin y depuracin de un circuito secuencial
relativamente complejo utilizando gran parte de las tcnicas aprendidas en
prcticas anteriores (diseo modular y jerrquico, simulacin de circuitos
combinacionales y secuenciales, etc...). La duracin de esta prctica es de 4
horas.
Cada una de las prcticas de Sistemas Digitales descritas anteriormente consiste,
grosso modo, en realizar el diseo de un circuito digital, y verificar su correcto
funcionamiento. Para ello usaremos el software "Xilinx Foundation 1.5" que nos
permitir introducir el diseo del circuito y posteriormente realizar la simulacin del
mismo.
Cada prctica seguir las pautas y pasos que se especifican en el guin de la prctica
en cuestin. En todos los guiones de prcticas existen las mismas secciones:
Introduccin. Se realiza una breve introduccin al tema que es eje central de
la prctica.
Objetivos. Se definen los objetivos que queremos alcanzar con la realizacin
de la prctica. Es importante saber a dnde queremos llegar para saber si
hemos llegado o no.
Desarrollo de la prctica. Se explican de forma somera los fundamentos
tericos necesarios para la realizacin de la prctica, se especifica
concretamente qu hay que hacer en la prctica y cules son los pasos que
hay que seguir para realizarla.
Autocuestionario. Est formado por un conjunto de preguntas que el alumno
debe responder con anterioridad al inicio de la prctica. En general es
suficiente haber realizado una lectura atenta del guin para ser capaz de dar
respuesta a cada una de las preguntas.
Cuestionario de laboratorio. Para contestar este conjunto de preguntas es
necesario haber realizado la prctica, y haber adquirido los conocimientos
prcticos que son el objetivo de la misma. No saber contestar a estas
preguntas indica que el alumno no ha cubierto los objetivos de la prctica.
Anexo: Algunas prcticas tienen una seccin titulada "Anexo" que son
simplemente algunos diagramas esquemticos a mayor escala.
Para llevar a cabo un aprovechamiento mayor de las prcticas de laboratorio,
aadimos a continuacin una gua sobre el proceso que el alumno debe seguir para la
realizacin de una de estas prcticas. Una vez el alumno dispone del enunciado de la
prctica, los pasos a llevar a cabo para lograr adecuadamente los objetivos de la
misma son los siguientes:
Acerca de las prcticas de Sistemas Digitales
vii
1. Realizar una lectura atenta del guin de la prctica, entendiendo lo que all se
explica. Es fundamental comprender qu hay que hacer en la prctica, as
como los fundamentos tericos que se incluyen en el apartado de Desarrollo
de la prctica. Estos contenidos tericos ya se han visto en clases tericas,
por lo que si no se entendiesen completamente aconsejamos consultar los
apuntes tomados en clase, consultar un libro de los recomendados para esa
parte de la asignatura, o consultar al profesor (o profesores) de la asignatura
en horas de tutora.
2. Rellenar el autocuestionario antes de empezar la realizacin de la prctica.
Este autocuestionario les puede ser solicitado en cualquier momento en el
laboratorio.
3. Si la prctica requiere la realizacin de un circuito, entonces realizar el diseo
sobre papel antes de ir al laboratorio.
4. Acudir cada semana al laboratorio a realizar la prctica correspondiente con
el trabajo previo realizado. Las sesiones de laboratorio estn pensadas para
introducir en la herramienta grfica el diseo que han trado sobre papel y
para verificar si el diseo es correcto. Caso de no serlo, habr que realizar
modificaciones al diseo original y a continuacin comprobar si el diseo es
correcto. Estaremos modificando y comprobando, sucesivamente, hasta llegar
a un diseo libre de errores que se comporte tal como se solicita en el guin
de la prctica.
5. A la par con la realizacin de la prctica (paso 4), o al final de ella, pero
siempre en el laboratorio, se rellenar el cuestionario de la prctica.
6. Es conveniente asistir a clases de prcticas en el laboratorio con un disquete
para, en caso de necesidad, poder guardar el trabajo realizado en el disquete.
Siguiendo esta gua sobre los pasos que hay que dar para realizar una prctica,
garantizamos un xito total en la consecucin de los objetivos prcticos de la
asignatura de Sistemas Digitales.
Adems de las seis prcticas propuestas, ste documento contiene un apndice final
llamado Errores ms frecuentes, que contiene una descripcin y una gua de pasos
a realizar para solucionar los errores ms frecuentemente cometidos en la realizacin
de las prcticas de Sistemas Digitales. Los errores estn relacionados con la
utilizacin de la herramienta de diseo que usamos en las prcticas, y estn
clasificado en errores generales, errores en el editor de esquemticos y errores en el
simulador.
1
1. Prctica 1: Introduccin a las herramientas de
diseo

ndice
Introduccin 1
Objetivos 2
Desarrollo de la prctica 2
XILINXs Foundation Series Software 2
Puertas lgicas 3
Realizacin prctica 3
Paso 1. Iniciar Xilinx 4
Paso 2. Inicio de un nuevo proyecto 5
Paso 3. Captura del diseo utilizando el editor de esquemas 6
Paso 4. Simulacin funcional del diseo 10
Autocuestionario (a rellenar ANTES de la sesin de laboratorio) 14
Cuestionario de laboratorio (a rellenar durante la sesin de laboratorio) 14

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.
Prcticas de Sistemas Digitales
2
Las herramientas de sntesis permiten convertir una descripcin de un
comportamiento en una descripcin estructural que contenga componentes de una
biblioteca concreta, tales como FPGA o CPLD.
Las herramientas de verificacin y simulacin permiten probar el diseo. A partir de
un conjunto de valores de entrada obtenemos un conjunto de valores de salida. Estos
valores sirven al diseador para compararlos con los valores tericos de salida
indicando si existe alguna discrepancia o error en el proceso de diseo.
Las herramientas de ubicacin e interconexionado permiten optimizar la situacin de
los componentes y la posicin de cada cable que conecta los componentes.
Las herramientas de prueba ayudan a generar el conjunto de patrones de prueba que
comprueba tantas combinaciones de entrada como sea posible.
En las prcticas de la asignatura Sistemas Digitales usaremos el paquete software
Xilinxs Foundation Series Software que nos permitir realizar muchas de las
funciones que acabamos de comentar.
Objetivos
De manera general, los objetivos de esta primera prctica son los siguientes:
1. Iniciacin en el uso de un computador.
2. Estudio de las puertas lgicas.
3. Familiarizacin con las herramientas de captura de esquemas y simulacin
funcional.
Como puede observarse, los objetivos son de diferente naturaleza. Por una parte,
objetivos ajenos a la propia materia de los sistemas digitales, como son la iniciacin
en el uso del computador y del sistema operativo. Por otra parte, los objetivos
relacionados con la materia son el estudio de las puertas lgicas elementales y la
familiarizacin con dos de las herramientas que posteriormente van a utilizarse en las
prcticas de la asignatura: la herramienta para la captura de esquemas y la
herramienta para la simulacin funcional.
Desarrollo de la prctica
Una vez conocidos los objetivos de la prctica, veamos cmo actuamos para
conseguirlos. En primer lugar hemos de proporcionar toda la informacin terica
necesaria para conocer el tema en el que se va a desarrollar la prctica. A
continuacin veremos cules son los pasos a seguir para realizar la prctica.
Como conocimientos tericos, hemos de saber en primer lugar con qu software
vamos a trabajar. Como hemos mencionado anteriormente, las prcticas de Sistemas
Digitales las realizaremos con el paquete de desarrollo denominado "Xilinxs
Foundation Series Software", y lo describiremos a continuacin. Tambin hemos de
conocer un poco mejor lo que son las puertas lgicas puesto que trabajaremos con
ellas en esta prctica.
XILINXs Foundation Series Software
"Xilinxs Foundation Series Software" es un conjunto de herramientas que constituye
un sistema de desarrollo integrado de software y hardware para crear, simular e
Prctica 1: Introduccin a las herramientas de diseo
3
implementar diseos digitales. Todas las herramientas en este entorno tienen una
interfaz grfica de usuario que facilita el uso de las mismas.
Este entorno proporciona herramientas para la captura y modelado tanto esquemtica
como mediante lenguaje de descripcin del hardware, para sntesis combinacional y
secuencial, y para la simulacin de circuitos digitales.
Puertas lgicas
Las puertas lgicas son circuitos elementales que realizan operaciones booleanas.
Estas operaciones son similares a las conjunciones o e y (en ingls or y and)
que usamos en el lenguaje natural, y constituyen el componente bsico en el diseo
con puertas lgicas.
Existen siete puertas lgicas bsicas, que son NOT, AND, OR, NAND, NOR, XOR,
y XNOR. La razn de que sean exactamente estas puertas est fundamentada en
criterios de frecuencia de uso, ampliacin a ms de dos entradas y sencillez de
construccin fsica. Cada una de estas puertas puede describirse funcionalmente bien
con una ecuacin booleana o bien con una tabla de verdad que relaciona los valores
de las seales de entrada y el valor que toma la salida en funcin de las entradas.
En el captulo 3 de [Floy97] o en la seccin 3.8 de [Gajs97] se puede encontrar una
descripcin exhaustiva acerca de las puertas lgicas.
Realizacin prctica
Esta primera prctica es muy simple, as que la especificacin del diseo tambin lo
es. La prctica consiste en utilizar las herramientas de captura de esquemas y
simulacin funcional que ofrece Xilinx para construir un circuito elemental con una
puerta lgica y comprobar el funcionamiento del mismo cuando le aplicamos unos
ciertos valores de entrada.
El circuito que proponemos consta de una nica puerta NAND de dos entradas. Una
puerta lgica de tipo NAND tiene la representacin esquemtica de la Figura 1-1.

Figura 1-1 Smbolo de una puerta nand.
Dadas dos entradas X e Y, la puerta produce una salida cuyo comportamiento es
justamente el contrario a la conjuncin y que usamos en el lenguaje natural. Por
ejemplo, si decimos en lenguaje natural que el perro es negro y carioso, queremos
decir que posee a la vez ambas cualidades. Una puerta AND dara salida Z cierta
solamente cuando se presentasen ambas cualidades a la vez. Una puerta NAND dara
el resultado contrario, es decir, dara salida cierta cuando alguna de las dos
cualidades fuese falsa, o cuando lo fuesen ambas a la vez. Esta misma descripcin
funcional de la puerta NAND se puede especificar mediante la Tabla 1-1, tambin
podra hacerse con una ecuacin.
Prcticas de Sistemas Digitales
4

X Y Z
0 0 1
0 1 1
1 0 1
1 1 0
Tabla 1-1 Tabla de verdad de una puerta nand.
Introduciremos el esquema de este circuito utilizando Xilinx y luego simularemos el
funcionamiento del circuito conforme van cambiando las entradas. En los prximos
apartados de este guin de prcticas describimos los pasos que hay que seguir para
realizar la prctica.
Paso 1. Iniciar Xilinx
Para iniciar la herramienta de desarrollo seleccionamos Inicio Programas
Xilinx Foundation Series Xilinx Foundation Project Manager. Una alternativa
para esta secuencia de selecciones es abrir el icono Xilinx Foundation Project
Manager, si el icono est accesible en el escritorio.
Aparecer la ventana principal del manejador de proyectos, la apariencia de esta
ventana ser similar a la mostrada en la Figura 1-2. La apariencia exacta de la
ventana principal del gestor de proyectos depende de cual haya sido el ltimo
proyecto en el que se ha estado trabajando o de si es la primera vez que el programa
es utilizado.

Figura 1-2 Ventana del gestor de proyectos.
Dos de los botones que aparecen en la seccin de la derecha, los etiquetados con los
nombres Design Entry y Simulation son los que ms utilizaremos en esta
prctica y en las sucesivas. El primero nos permite acceder a la herramienta grfica
de captura de diseos y el segundo a la herramienta de simulacin lgica.
Prctica 1: Introduccin a las herramientas de diseo
5
Paso 2. Inicio de un nuevo proyecto
Para empezar a trabajar por primera vez en un diseo es necesario indicar que
queremos comenzar un proyecto nuevo. Para ello seleccionamos File New
Project, y entonces se abrir la ventana de inicio de un proyecto nuevo (ver Figura
1-3). Esta ventana sirve para especificar en ella el nombre del proyecto, el
directorio donde guardaremos la informacin sobre este proyecto, el tipo de
proyecto y el tipo de captura de esquemas que va a utilizarse. El significado de los
otros campos va ms all de los objetivos de esta primera prctica.

Figura 1-3 Ventana de inicio de un proyecto nuevo.
As que rellenamos los campos referentes al proyecto que vamos a comenzar, tal
como se muestra en la Figura 1-4. Hemos de elegir un nombre para el nuevo
proyecto que comienza. El nombre que le demos es eleccin personal de cada uno,
aunque es aconsejable que sea un nombre significativo de lo que estamos diseando.
En este caso, y puesto que el circuito consta de una nica puerta lgica NAND, le
daremos el nombre NAND. El directorio de trabajo tambin hemos de
especificarlo. En nuestro caso el directorio de trabajo especificado es el
C:\XCPROJ\, pero este campo debe ajustarse al directorio de trabajo personal. En
cuanto a los otros campos, hemos de elegir la familia XC9500, para esta familia los
chips 95108PC84 y entre estos el integrado con velocidad 20 MHz.

Figura 1-4 Inicializacin del proyecto NAND.
Finalmente validamos el inicio del proyecto con el botn de OK, con lo que
volvemos a la ventana anterior, la del gestor de proyectos. La apariencia de la
ventana del gestor de proyectos para el proyecto NAND una vez hemos creado el
proyecto debe ser similar a la que se muestra en la Figura 1-5.
Prcticas de Sistemas Digitales
6

Figura 1-5 Ventana del gestor de proyectos una vez inicializada.
Paso 3. Captura del diseo utilizando el editor de esquemas
Una vez que hemos creado el proyecto, el siguiente paso es capturar el esquema del
diseo. Esto significa introducir en la herramienta el circuito que hemos diseado.
Tenemos dos formas de hacerlo, utilizando una herramienta grfica o utilizando un
lenguaje de descripcin del hardware. Esta vez utilizaremos la herramienta grfica
para captura de esquemas. Para iniciar la herramienta de edicin de esquemas
seleccionamos Tool Design Entry Schematic Editor o directamente picamos
en el botn . Entonces se ejecuta el editor de esquemas que tiene una apariencia
como la que se muestra en la Figura 1-6.

Figura 1-6 Ventana del editor grfico de esquemas.
La ventana de edicin de esquemas permite la colocacin de los smbolos grficos
que representan a las puertas lgicas y de los smbolos que identifican las entradas y
las salidas del circuito.
Prctica 1: Introduccin a las herramientas de diseo
7
El editor tiene distintos modos de funcionamiento. En cada uno de ellos permite
realizar un tipo de accin diferente: seleccionar componentes, situar puertas, situar
entradas o salidas, situar cables para unir terminales, etc.
En primer lugar situaremos la puerta NAND, para ello pondremos al editor de
esquemas en el modo de situar smbolos, seleccionando Mode Simbols. Otra
manera de hacerlo es usando el botn . De cualquiera de las dos formas aparecer
la ventana de smbolos lgicos, que tiene el aspecto que se muestra en la Figura 1-7.

Figura 1-7 Ventana de smbolos lgicos.
Para situar la puerta NAND, movemos la barra de desplazamiento en la ventana de
seleccin de smbolos lgicos hasta encontrar la palabra NAND; la lista est
ordenada alfabticamente. Picamos sobre la palabra NAND2 para seleccionarla y
entonces situamos el cursor sobre el rea de dibujo. Veremos el smbolo de la puerta
NAND moverse junto con el cursor. Simplemente pulsamos sobre el rea de dibujo
para situar la puerta NAND. Para cambiar desde cualquier modo al modo seleccin
pulsa la tecla Esc (normalmente est situada en la parte superior izquierda del
teclado).
Es necesario aadir ahora entradas y salidas al circuito. Para hacer esto tenemos dos
formas, o bien vamos a la parte izquierda de la ventana de edicin de esquemas y
pulsamos el botn de la barra de herramientas o bien vamos a la parte superior
de la ventana de smbolos lgicos y pulsamos el botn de la barra de
herramientas. Aparecer una ventana de dilogo en la cual hemos de escribir el
nombre y el tipo de cada terminal. De forma general se denomina terminal a una
entrada o a una salida de una puerta lgica.
En primer lugar situaremos una entrada que llamaremos X. Tal como se muestra
en la Figura 1-8, seleccionamos INPUT para el tipo de terminal, indicndole as que
es una entrada, y rellenamos el campo del nombre del terminal con una X. Para
situar el terminal de entrada pulsa en el rea de dibujo. Repetiremos este proceso
para situar otro terminal de entrada de nombre Y.
Prcticas de Sistemas Digitales
8

Figura 1-8 Ventana para la entrada X.
A continuacin situaremos el terminal de salida, tal como se muestra en la Figura
1-9. Para ello seleccionamos nuevamente el botn , pero en este caso rellenamos
el campo del nombre del terminal con Z y seleccionamos un terminal de tipo
OUTPUT. El proceso para situar las salidas en el esquema es similar al proceso para
situar las entradas. La nica diferencia es el tipo de terminal.

Figura 1-9 Ventana para la salida Z.
El aspecto del rea de dibujo de la ventana de edicin de esquemas despus de aadir
las seales de entrada y salida ser similar al de la Figura 1-10.

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
Prctica 1: Introduccin a las herramientas de diseo
9
de la puerta NAND. Esta accin unir ambos terminales. Haremos exactamente lo
mismo con el terminal de entrada Y y el terminal inferior de la puerta NAND.
Finalmente conectaremos el terminal de salida Z a la salida de la puerta NAND. El
esquema est ahora terminado y el aspecto final del diseo ser equivalente al de la
Figura 1-11.

Figura 1-11 Esquema completo del circuito.
Como hemos terminado la captura del esquema lo ms prudente es que lo guardemos
seleccionando File Save antes de seguir adelante. La siguiente operacin a
realizar consiste en comprobar si existen errores de conexin. Este es un proceso que
consta de dos pasos, el primer paso crea una representacin intermedia del circuito
llamada netlist que describe los tipos de puertas y las conexiones, y el segundo
paso comprueba los errores usando esta netlist. Para hacerlo seleccionamos
primero Options Create Netlist para crear la netlist y luego seleccionamos
Options Integrity Test para iniciar la comprobacin de errores. La comprobacin
debe indicar que no hay errores en el esquema.
Ahora que hemos terminado el esquema podemos pasar a la siguiente parte de la
prctica que consiste en simular el funcionamiento del circuito diseado. Para ello
hemos de usar una parte diferente del Xilinx, as que tenemos que exportar el diseo.
Esto es necesario porque las distintas parte del Xilinx se comunican a travs de las
netlist, que son la forma interna de especificar el diseo. La netlist se genera a partir
del esquema y contiene informacin que otros programas son capaces de entender.
Para exportar la netlist primero seleccionamos Options Export Netlist. Con esto
aparecer la ventana para la exportacin de netlist que se muestra en la Figura 1-12.
En esta ventana seleccionamos el formato en que vamos a especificar la netlist, de
entre la lista de formatos existentes. En este caso seleccionamos Edif 200[*.EDN]
de la lista de formatos, y pulsamos el botn Abrir. Con ello se crear un fichero con
nombre nand.alb que es una representacin de la netlist en el formato EDIF 200.
Este archivo es el que utilizaremos como entrada a otros mdulos.
Prcticas de Sistemas Digitales
10

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.

Figura 1-13 Ventana para aadir un fichero de esquema al gestor de proyectos.
Paso 4. Simulacin funcional del diseo
Una vez finalizada la captura del esquemtico pasamos al proceso de simulacin. La
simulacin del circuito sirve para comprobar el funcionamiento del mismo.
Para iniciar el simulador picamos directamente en el botn simulation en la
ventana del gestor de proyectos. Aparece entonces la ventana de simulacin lgica
funcional y una ventana vaca de visualizacin de seales, tal como se muestra en la
Figura 1-14.
Prctica 1: Introduccin a las herramientas de diseo
11
Simular un circuito consiste en aplicar valores a las entradas del circuito y visualizar
qu valor toma la salida. Para ellos tenemos que poder ver de alguna manera las
entradas del circuito (y poder cambiarles su valor) y tambin la salida.
Lo primero que hacemos es aadir las entradas y salidas de nuestro circuito a la
ventana de visualizacin de seales para poder ver qu va ocurriendo en el circuito.
Para hacer esto seleccionamos Signal Add Signals. Entonces aparecer la ventana
que permite elegir las entradas a visualizar, tal como muestra la Figura 1-15.
Pinchamos la entrada X y luego pulsamos el botn Add, y repetimos estos dos pasos
para la entrada Y y la salida Z. Las seales que ya han sido puestas en la ventana de
visualizacin de seales aparecen marcadas en la ventana para aadir seales. Hemos
terminado de aadir terminales as que pulsamos en el botn Close para cerrar esta
ventana.

Figura 1-15 Aadiendo seales a la ventana de visualizacin.
Ahora las tres seales X, Y y Z pueden verse en la ventana de visualizacin de
seales, aunque todava no ocurre nada con ellas.
Para realizar la simulacin aplicamos estmulos a las seales de entrada. Para aadir
un estmulo seleccionamos Signal Add Stimulators y aparecer la ventana de
seleccin de estmulos de la Figura 1-16. En esta ventana existen varios botones.
Nosotros slo usaremos por ahora el contador binario de 16 bits etiquetado BC.
Durante una simulacin, los 2 bits menos significativos (los que estn situados ms a
la derecha) de este contador siguen de manera cclica la secuencia 00, 01, 10 y 11.

Figura 1-14 Ventanas del simulador lgico funcional y visualizacin de seal.
Prcticas de Sistemas Digitales
12
Estas son todas las combinaciones que se pueden producir en las entradas de la
puerta NAND: que las dos entradas estn a 0, que las dos estn a 1, o que slo una de
las dos est a 1. Bastar entonces con asignar cada uno de estos bits a cada una de las
entradas del circuito.

Figura 1-16 Ventana de seleccin de estmulos.
Asociaremos a la entrada X de nuestro circuito el estmulo correspondiente al bit 0
del contador binario, para ello pulsamos en la entrada X para seleccionarla y luego en
el botn circular de color amarillo correspondiente al bit 0. Repetimos este paso con
la entrada Y y el bit 1 del contador. El nombre del estmulo asociado a cada entrada
aparece a la derecha del nombre de la entrada. Una vez hecho esto, cerramos la
ventana de seleccin de estmulos pulsando el botn Close.
Antes de comenzar la simulacin tenemos que fijar los parmetros de simulacin.
Existen varios parmetros. De entre todos ellos los ms significativos son el perodo
del contador (que fija la velocidad a la que van cambiando las seales de entrada) y
la precisin de la simulacin. Seleccionamos Options Preferences y fijamos los
valores de los campos de acuerdo con los valores mostrados en la Figura 1-17. Los
valores diferentes a los mostrados por defecto son el perodo del contador, B0
Period, que lo pondremos a 20 ns, y la desactivacin de la opcin Transport
Delay. Esto ltimo se hace para indicar al simulador que estamos realizando una
simulacin lgica y que no tenga en cuenta los detalles de implementacin fsica del
circuito. Pulsamos entonces en el botn de OK para hacer efectivos estos parmetros
de simulacin.

Figura 1-17 Ventana para fijar los parmetros de simulacin.
Para comenzar la simulacin pulsamos en el botn . Despus de varios segundos,
el resultado de la simulacin aparece en la ventana de visualizacin de seales, tal
como se muestra en la Figura 1-18. Es posible que el resultado no se vea
correctamente y que se tenga que aumentar o disminuir el factor de escala de
Prctica 1: Introduccin a las herramientas de diseo
13
visualizacin, usando los botones y . A pesar de que se vea bien, usen estos
botones y vean qu efecto producen en la ventana de visualizacin de seales.

Figura 1-18 Resultado de la simulacin
En esta ventana vemos las seales de entrada del circuito dibujadas en negro, y la
seal de salida dibujada en azul. Vemos la entrada X asociada al bit 0 (B0) del
contador y la entrada Y asociada al bit 1 (B1) del contador. El valor 0 en la entrada
se representa con la lnea de entrada por debajo de la lnea punteada. El valor 1 se
representa con la lnea de entrada por encima de la lnea punteada. Esto se muestra
de esta manera porque es as como ocurre en la implementacin fsica del circuito.
Los circuitos digitales funcionan con tensin elctrica en las entradas, de forma que
los valores 0 y 1 indican la ausencia o presencia de tensin elctrica en la entrada. Un
0 indica que no hay voltaje (por ejemplo, 0 voltios), y un 1 indica que hay voltaje
(por ejemplo, 5 voltios).
La simulacin comienza en tiempo 0 ns. En ese instante las dos entradas tienen valor
0, y la salida tiene valor 1. Luego cambia la entrada X a valor 1 y la salida sigue
siendo 1. A continuacin cambian ambas entradas y la salida sigue siendo 1. Por
ltimo, cuando ambas entradas valen 1 la salida pasa a ser 0. Esto define un ciclo
completo. A continuacin vuelven a repetirse cclicamente los valores de las
entradas, con lo cual la salida vuelve a tomar tambin cclicamente los mismos
valores.
Finalmente guardamos el resultado de la simulacin seleccionando File Save
Simulation State y tras guardar la simulacin en el archivo nand.des, hemos
terminado la prctica por lo que abandonamos el programa de simulacin
seleccionando File Exit, y salimos tambin del gestor de proyectos seleccionando
File Exit.
Prcticas de Sistemas Digitales
14
Autocuestionario (a rellenar ANTES de la sesin de laboratorio)
1. Qu objetivo te parece el ms importante de la prctica?
2. Qu es una puerta lgica?
3. Dibuja el smbolo grfico correspondiente a la puerta lgica NAND
suponiendo que tiene dos entradas.
4. Qu circuito vamos a disear en esta prctica? Cul es su tabla de verdad?
5. Qu significa capturar el esquema del diseo?
6. Para qu sirve simular el comportamiento del circuito?
Cuestionario de laboratorio (a rellenar durante la sesin de
laboratorio)
1. Cmo se comprueba si un diseo esquemtico tiene errores?
2. Qu es una netlist?
3. Cul es el resultado final del diseo esquemtico?
4. Cmo se aaden las terminales de entrada y salida a la simulacin?
5. Cmo se conectan estmulos a los terminales de entrada?
6. Tiene sentido conectar un estmulo a un terminal de salida? Por qu?
7. Cules son los parmetros ms significativos en la simulacin y para qu se
utilizan?
15
2. Prctica 2: Circuitos combinacionales

ndice
Introduccin 15
Objetivos 15
Desarrollo de la prctica 16
Sumador binario de un bit 16
Realizacin prctica 17
Realizacin de un sumador binario de un bit 17
Realizacin de un sumador binario de 2 bits 20
Realizacin de un sumador binario de 8 bits 25
Autocuestionario (a rellenar ANTES de la sesin de laboratorio) 29
Cuestionario de laboratorio (a rellenar durante la sesin de laboratorio) 29

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
Prcticas de Sistemas Digitales
16
final usar aproximadamente 100 puertas lgicas y 150 conexiones, requiriendo del
alumno destreza a la hora de la captura del esquema.
Por otra parte un sumador binario de 8 bits tiene 16 entradas y 9 salidas, dando un
total de 25 seales a visualizar. Para facilitar su visualizacin es necesario ahondar
en las posibilidades de representacin que ofrece la herramienta.
Tambin puesto que para la suma de dos nmeros binarios de 8 bits existen en total
65536 posibilidades diferentes en las entradas, tambin notaremos la necesidad de
utilizar estrategias para asignar los estmulos a las seales de entrada, ms all de la
simple asignacin de entradas a estmulos mostrada en la prctica anterior.
Finalmente veremos lo inadecuado de utilizar este mtodo de diseo si queremos
escalar el sumador hasta 64 bits. A pesar de que el escalado del circuito es muy fcil
de manera conceptual, usar la simple replicacin nos lleva a una forma de trabajar
muy engorrosa por el tedio que supone trabajar con circuitos muy voluminosos. Con
ello introduciremos la necesidad del diseo jerrquico y de otras herramientas de
captura.
Desarrollo de la prctica
Sumador binario de un bit
El diseo a realizar en esta prctica es el circuito combinacional correspondiente a un
sumador completo de un bit y su expansin a 2 y 8 bits.
Un sumador binario de un bit es un circuito combinacional con tres entradas y dos
salidas. Los nombres de las tres entradas son: INPUT0 e INPUT1, que corresponden
a los bits a sumar, y CARRY_INPUT, que es el bit de acarreo. Los nombres de las
salidas son SUM y CARRY_OUTPUT, siendo SUM el resultado de la suma binaria
y CARRY_OUPUT el acarreo de salida.

Entradas del circuito Salidas del circuito
INPUT0 INPUT1 CARRY_INPUT SUM CARRY_OUTPUT
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1
Tabla 2-1 Tabla de verdad correspondiente a un sumador binario de un 1 bit.
El funcionamiento de este circuito puede describirse usando una tabla de verdad. Una
tabla de verdad es una representacin tabular de las entradas y las salidas del circuito,
en la cual cada fila de la tabla posee una de las posibles combinaciones de entrada
del circuito y el valor de las salidas correspondiente a esas entradas. La Tabla 2-1 es
la tabla de verdad para el circuito sumador binario. En ella se ve, por ejemplo, que
Prctica 2: Circuitos combinacionales
17
para la combinacin de entrada correspondiente a INPUT0 = 1, INPUT1 = 0,
CARRY_INPUT = 1, la combinacin de salida es SUM = 0 y CARRY_OUPUT = 1.
Mediante tcnicas basadas en el lgebra de Boole es posible obtener una
representacin equivalente del comportamiento del circuito mediante ecuaciones
algebraicas que relacionan las salidas del circuito con sus entradas. En el caso de un
sumador binario de un bit estas ecuaciones son las siguientes:
INPUT CARRY INPUT INPUT SUM _ 1 0 =
) 1 0 ( * _ 1 0 _ INPUT INPUT INPUT CARRY INPUT INPUT OUT CARRY + =
En las ecuaciones anteriores los smbolos matemticos , * y + corresponden
respectivamente a las operaciones lgicas de XOR, AND y OR, que como vimos en
la primera prctica son algunas de las funciones lgicas bsicas (puertas lgicas), y
que tienen asociadas unos smbolos grficos que posibilitan la representacin
esquemtica de las ecuaciones anteriores. As, a las ecuaciones anteriores les
corresponde el esquema de la Figura 2-1.

Figura 2-1 Representacin esquemtica de un sumador binario de 1 bit.
Realizacin prctica
Llegados a este punto es de vital importancia recordar lo aprendido en la prctica
anterior, ya que los primeros pasos a realizar (para iniciar la herramienta, crear el
proyecto, capturar el esquema, ) son los que vimos all. Dado que no es preciso
memorizar cada detalle, es un buen consejo tener a mano el guin de la primera
prctica.
La realizacin prctica consta de tres pasos, en el primero realizaremos un sumador
binario de un bit y simularemos su comportamiento. En el segundo realizaremos un
sumador binario de dos bits y en el tercero un sumador binario de ocho bits.
Realizacin de un sumador binario de un bit
Primero, creamos un proyecto cuyo nombre sea ADD1_95, rellenando los campos
para la creacin de un nuevo proyecto tal y como se muestra en la Figura 2-2. En el
campo directorio debes hacer referencia a tu directorio personal de trabajo.
Prcticas de Sistemas Digitales
18

Figura 2-2 Iniciacin del proyecto de un sumador binario de 1 bit.
A continuacin iniciamos la herramienta grfica para la captura de esquemticos y
capturamos el diseo de la Figura 2-3. Este esquema no es igual que el esquema de la
Figura 2-1, pero la funcionalidad es exactamente la misma.

Figura 2-3 Esquema para el sumador binario de un bit.
Cabe resaltar que en este esquema hay dos smbolos que no corresponden a puertas
lgicas, cuyos nombres son IBUF y OBUF, y que estn situados a continuacin de
los terminales de entrada y antes de los terminales de salida. Estos smbolos
corresponden a buffers de entrada y salida e indican a la herramienta que las seales
conectados a ellos correspondern con entradas y salidas de un chip FPGA.
Guardamos el esquema con el nombre ADD1.SCH. Para ello utilizamos la opcin
FileSave As y rellenamos los campos de la ventana con los valores indicados en la
Figura 2-4. Finalmente picamos en el botn Aceptar.
Prctica 2: Circuitos combinacionales
19

Figura 2-4 Ventana para guardar el esquema con otro nombre.
Una vez que hemos finalizado el esquema generamos una netlist usando la opcin
OptionsCreate Netlist... y la exportamos en el formato EDIF 200 usando la
opcin del men principal OptionsExport Netlist... Antes de exportar la netlist
podemos comprobar que todo es correcto seleccionando OptionsIntegrity Test.
Finalmente abandonamos el editor de esquemas con FileExit.
Ahora debemos comprobar que el sumador funciona correctamente. Picamos en el
botn , en la ventana del gestor de proyectos para iniciar el simulador. Una vez
en l, usamos SignalAdd Signals... para aadir las entradas y salidas en la ventana
de visualizacin de seales. Luego, seleccionando SignalAdd Stimulators...
conectamos las entradas a los tres bits inferiores del contador binario (Bc0, Bc1,
Bc2). Finalmente, picamos en el botn en la barra de herramientas del simulador
lgico y aparecern las seales de entrada y salida de una manera similar a la
mostrada en la Figura 2-5. Usamos los botones y as como los
desplazadores horizontales y verticales en la ventana de visualizacin de seales para
obtener una buena imagen de las seales.

Figura 2-5 Simulacin del sumador binario de un bit.
Ahora hemos de comprobar que el resultado de la simulacin coincide con el del
sumador binario de un bit, usando para ello la tabla de verdad de la Tabla 1. Si no es
as, revisamos el diseo esquemtico en busca del error y volvemos a realizar la
simulacin. Cuando el resultado de la simulacin sea correcto guardamos el estado
de la simulacin seleccionando FileSave Simulation State y cerramos la
herramienta de simulacin con FileExit.
Prcticas de Sistemas Digitales
20
Realizacin de un sumador binario de 2 bits
Llegados a este punto vamos a construir un sumador binario de dos bits.
Tericamente a partir de un sumador binario de un bit es posible construir un
sumador binario de dos bits nicamente encadenando dos de ellos. Encadenar
significa conectar las salida CARRY_OUPUT del sumador binario del bit menos
significativo a la entrada CARRY_INPUT del segundo sumador.
Comenzamos este segundo paso creando un proyecto de las misma caractersticas
que el ADD1_95, pero con nombre ADD2_95. Una vez creado vamos a aprovechar
el diseo esquemtico anterior y as evitaremos una nueva captura desde el principio
del diseo. Seleccionamos DocumentAdd... y buscamos el fichero esquemtico
anterior en el proyecto ADD1_95, tal como se muestra en la Figura 2-6.

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,
Prctica 2: Circuitos combinacionales
21
todava tenemos una oportunidad de deshacer los cambios seleccionando en el men
EditUndo.

Figura 2-7 Editor de esquemas tras la operacin de pegado.
Hemos de fijarnos en que los dos bloques de diseo son exactamente iguales. Tanto
es as que hasta los nombres de las entradas y las salidas son iguales. Obviamente,
los nombres de las salidas no deben coincidir si corresponden a diferentes salidas.
Por ello procederemos a renombrar todas las entradas y las salidas. Para el bloque
sumador del bit menos significativo utilizaremos para las entradas los nombres X0,
Y0 y CI0, y para las salidas los nombres S0, CO0. La manera de cambiar el nombre
asociado a un terminal es picar dos veces rpidamente sobre el terminal. Entonces la
herramienta abrir el cuadro de dilogo correspondiente al terminal, segn muestra la
Figura 2-8, y en el campo correspondiente al tipo de terminal escribiremos el nuevo
nombre del terminal.

Figura 2-8 Ventana para cambiar el nombre a los terminales de entrada y
salida.
Cambiamos el nombre de los terminales para el bloque sumador correspondiente al
segundo bit, pasando a llamarse ahora X1, Y1, CI1, S1 y CO1. El resultado final de
todo este cambio de nombres es un esquema equivalente al de la Figura 2-9.
Prcticas de Sistemas Digitales
22

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.
Prctica 2: Circuitos combinacionales
23

Figura 2-10 Esquema final del sumador binario de dos bits.
Creamos ahora una netlist usando OptionsCreate Netlist... y la exportamos en el
formato EDIF 200 usando la opcin del men principal OptionsExport Netlist...
Antes de exportar la netlist comprobamos que todo es correcto con
OptionsIntegrity Test. Finalmente abandonamos el editor de esquemas con
FileExit.
Ahora debemos comprobar que el sumador funciona correctamente. Picamos en el
botn de la ventana del gestor de proyectos para iniciar el simulador. Una vez
en l, usamos SignalAdd Signals... para aadir las entradas y salidas en la ventana
de visualizacin de seales. Aadimos las seales a visualizar en el siguiente orden:
en primer lugar CI0, despus las correspondientes al nmero X (el nmero formado
al concatenar las seales X1 y X0), luego las correspondientes al nmero Y (el
nmero formado al concatenar las seales Y1 e Y0), y finalmente el acarreo de salida
CO1.
Luego, con SignalAdd Stimulators... conectamos CI0 al estmulo 0. Slo
tenemos que pulsar el botn cero en la ventana para aadir estmulos. Asociamos X0,
X1, Y0 e Y1 respectivamente con las entradas a los cuatro bits inferiores del
contador binario (Bc0, Bc1, Bc2 y Bc3). Finalmente, picamos al menos dos veces en
el botn de la barra de herramientas del simulador lgico y aparecern las seales
de entrada y salida de una manera similar a la Figura 2-11. Usando los botones y
, as como los desplazadores horizontales y verticales en la ventana de
visualizacin de seales obtendremos una buena imagen de las seales.
Prcticas de Sistemas Digitales
24

Figura 2-11 Resultado de la simulacin del sumador binario de dos bits.
La comprobacin de que la captura del esquemtico ha sido correcta en este caso no
es sencilla, ya que no tenemos una tabla de verdad para l que nos permita hacerlo de
forma fcil. Tendramos que obtener una tabla de verdad con cuatro entradas, y para
cada una de esas posibles 16 combinaciones de entrada comprobar si sus salidas son
las adecuadas. Por supuesto que este forma de verificacin es inviable si los
sumadores son de ocho bits, ya que implicara 256x256 combinaciones de entrada
diferentes. Para resolver estas dificultades la herramienta permite agrupar las seales.
Una agrupacin de seales recibe el nombre de BUS.
Vamos a organizar las seales en buses, uno para la seal de entrada X, otro para la
entrada Y y un tercero para la salida. Seleccionamos X0, y despus, picando con el
ratn sobre el nombre de la seal X1, a la vez que mantienes pulsada la tecla shift (la
tecla para escribir con letras maysculas) ambas seales, la X0 y X1, deben aparecer
seleccionadas con una franja azul. En el men principal de la herramienta de
simulacin seleccionamos la opcin SignalBusCombine y ya hemos agrupado
las seales X0 y X1 en un bus. Repetimos este proceso para formar otros buses con
las otras entradas Y0 e Y1 y con las seales de salida S0, S1 y CO1, ver la Figura
2-12.

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
Prctica 2: Circuitos combinacionales
25
usamos la opcin SignalBusBinary. En la Figura 2-13 se muestra el resultado
de cambiar los nombres a los buses y mostrar el valor en cada instante de simulacin
en binario.

Figura 2-13 Visualizacin de las seales organizadas en buses y representadas
en binario.
Una vez hemos llegado hasta aqu comprobamos que el resultado de la simulacin
coincide con lo esperado de un sumador binario de 2 bits. Si no es as, revisamos el
diseo esquemtico en busca del error y volvemos a realizar la simulacin. Cuando
el resultado de la simulacin sea el correcto guardamos el estado de la simulacin
con FileSave Simulation State y cerramos la herramienta de simulacin con
FileExit.
Realizacin de un sumador binario de 8 bits
Ahora vamos a capturar el esquema de un sumador binario de ocho bits y
posteriormente lo vamos a simular. Los pasos son similares a los dados en los
diseos de los sumadores de un bit y de dos bits.
Creamos un proyecto con nombre ADD8_95 con las mismas caractersticas de los
anteriores. Aadimos el esquema ADD2.SCH al proyecto. Iniciamos el editor de
esquemtico y en primer lugar guardamos el nuevo diseo con el nombre
ADD8.SCH. Seleccionamos todos los componentes del esquema y los copiamos en
el portapapeles, los recuperamos y los situamos para obtener los bloques necesarios
para un sumador binario de 4 bits. Repetimos estos pasos para conseguir los bloques
de 6 y 8 bits, tal como muestra la Figura 2-14.
Prcticas de Sistemas Digitales
26

Figura 2-14 Ejemplo de situacin de los sumadores de 2 bits para disear un
sumador de 8 bits.
Renombramos cada uno de los terminales de entrada con los nombres X0..X7,
Y0..Y7, el terminal de salida tambin lo renombramos con S0..S7 y al acarreo de la
ltima etapa CO7. Borramos los terminales y los buffers asociados con los acarreos
intermedios y propagamos el acarreo entre los diferentes bloques. El esquema ser
similar al mostrado en la Figura 2-15. En este esquema el orden entre los bloques
viene dado por la numeracin de arriba abajo y luego de izquierda a derecha.
Creamos la netlist y la exportamos con formato EDIF200.
Prctica 2: Circuitos combinacionales
27

Figura 2-15 Esquema final del sumador binario de 8 bits.
A continuacin iniciamos el simulador. Aadimos las seales por este orden, CI0,
X0...X7, Y0...Y7, S0..S7 y CO7. Asociamos el estmulo 0 con CI0, X0 con Bc0, X1
con Bc1, y as sucesivamente hasta X7 con Bc7. Tambin asociamos Y0 con Bc8,
Y1 con Bc9,, y finalmente Y7 con BcF. Agrupamos las seales X0 ...X7 para
formar el bus X, las seales Y0...Y7 para formar el bus Y, y las seales S0...S7 y
CO7 para formar el bus SUM. Cambiamos el modo de visualizacin de los buses a
decimal.
Para visualizar los resultados de esta simulacin tenemos que realizar una simulacin
de bastante tiempo, pues hemos de dar tiempo a que se presenten todas
combinaciones en las entradas. Para ello seleccionamos en el men OptionsStart
Long Simulation. En la ventana de dilogo seleccionamos un minuto, tal como
muestra la Figura 2-16; este es el tiempo que el simulador estar calculando valores,
no el tiempo de simulacin. El resultado de la simulacin debe ser similar al
mostrado en la Figura 2-17.

Figura 2-16 Ventana para fijar el tiempo de simulacin.
Si el resultado es correcto, guardamos los resultados, pero si no es as habr que
comprobar el diseo y volver a realizar la simulacin.
Prcticas de Sistemas Digitales
28

Figura 2-17 Resultado de la simulacin del sumador binario de 8 bits.
Prctica 2: Circuitos combinacionales
29
Autocuestionario (a rellenar ANTES de la sesin de laboratorio)
1. Cul es la tabla de verdad de un sumador binario de dos bits?
2. Qu significa encadenar los sumadores binarios de un bit para construir
sumadores de ms bits?
3. Por qu no es interesante desde el punto de vista de la simulacin visualizar
los acarreos intermedios?
4. Qu es el tiempo de simulacin?
5. Cmo influir el periodo de la seal Bc0 del contador binario con el tiempo
de simulacin?
6. Qu es un bus?
7. Por qu el valor de CI0 es 0 en todas las simulaciones excepto en la del
sumador binario de un bit?
8. Por qu no hemos fijado el valor de CO7?
9. Cul es la tcnica descrita en el guin de la prctica para reutilizar los
diseos?
Cuestionario de laboratorio (a rellenar durante la sesin de laboratorio)
1. Cuntos periodos de la seal Bc0 son necesarios para comprobar todos los
posibles valores de las entradas en el sumador binario de 8 bits?
2. Por qu incluimos el bit de acarreo de salida como un bit ms en el bus de
salida? Qu ocurrira si no lo incluysemos?
3. Cul ha sido la caracterstica de visualizacin que nos ha permitido trabajar
con las 18 seales del sumador binario de 8 bits?
4. Crees que utilizando las mismas tcnicas podramos construir sumadores de
16, 32, 64 bits o incluso de ms bits?
5. Qu modificacin deberamos aadir al sumador binario de 8 bits para que
fuera un sumador en complemento a dos?
6. Por qu ha sido necesario hacer simulaciones fijando el tiempo que el
simulador estar calculando valores?
31
3. Prctica 3:Diseo modular y jerrquico

ndice
Introduccin 31
Objetivos 33
Desarrollo de la prctica 33
ALU de 4 bits 34
Realizacin prctica 37
Realizacin de un mdulo sumador de 1 bit 37
Realizacin del ampliador aritmtico de 1 bit 39
Realizacin del ampliador lgico de 1 bit 41
Realizacin de la ALU de 4 bits 42
Simulacin de la ALU de 4 bits 45
Realizacin de la ALU de 32 bits 48
Anexo 49
Autocuestionario (a rellenar ANTES de la sesin de laboratorio) 52
Cuestionario de laboratorio (a rellenar durante la sesin de laboratorio) 52

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 2
8
x 2
8
= 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.
Prcticas de Sistemas Digitales
32

Figura 3-1 Diseo jerrquico de un sumador binario de 8 bits.
En el nivel ms bajo en complejidad de la jerarqua est el diseo con puertas lgicas
para construir el sumador binario de un bit. En el nivel ms alto est el sumador
binario de 8 bits. Este proceso podra continuar hasta construir un mdulo sumador
de 32 64 bits que pudiera utilizarse en el diseo de un procesador. Intentar capturar
el diseo de un sumador de 32 64 bits mediante las tcnicas de copiar y pegar
descritas en la prctica anterior, nos conducira a un diseo con un nmero masivo de
puertas lgicas y conexiones, en el cual la probabilidad de cometer un error sera
muy alta.
Para prevenir errores sera de gran ayuda poder ocultar los detalles de
implementacin, definiendo mdulos funcionales de los diseos ya capturados y
comprobados. Los mdulos funcionales pasaran a ser componentes de la biblioteca
de smbolos de diseo, que podramos utilizar de manera similar a las puertas
lgicas, pero con una funcionalidad mucho mayor. Posteriormente, podramos definir
nuevos mdulos con los ya construidos, dando lugar a un diseo jerrquico.
Esta metodologa de diseo tiene como principales ventajas:
1. Facilita la reutilizacin del diseo. Un mdulo bien diseado puede utilizarse
en muchos proyectos con el consiguiente ahorro de trabajo.
2. Ocultacin de informacin. Encapsular un diseo en un mdulo, ocultando al
diseador los detalles de implementacin, facilita el manejo del mismo.
nicamente es necesario conocer la relacin entre las entradas y salidas del
circuito.
Prctica 3:Diseo modular y jerrquico
33
3. Copia. Construir un circuito copiando muchas veces un mdulo funcional que
nicamente muestra informacin de las entradas y salidas es mucho ms fcil
que replicar otro que contiene todos los detalles acerca de las puertas y las
conexiones que lo implementan.
4. Comprobacin. La comprobacin de un nico y gran circuito es mucho ms
difcil que comprobar un circuito compuesto por mdulos que han sido
comprobados individualmente. En este ltimo caso, los errores ms
frecuentes se encuentran en las interfaces entre los mdulos.
5. Diseo en equipo. Un diseo modular permite el trabajo en equipo. La
definicin exacta de las interfaces entre mdulos posibilita el trabajo en
paralelo de varios diseadores.
Objetivos
De manera general, los objetivos de esta tercera prctica son los siguientes:
1. Aprendizaje de las tcnicas de diseo modular y jerrquico.
2. Utilizacin del editor esquemtico para la definicin de mdulos funcionales
y captura de esquemas jerrquicos.
3. Diseo de una unidad aritmtico lgica compleja.
4. Manejo de mltiples esquemas.
5. Uso de las capacidades de la herramienta para el manejo de buses.
6. Simulacin de circuitos complejos.
Desarrollo de la prctica
En esta tercera prctica vamos a construir una unidad aritmtica lgica (ALU,
Arithmetic-Logic Unit) de nmeros de 32 bits codificados en complemento a dos o
binario, utilizando tcnicas de diseo modular y jerrquico. La ALU debe ser capaz
de realizar operaciones aritmticas de suma, resta, incremento, decremento, y
operaciones lgicas de AND, OR, identidad y complemento entre las entradas.
Puesto que las entradas en las operaciones aritmticas estn tambin codificadas en
complemento a dos, la ALU debe tener una salida para indicar la situacin de
desbordamiento. La Figura 3-2 representa el smbolo grfico de la ALU de 32 bits.
Las seales M, S1 y S0 sirven para seleccionar la operacin que la ALU debe
realizar con los operandos A y B de 32 bits. F son los 32 bits del resultado. La seal
CO es el acarreo de salida para las operaciones binarias. Finalmente, la seal
desbordamiento indica esta situacin en el caso de operaciones de sumas y restas con
nmeros representados en complemento a dos.
Prcticas de Sistemas Digitales
34
F
32
1 Desbordamiento
A
M
1
S1
1
S0
1
32
B
32
CO
1
Unidad aritmtico lgica

Figura 3-2 Smbolo grfico de una ALU de 32 bits.
En las prcticas 1 y 2 el diseo siempre ha sido propuesto en el propio guin de la
prctica, siendo el principal trabajo a realizar la captura y simulacin del mismo.
Esto era as por la falta de conocimientos tericos previos, que imposibilitaban la
propia labor de diseo, y tambin porque el principal objetivo de las mismas era el
aprendizaje de la herramienta. En esta prctica la situacin cambia, y al final de la
misma se deja parte del diseo a la propia creatividad de cada uno.
En primer lugar implementaremos una ALU de 4 bits, y posteriormente
realizararemos las modificaciones necesarias para escalar el diseo a 32 bits.
ALU de 4 bits
Como todas las operaciones aritmticas estn basadas en la suma, se puede disear
una ALU simplemente modificando las entradas de un sumador de acarreo
propagado. La lgica de modificacin utilizada en las operaciones aritmticas se
denomina a veces ampliador aritmtico (AE, Arithmetic Extender), y la lgica de
modificacin utilizada en las operaciones lgicas se denomina ampliador lgico
(LE, Logic Extender). Cada uno o ambos ampliadores se conectan a la entrada del
sumador, como se indica por las lneas discontinuas de la Figura 3-3. Ahora
mostraremos como disear estos ampliadores de uno en uno.

A 0 B 0
C 0 X 0 Y 0
1 bit
L
E
A
E
F 0
A 1 B 1
C 1 X 1 Y 1
1 bit
L
E
A
E
F 1
A 2 B 2
C 2 X 2 Y 2
1 bit
L
E
A
E
F 2
A 3 B 3
C 3 X 3 Y 3
1 bit
L
E
A
E
F 3
C 4

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
Prctica 3:Diseo modular y jerrquico
35
seleccionar operaciones aritmticas o lgicas de manera tal que siempre que M=1,
la ALU realice operaciones aritmticas y cuando M=0 realice operaciones lgicas.
Tambin es necesario utilizar dos variables de seleccin, S
1
y S
0
, que habilitarn la
seleccin de las cuatro operaciones aritmticas o de las cuatro operaciones lgicas.
Los valores asignados a S
1
y S
0,
para cada operacin aritmtica, se resumen en la
Tabla 3-1.

M S
1
S
0
Funcin F X Y C
0

1 0 0 Decremento A-1 A Todos
unos
0
1 0 1 Suma A+B A B 0
1 1 0 Resta A+B+1 A B 1
1 1 1 Incremento A A Todos
ceros
1
Tabla 3-1 Tabla funcional para las operaciones aritmticas.
Como se observa, la tabla tambin muestra el valor de la salida F de la ALU, as
como los valores de las entradas del sumador X, Y y C
0
. Obsrvese que, de acuerdo
con esta tabla, la entrada X del sumador requiere siempre el valor de A, mientras que
la entrada Y puede disponer de todos unos, B, B o todos ceros. Estos valores para la
entrada Y sern generados por el AE, cuya tabla de verdad se muestra en la Tabla
3-2.
M S
1
S
0
B
i
Y
i

1 0 0 0 1
1 0 0 1 1
1 0 1 0 0
1 0 1 1 1
1 1 0 0 1
1 1 0 1 0
1 1 1 0 0
1 1 1 1 0
0 x x x 0

Tabla 3-2 Tabla de verdad para la entrada Yi al sumador.
Esta tabla se ha obtenido a partir de la Tabla 3-1 simplemente expandiendo la
columna Y en las columnas B
i
e Y
i
, indicando cual es el valor de cada Y
i
en funcin
de M, S
1
, S
0
y tambin del correspondiente valor de B
i
. A partir de esta tabla puede
obtenerse la expresin booleana para Y
i.
:
Y
i
= MS
1
B
i
+ MS
0
B
i

Finalmente, el circuito lgico de este AE se muestra en la Figura 3-4. La Figura 3-27,
que se aade como anexo, es este mismo esquema a mayor tamao.
Prcticas de Sistemas Digitales
36

Figura 3-4 Esquema lgico del AE.
A partir de la Tabla 3-1 obtenemos la ecuacin lgica para el bit de acarreo inicial:
C
0
= MS
1

Esta ecuacin indica que el acarreo inicial toma el valor lgico 1, si y slo si, la
operacin es aritmtica y, resta o incrementa.
Una vez descrito el procedimiento de diseo de un AE, se puede realizar de igual
manera el diseo de un LE, tal y como se define en la Tabla 3-3. En esta tabla puede
verse que las entradas Y y C
0
siempre estn al valor 0 para operaciones lgicas,
mientras que las entradas X requieren diferentes expresiones booleanas para cada una
de estas operaciones.
M S
1
S
0
Funcin F X Y C
0

0 0 0 Complemento A A 0 0
0 0 1 AND A AND B A AND B 0 0
0 1 0 Identidad A A 0 0
0 1 1 OR A OR B A OR B 0 0

Tabla 3-3 Tabla funcional del LE.
Basndose en esta tabla funcional, se puede desarrollar la tabla de verdad para el LE,
que se muestra en la Tabla 3-4. A partir de esta tabla de verdad puede obtenerse la
siguiente expresin boolena para describir algebraicamente el LE:
M S
1
S
0
X
i

0 0 0 A
i

0 0 1 A
i
B
i

0 1 0 A
i

0 1 1 A
i
+B
i

1 X X A
i


Tabla 3-4 Tabla de verdad del LE.
X
i
= MS
1
S
0
A
i
+ MS
1
S
0
B
i
+ S
0
A
i
B
i
+ S
1
A
i
+ MA
i
Prctica 3:Diseo modular y jerrquico
37
Una vez obtenida esta expresin se procede a la construccin del circuito lgico del
LE, mostrado en la Figura 3-5. En la Figura 3-28 est este mismo esquema a mayor
tamao.

Figura 3-5 Esquema lgico del LE.
Hasta ahora, se han obtenido los circuitos lgicos para el AE y el LE, y la siguiente
tarea es conectarlos con un sumador para formar una unidad aritmtico lgica
completa, como la ALU de cuatro bits mostrada en la Figura 3-3. Obsrvese que, en
la ALU, las operaciones lgicas se realizan en el ampliador lgico y los sumadores
de un bit se utilizan para pasar los resultados del LE sin cambiarlos. En otras
palabras, los sumadores de un bit se utilizan como conexiones con retardo fijo.
Obsrvese tambin que el acarreo de salida del bit ms significativo representa un
acarreo en el caso de aritmtica sin signo y que la puerta XOR de los acarreos de
salida de los dos bits ms significativos se obtiene si ha habido desbordamiento en el
caso de aritmtica en complemento a 2.
Realizacin prctica
En primer lugar disearemos la ALU de 4 bits. Los pasos a realizar para completar el
diseo estn completamente definidos en este guin de prctica y son construir un
mdulo sumador de 1 bit, un AE y un LE de 1 bit y combinar los mdulos para
construir la ALU de 4 bits. Finalmente construiremos la ALU de 32 bits.
Realizacin de un mdulo sumador de 1 bit

Figura 3-6 Inicializacin del proyecto para la ALU de 4 bits.
Prcticas de Sistemas Digitales
38
Inicia la herramienta Xilinx. Luego crea un proyecto de nombre ALU4_95 tal y
como indica la Figura 3-6. En el campo directorio debes hacer referencia a tu
directorio personal de trabajo.
Luego, usa la opcin de la barra de men en la ventana del gestor de proyectos
Document Add y aade el esquema C:\TEMP\CCUENCA\ADD1.SCH de la
prctica anterior al proyecto actual, segn se muestra en la Figura 3-7. Con toda
seguridad que tienes que cambiar el directorio C:\TEMP\CCUENCA por el nombre
de tu directorio de trabajo personal.

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.

Figura 3-8 Ventana para los terminales de entrada y salida.
Una vez que has hecho todo esto, el esquema del sumador binario debe ser similar al
de la Figura 3-9.
Prctica 3:Diseo modular y jerrquico
39

Figura 3-9 Sumador binario de 1 bit, modificado para encapsularlo en un
mdulo funcional.
Ahora tenemos el esquema preparado para encapsularlo en un mdulo funcional.
Para crear el smbolo, seleccionamos Hierarchy Create Macro Symbol from
Current Sheet en el men principal del editor de esquemticos. Aparece la ventana
de creacin de smbolos, Figura 3-10. Escribe como nombre del smbolo
MY_ADD1, y en el campo comentario la frase Mi sumador de 1 bit, luego pica el
botn de OK. La herramienta nos informar, mediante un mensaje, que MY_ADD1
ha sido aadido a la biblioteca de componentes y nos preguntar tambin si
queremos editarlo. A esta pregunta contestaremos picando el botn de No.

Figura 3-10 Ventana para la creacin de smbolos.
Realizacin del ampliador aritmtico de 1 bit
En este punto, debemos tener el editor de esquemticos sin ningn esquema.
Seleccionamos File New Sheet en el men del editor de esquemticos para obtener
un esquema en blanco donde poder trabajar. Aparecer una hoja en blanco con el
nombre ALU4_951. En este esquema vamos a capturar el diseo lgico de la
ampliacin aritmtica. En primer lugar seleccionamos File Save As para cambiar el
nombre del esquema a AE, segn se muestra en la Figura 3-11.
Prcticas de Sistemas Digitales
40

Figura 3-11 Ventana para guardar el esquema con el nombre AE.
A continuacin captura el diseo de la AE, tal y como se especifica en la Figura
3-12.

Figura 3-12 Esquema lgico del AE.
En el esquema de la Figura 3-12 puedes ver que la orientacin de las puertas lgicas
no es la habitual, sino que las puertas tienen una rotacin de 90 a la derecha. Para
conseguir la rotacin de un smbolo a la derecha puedes utilizar la combinacin de
teclas Control+R (la tecla Control y la tecla R pulsada a la vez), para rotar a la
izquierda Control+L, y para conseguir la imagen especular del smbolo puedes usar
Control+M.
Una vez que finalizamos, salvamos el esquema con File Save. Luego usamos los
mens Options Create Netlist, Options Integrity Test y Options Export
Netlist... para crear, comprobar y exportar la netlist en formato EDIF200.
Cerramos el editor de esquemticos y simulamos el circuito. El resultado de la
simulacin se muestra en la Figura 3-13. A continuacin crearemos un mdulo con
este esquema, seleccionamos en la barra de men Hierarchy Create Macro
Symbol from Current Sheet. En el campo nombre escribimos MY_AE, y en el
campo comentario Ampliador aritmtico, picamos en el botn de OK y
contestamos que No a la pregunta de si queremos editar el smbolo.
Prctica 3:Diseo modular y jerrquico
41

Figura 3-13 Simulacin del AE.
Realizacin del ampliador lgico de 1 bit
En este punto, debemos tener otra vez el editor de esquemticos sin ningn esquema.
Seleccionamos File New Sheet en el men del editor de esquemticos para obtener
un esquema en blanco donde poder trabajar. Aparecer una hoja en blanco con el
nombre ALU4_952. En primer lugar seleccionamos File Save As para cambiar
nombre del esquema a LE, y a continuacin capturaremos el diseo del LE, segn se
muestra en la Figura 3-14.

Figura 3-14 Esquema lgico del LE
Una vez que finalizamos, salvamos el esquema con File Save. Luego usamos los
mens Options Create Netlist, Options Integrity Tests y Options Export
Netlist... para crear, comprobar y exportar la netlist en formato EDIF200. Hecho
esto, simulamos el circuito y comprobamos que funciona correctamente, segn
aparece en la Figura 3-15.
Prcticas de Sistemas Digitales
42

Figura 3-15 Simulacin del LE.
Realizacin de la ALU de 4 bits
Llegados a este punto hemos capturado el diseo de tres mdulos: el sumador binario
de un bit, el ampliador aritmtico y el ampliador lgico. Y ahora es el momento de
unir todos los mdulos para construir la ALU de cuatro bits. Para ello seleccionamos
File New Sheet en el editor de esquemticos, aparecer una hoja en blanco con el
nombre ALU4_953 y cambiamos el nombre al esquema seleccionando File Save
As... En el campo nombre de archivo escribimos ALU4 y picamos en el botn de
continuar. Para aadir los smbolos de los mdulos definidos anteriormente
selecciona Mode Simbols en el editor de esquemticos. Aparece la ventana de
smbolos, y en la parte superior puedes encontrar los mdulos MY_ADD1, MY_AE
y MY_LE, segn se muestra en la Figura 3-16.

Figura 3-16 Ventana de smbolos.
Sita 4 smbolos de cada uno de los mdulos MY_ADD1, MY_AE y MY_LE,
conecta los acarreos de las etapas intermedias para crear la cadena de acarreos,
tambin los terminales de salida X de los LE con los terminales de entrada A del
sumador binario de 1 bit, finalmente los terminales Y de salida de los AE con los
terminales de entrada B del sumador binario de 1 bit, tal y como aparecen en la
Figura 3-17.
Prctica 3:Diseo modular y jerrquico
43

Figura 3-17 Esquema premilinar de la ALU de 4 bits.
A continuacin dibujaremos dos buses de entrada y uno de salida, tal y como se
muestra en la Figura 3-18. Para ello selecciona en el men principal Mode Draw
Buses. Pica desde una posicin prxima al LE ms a la izquierda y traza un bus hasta
una posicin cercana al LE ms a la derecha, Figura 3-18. Para terminar el trazado
del bus pica dos veces. Entonces aparece la ventana de edicin de bus, Figura 3-19.
En el campo nombre escribe A; en el campo marca de terminacinselecciona
INPUT y en el campo rango de lneas introduce los valores 3 y 0, para indicar un
total de 4 lneas.

Figura 3-18 Esquema con los buses A, B y F definidos.
A continuacin creamos otro mdulo con este esquema, seleccionando en la barra de
men Hierarchy Create Macro Symbol from Current Sheet . En el campo
nombre escribimos MY_LE, y en el campo comentario Ampliador lgico. Picamos
en el botn de OK y contestamos que No a la pregunta de si queremos editar el
smbolo.
Prcticas de Sistemas Digitales
44

Figura 3-19 Ventana de edicin de buses.
Ahora tenemos que conectar los buses a las entradas de los ampliadores lgicos y
aritmticos y a las salidas de los sumadores. Selecciona en el men principal Mode-
>Draw Bus Taps. Pica el cursor sobre el bus A, y a continuacin sobre la entrada
etiquetada con el nombre A del ampliador lgico aparecer una lnea etiquetada con
el nombre A3 y que representa la conexin entre la lnea A3 del bus A y la entrada A
del ampliador lgico. Pica sobre la siguiente para crear la conexin entre la lnea A2
del bus y la entrada A del siguiente ampliador lgico. Repite para crear las
conexiones A1 y A0. Para terminar pulsa la tecla ESC.
Si cometes un error, puedes pulsar dos veces en el nombre de la conexin al bus, por
ejemplo A2, y luego cambiar el nombre de la conexin en la ventana que aparece
para tal efecto.
Repite el proceso anteriormente descrito para establecer las conexiones al bus de
entrada B. En este caso las conexiones hay que establecerlas dos veces puesto que las
lneas correspondientes al bus B se conectan a ambos ampliadores. Finalmente
conecta las salidas de los sumadores al bus de salida F. El resultado debe ser similar
al de Figura 3-20.

Figura 3-20 Esquema de la ALU de 4 bits con los buses conectados.
A continuacin definimos los terminales de entrada M, S1 y S0 y los conectamos a
las entradas de todos los ampliadores. Para terminar aadimos la lgica necesaria
para calcular el acarreo inicial y la seal de desbordamiento, tal como muestra la
Figura 3-21. En el esquema la seal de desbordamiento y CO4 corresponden a
terminales de salida.
Prctica 3:Diseo modular y jerrquico
45

Figura 3-21 Lgica para el clculo del acarreo inicial y la seal de
desbordamiento.
El esquema final debe ser similar al de Figura 3-22. En la Figura 3-29, que se aade
como anexo, est este mismo esquema a mayor escala.

Figura 3-22 Esquema final de la ALU de 4 bits.
Simulacin de la ALU de 4 bits
Una vez capturado el esquemtico realizamos la simulacin del circuito. Aadimos
al simulador los terminales de entrada y salida por este orden: los buses de entrada A
y B, las seales de control S0, S1 y M, el bus de salida F, el acarreo final y el bit de
desbordamiento.
Para asociar estmulos a los buses es necesario deshacer los buses. Pica sobre el bus
A y a continuacin selecciona Signal Bus Flatten en la barra de men. De igual
manera deshaz tambin el bus B.
A continuacin realiza la siguiente asignacin de estmulos: A3 con el bit Bc3 del
contador, A2 con el bit Bc2, A1 con el Bc1 y finalmente A0 con el Bc0. Para el bus
B, B3 con el bit Bc7 del contador, B2 con el bit Bc6, B1 con el Bc5 y finalmente B0
con el Bc4.
Prcticas de Sistemas Digitales
46
A S0 le asignas Bc8, a S1 le asignas Bc9 y a M le asignas BcA. As acabamos la
asignacin de estmulos a los terminales de entrada.
Una vez asignados los estmulos, vuelve a agrupar los buses A y B. Tambin define
un bus con las seales de control S0, S1 y M. Para facilitar la interpretacin de los
resultados, cambia el formato de visualizacin de los buses a decimal picando en
primer lugar sobre el bus y luego seleccionando Signal Bus Display Decimal.
Selecciona el bus A y cambia su direccin de agrupacin con
Signal Bus Change Direction. Esta orden tiene el mismo efecto que desagrupar
el bus, ordenar las seales en orden inverso y posteriormente volver a reagrupar las
seales. Cambia de igual manera tambin la direccin del bus B.
Realiza una simulacin el suficiente tiempo para que las seales de entrada tomen
todas las combinaciones posibles, segn muestra la Figura 3-23.

Figura 3-23 Simulacin de la ALU de 4 bits.
Para comprobar el funcionamiento de la ALU diseada recuerda que el bus de
control formado por las lneas de control de operacin M, S1 y S0 definen la
operacin a realizar por la ALU de acuerdo con la Tabla 3-5.
M S1 S0 F
0 0 0 Complemento
0 0 1 AND
0 1 0 Identidad
0 1 1 Or
1 0 0 Decremento
1 0 1 Suma
1 1 0 Resta
1 1 1 Incremento

Tabla 3-5 Tabla funcional de la ALU de 4 bits.
As por ejemplo, en la Figura 3-23 vemos que en la posicin indicada por el cursor,
si interpretamos los buses como nmeros representados el bus de control toma el
valor 5, indicando una operacin de suma entre el bus A, que tiene un valor de 10 en
sus lneas, y el bus B, con el valor de 6. El resultado de esta operacin de suma se
muestra en el bus de salida F y es cero, como consecuencia de la incorreccin de la
operacin, la seal de acarreo de salida toma el valor alto. Ahora bien, si
Prctica 3:Diseo modular y jerrquico
47
interpretamos los buses como nmeros en complemento a dos, el bus A con
codificacin 10 correspondera al valor decimal de 6, que sumado al bus B con
valor decimal 6 dara como resultado para la operacin de suma el valor decimal 0,
que es correcto y por tanto no se activa el bit de desbordamiento para operaciones en
complemento a dos.
De igual manera comprueba el resto de las operaciones aritmticas y lgicas.
En caso de errores, estos pueden estar o bien en las conexiones entre los mdulos o
bien entre los propios mdulos.
Puedes arrancar o regresar al simulador desde el editor de esquemas simplemente
picando el botn en la barra de herramientas debajo del men principal de la
ventana principal del editor de esquemas. Tambin desde el simulador puedes
arrancar o regresar al editor de esquemas picando en el botn en la barra de
herramientas debajo del men principal de la ventana principal del simulador.
Para depurar los errores en las conexiones entre los mdulos, la herramienta permite
visualizar en el simulador cualquier seal, aunque esta no est asociada a un terminal
de entrada o salida del circuito y sea una seal intermedia sin nombrar.
Para aadir al simulador una seal, desde el editor de esquemas, pulsa en el botn
en la barra de herramientas principal. Aparecer la ventana de herramientas de
simulacin de la Figura 3-24. Pica en el botn para aadir seales. El editor
cambia de modo y el cursor es ahora una flecha con seales digitales. Pica en cada
terminal que quieras aadir, y asegrate que seleccionas el terminal de entrada o
salida de un bloque o de una puerta lgica, no el cable que une un terminal a otro
elemento, pues en ste ltimo caso la seal no aparecer en la ventana principal del
simulador. Cuando un terminal es aadido a la ventana de simulacin aparece una
marca de color gris junto al terminal. Para eliminar de la ventana de simulacin una
seal aadida pica en el botn y luego en la seal, la marca al lado de la seal
debe desaparecer.

Figura 3-24 Ventana de herramientas de simulacin.
Puede ocurrir que la causa del error sea el diseo del mdulo y no las relaciones con
los otros mdulos. En un principio esta situacin delatara que el diseo no ha sido lo
suficientemente probado y fue dado por bueno con demasiada rapidez, aunque a
veces, por la naturaleza del error este slo se pone de manifiesto cuando conectamos
el mdulo en cuestin con otro componente.
Un mtodo para depurar un mdulo ya construido consiste en ver su esquema
utilizando las opciones del men principal en el editor de esquemas Hierarchy-
>Push (o el botn en la barra auxiliar de herramientas) y Hierarchy->Pop. Al
utilizar la primera de las dos rdenes el cursor cambia a una flecha con una H,
indicando que hemos cambiado de modo. Picando dos veces sobre un smbolo en el
diseo esquemtico, veremos la hoja correspondiente a su diseo. As es posible, por
ejemplo, modificarla si lo consideramos oportuno o aadir seales para la depuracin
del mdulo. Para regresar al esquema principal est la opcin Hierarchy->Pop o
simplemente cerrar la hoja del esquema. En el caso de haber realizado
Prcticas de Sistemas Digitales
48
modificaciones aparece el mensaje Figura 3-25. Picando en el botn S, las
modificaciones realizadas al mdulo son aceptadas. Picando en el botn No, las
modificaciones no tendrn ningn efecto.

Figura 3-25 Pregunta al abandonar un subesquema.
Realizacin de la ALU de 32 bits
La construccin de una ALU de 32 bits es realmente una cuestin de diseo, no de
captura de diseo y simulacin como han sido las prcticas anteriores, y la actual
hasta este punto.
La Figura 3-2 es el diagrama de bloques de la ALU de 32 bits que tienes que disear.
A y B son los buses de entrada, y F es el bus de salida. Todos los buses tienen un
ancho de 32 bits. M, S
1
y S
0
son las seales de control que definen la operacin a
realizar por la ALU, de acuerdo con la Tabla 3-5 que ya hemos comentado.
Las soluciones a los problemas de diseo no son nicas. Un diagrama posible de
macro tareas a realizar es el mostrado en la Figura 3-26.

Figura 3-26 Posibles pasos para la construccin de una ALU de 32 bits.
49
Anexo

Figura 3-27 Diagrama esquemtico del AE.
Prcticas de Sistemas Digitales
50

Figura 3-28 Diagrama esquemtico del LE.
Prctica 3:Diseo modular y jerrquico
51

Figura 3-29 Diagrama esquemtico de la ALU de 4 bits.
Prcticas de Sistemas Digitales
52
Autocuestionario (a rellenar ANTES de la sesin de laboratorio)
1. Qu es una ALU?
2. Puede la ALU diseada sumar nmeros en complemento a dos?Por qu?
3. Qu funcin realiza el mdulo de ampliacin aritmtica en la ALU?
4. Qu funcin realiza el mdulo de ampliacin lgica en la ALU?
5. Qu indican a la ALU las seales M, S
1
y S
0
?
6. Qu ocurre si sobre un smbolo pulsamos las teclas Control+R, Control+L o
Control+M?
7. Cul es la secuencia de operaciones para definir un smbolo?
8. Para qu sirve la opcin Signal Buses Change Direction en el
simulador?
9. Indica un diagrama de macrotareas a realizar para construir una ALU de 32
bits, diferente al propuesto en la prctica.
10. Cmo se obtiene una hoja en blanco en el editor de esquemticos?
Cuestionario de laboratorio (a rellenar durante la sesin de laboratorio)
1. Cunto tiempo de simulacin es necesario para comprobar todos los
patrones de entrada de la ALU de 4 bits?
2. Es escalable directamente la ALU de 4 bits a 32 bits?Por qu?
3. Qu indica el bit de acarreo de salida en la ALU de 32 bits en las
operaciones con nmeros representados en binario? Y con nmeros
representados en complemento a dos?
4. Qu tcnicas de diseo has utilizado para construir la ALU de 32 bits?
5. Qu indica el bit de desbordamiento en la ALU de 32 bits en las operaciones
con nmeros representados en binario? Y con nmeros representados en
complemento a dos?
6. Entre todas las operaciones de la ALU diseada cul tarda menos tiempo en
realizarse? Y cul tarda ms? Por qu?
7. Explica cmo has comprobado el diseo de la ALU de 32 bit.
8. Cul es el diseo con bloques funcionales que has implementado para la
ALU de 32 bits?
53
4. Prctica 4: Retardo de puertas

ndice
Introduccin 53
Objetivos 56
Desarrollo de la prctica 56
Ampliador aritmtico 56
Realizacin prctica 58
Simulacin con retardos de puertas del ampliador aritmtico de 1 bit 58
Eliminacin de los riesgos estticos 61
Retardo total del ampliador aritmtico 62
Riesgos estticos del mdulo ampliador lgico 63
Retardo total de la ALU de 4 bits 64
Autocuestionario (a rellenar ANTES de la sesin de laboratorio) 65
Cuestionario de laboratorio (a rellenar durante la sesin de laboratorio) 65

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
Prcticas de Sistemas Digitales
54
temporales de cargas que hay que vaciar o llenar antes de que las seales alcancen
los valores de tensin mnimos y mximos.
Supongamos que el valor de la capacidad parsita de una puerta es 10pF (1 pF = 10
-
12
F) y que conectamos la salida de la puerta a un total de 20 entradas. La capacidad
parsita total en este caso es la suma de todas las capacidades individuales, 20x10pF
= 200pF. Si la puerta de salida presenta una impedancia de salida de 100, la
constante de tiempo es 200pF x100 = 20ns y ya que el tiempo necesario para
realizar una transicin entre estados es en torno a 2 3 veces la constante de tiempo,
el tiempo que emplear est puerta para cambiar de estado oscilar entre 40 y 60ns.
Esto implica que, ponindonos en el caso peor, el circuito no podr funcionar a una
frecuencia mayor que 1/60ns = 16.7MHz, lo cual es una restriccin bastante severa.
Adems de los retrasos debidos a las conexiones entre dispositivos, estn los retrasos
inherentes a cada puerta. Cuando la entrada a una puerta cambia, la salida de la
puerta no cambia inmediatamente. Este retraso tambin es debido a capacidades
parsitas dentro del circuito integrado. El tiempo entre el cambio en la entrada y el
cambio en la salida es llamado retardo de propagacin o retardo de puerta. Hay
dos tipos de retardo de puerta, ver Figura 4-1:

Figura 4-1 Retardos de propagacin en puertas.
t
PHL
: Este es el retardo entre el cambio en la entrada y el tiempo en que la seal
de salida cambia desde el nivel alto al nivel bajo.
t
PLH
: Este es el retardo entre el cambio en la entrada y el tiempo en que la seal
de salida cambia desde el nivel bajo al nivel alto.
Normalmente estos retardos no son muy diferentes, as que se suelen simplificar en
un nico parmetro llamado t
pd
que simboliza el retardo de propagacin en una
puerta, tanto para el caso de las transiciones hacia el nivel bajo o el nivel alto.
Otra consecuencia de los retardos son las condiciones de riesgo, que pueden originar
el mal funcionamiento del circuito. Los riesgos generan pequeos pulsos espurios
indeseables que aparecen en las salidas a causa de los diferentes retardos de
propagacin en caminos diferentes, pero convergentes a lo largo del circuito.
Concretamente, un pulso espurio es un cambio de corta duracin en el valor de la
salida cuando no debera aparecer cambio alguno.
El concepto de riesgo se muestra en el ejemplo a continuacin. En la Tabla 4-1 se
expone la representacin de mapa de Karnaugh de la funcin booleana F = xy + yz,
y en la Figura 4-2 el esquema lgico correspondiente.
Prctica 4: Retardo de puertas
55
yz
x 00 01 11 10
0
0

1 3
1
2
1
4
1
5
1
7
1
6


Tabla 4-1 Representacin de mapa F = xy' + yz.
En la Figura 4-2 puede verse que hay dos caminos diferentes, etiquetados como a y
b, desde la entrada Y hasta la salida F, y estos dos caminos tienen retardos de
propagacin diferentes. El retardo en el camino a, que va desde Y hasta F a travs
del inversor, una puerta AND y una puerta OR, es de 3 ns, mientras que el retardo en
el camino b, que slo atraviesa una puerta AND y una puerta OR, es de 2 ns. En el
caso en el que X = Z = 1, Y =1, la salida F valdr 1 debido al camino b. De igual
modo, cuando X = Z = 1, Y = 0, la salida F valdr 1 debido al camino a. Por
consiguiente, en un diseo ideal donde el retardo de las puertas es 0, la salida F
debera permanecer a 1 cuando Y cambia de 1 a 0, ya que la seal que viene por el
camino a se hace igual a 1 al tiempo que la seal que viene por el camino b se hace
igual a 0. Sin embargo, en realidad a necesita 2 ns para llegar a valer 1, mientras que
b se iguala a 0 en 1 ns, forzando F a 0 durante 1 ns. Esta situacin se muestra en la
Figura 4-3. En esta figura $I3.0 es la salida del inversor, $I1.0 es a y $I2.0 es b. Se
puede apreciar que Y cambia a 0 en t
0
= 20ns, seguida por un cambio de b a 0 en t
0
+
1 ns y por un cambio en a al valor 1 en t
0
+ 2 ns. Ya que F es igual al valor de (a OR
b), F cambia a 0 en t
1
= t
0
+ 2 ns y vuelve a valer 1 en t
2
= t
0
+ 3 ns.
1
1
1
1
a
b

Figura 4-2 Esquema lgico.
En general existe un riesgo esttico 1 (riesgo esttico 0) cuando dos minterms (o
maxterms) son adyacentes y no estn cubiertos en la implementacin de la funcin
lgica por ningn primo implicante (primo implicado) simultneamente. La manera
de evitar los riesgos estticos 1 (riesgo esttico 0) es aumentar el coste del circuito y
aadir un nuevo primo implicante (primo implicado) que evite la situacin anterior.

Figura 4-3 Diagrama de tiempos.
Prcticas de Sistemas Digitales
56
Este mtodo garantiza la eliminacin de los pulsos espurios producidos por
transiciones entre combinaciones de entrada a distancia 1, no as cuando las
transiciones ocurren entre combinaciones de entrada a distancia mayor que 1. As por
ejemplo, las transiciones entre las combinaciones 3 y 5 tambin producen riesgos
estticos 1, ver la Figura 4-4.

Figura 4-4 Riesgo esttico producido por una transicin a distancia 2.
En general la identificacin explcita y, de ser posible, la eliminacin de los riesgos y
de las seales espurias que ellos crean, es muy difcil. Esto se debe tanto a la
incertidumbre inherente en los retardos de propagacin que hay que considerar como
al gran nmero de posibles combinaciones de estos retardos. Por lo tanto, slo es
factible llevar a cabo un anlisis explcito de riesgos para circuitos pequeos que
operan en condiciones restrictivas.
Objetivos
Los objetivos de esta prctica son:
1. Introduccin de los conceptos de retardo de puerta y retardo de propagacin.
2. Uso de los modos de simulacin que tienen en cuenta los retardos de las
puertas.
3. Estudios de las consecuencias de los retardos en los diseos.
4. Determinacin de la frecuencia mxima de operacin de un circuito.
Desarrollo de la prctica
Esta prctica consta de dos partes. En la primera vamos a estudiar de manera guiada
el mdulo ampliador aritmtico con los objetivos principales de aprender los modos
de simulacin que tienen en cuenta los retardos de propagacin y de puerta, y adems
comprobar y corregir las situaciones de riesgos estticos.
En la segunda parte de la prctica, aplicaremos las tcnicas anteriores a los otros
mdulos que hemos utilizado en el diseo de la ALU de 4 bits.
Ampliador aritmtico
Para el estudio inicial de los retardos y las consecuencias de los mismos en los
circuitos digitales vamos a utilizar el circuito ampliador aritmtico de 1 bit de la
prctica 3. La tabla de verdad y el esquema lgico estn en la Tabla 4-2, y en la
Figura 4-5.
Prctica 4: Retardo de puertas
57

M S
1
S
0
B
i
Y
i

1 0 0 0 1
1 0 0 1 1
1 0 1 0 0
1 0 1 1 1
1 1 0 0 1
1 1 0 1 0
1 1 1 0 0
1 1 1 1 0
0 x x x 0
Tabla 4-2 Tabla de verdad del ampliador aritmtico.
Tal y como se ve en la Tabla 4-3, la cobertura de primos implicantes elegida
corresponde a los minterms {0, 2} y {4, 5}. Con esta eleccin de primos implicantes
ocurre que los minterms 0 y 4 que son adyacentes no estn cubiertos
simultneamente por ningn primo implicante en la implementacin de la funcin
lgica. Por ello habr una situacin de riesgo esttico cuando la seal B
i
cambie de
estado lgico con S
1
= 0 y S
0
= 0. Para evitar este riesgo esttico basta con aadir un
primo implicante que cubra los minterms 0 y 4.

Figura 4-5 Esquema lgico del ampliador aritmtico.
Por otra parte, tal y como se ve en la Figura 4-5, el retardo mximo en el ampliador
aritmtico corresponde al camino de las seales S
0
, S
1
B
i
cuando atraviesan el
inversor, la puerta AND y la puerta OR. Suponiendo un retardo de 1 ns en cada
puerta resulta que el retraso total mximo es de 3ns, y por ello la mxima frecuencia
a la que pueden variar las seales de entrada, con la garanta de que el circuito tendr
tiempo de operar correctamente, es F = 1 /(3 ns) = 333 MHz. Esta situacin es peor
en la realidad puesto que los retrasos temporales sern mayores y variarn para cada
puerta.
Prcticas de Sistemas Digitales
58

S
1
S
0

b
i
00 01 11 10

0
0
1
1 3

2
1

1
4
1
5
1
7 6
Tabla 4-3 Mapa del ampliador aritmtico.
Realizacin prctica
La realizacin prctica consta de varios apartados. En el primero realizaremos la
simulacin del ampliador lgico de un bit con retardos. El objetivo es estudiar las
consecuencias de los mismos en los circuitos combinacionales y comprobar cmo
pueden evitarse los pulsos espurios en la salida. A continuacin estudiaremos los
retardos de propagacin a travs de una cadena de puertas, para obtener el caso peor,
el cual define el tiempo de operacin. Estos dos apartados estarn dirigidos por el
guin de prcticas, paso por paso. Los dos siguientes son similares a los anteriores
con la salvedad de que el alumno debe aplicar los conocimientos adquiridos por su
propia cuenta.
Simulacin con retardos de puertas del ampliador aritmtico de 1 bit
Inicia la herramienta de Xilinx. Luego crea un proyecto de nombre delay tal y
como indica la Figura 4-6. En el campo directorio debes hacer referencia a tu
directorio personal de trabajo.

Figura 4-6 Ventana de nuevo proyecto.
Luego, usa la opcin de la barra de men en la ventana del gestor de proyectos
Document Add y aade el esquema AE.SCH, de la prctica anterior, al proyecto
actual, segn se muestra en la Figura 4-7.
Prctica 4: Retardo de puertas
59

Figura 4-7 Ventana para aadir el esquema del ampliador aritmtico.
Pica dos veces en el nombre del esquema, en la ventana del gestor de proyectos, para
abrirlo. Una vez que est abierto el esquema generamos la netlist usando la opcin
Options Create Netlist... y la exportamos en el formato EDIF 200 usando la
opcin del men principal Options Export Netlist... Antes de exportar la netlist
podemos comprobar que todo es correcto seleccionando Options Integrity Test.
Finalmente abandonamos el editor de esquemas con File Exit.
A continuacin realizaremos la simulacin con retardos del ampliador aritmtico.
Picamos en el botn , en la ventana del gestor de proyectos para iniciar el
simulador. Una vez en l, usamos Signal Add Signals... para aadir a la ventana de
visualizacin las seales de entrada M, S
0
, S
1
y B
i
.
En este caso tambin estamos interesados en visualizar no slo los terminales de
entrada y salida, sino tambin las seales intermedias, como son las tres seales de
entrada a cada puerta AND y las dos seales de entrada a la puerta OR
Para aadirlas selecciona en la subventana del medio, llamada Chip Selection, la
puerta AND3 y pica dos veces, segn se muestra en la Figura 4-8. Al hacerlo, en la
subventana de la derecha aparecern enumerados los terminales de entrada y salida
de la puerta, selecciona el I0 y pulsa el botn Add, repite lo mismo con los
terminales intermedios I1 e I2. Cuando hayas terminado, repite este proceso para la
otra puerta AND3 y para la puerta OR2. Otra mtodo, quizs preferible por ser ms
directo, es el descrito en el apartado Simulacin de la ALU de 4 bits.

Figura 4-8 Ventana para aadir seales intermedias a la simulacin.
Finalmente aade la seal de salida Y
i
. La ventana de visualizacin de seales con
las seales aadidas debe ser similar a la Figura 4-9.
Prcticas de Sistemas Digitales
60

Figura 4-9 Ventana de visualizacin con las seales intermedias aadidas.
Luego, seleccionando Signal Add Stimulators... conectamos las entradas M, S1,
S0 y B a los estmulos 1, 0, 0 y Bc0 respectivamente. Esta asignacin de estmulos se
realiza as para comprobar el riesgo cuando ocurre la transicin entre las
configuraciones correspondientes a los minterms 0 y 4.
A diferencia de las simulaciones hasta ahora realizadas, vamos a especificar que la
simulacin no es funcional, sino con retardos, y tambin vamos a especificar el valor
del retardo de puerta.

Figura 4-10 Cambio de simulacin funcional a unitaria.
En la barra de herramientas del simulador, ver Figura 4-10, existe a la izquierda una
subventana desplegable con los modos de simulacin: Functional, Timing,
Glitch y Unit. Seleccionaremos el modo Unit que significa retardo unitario en
todas las puertas lgicas.

Figura 4-11 Fijacin del retardo unitario.
A continuacin nos queda fijar el tiempo a que corresponde un retardo unitario. Para
ello seleccionamos Options Preferences... y fijamos el parmetro de precisin de
Prctica 4: Retardo de puertas
61
la simulacin a 1 ns, segn se muestra en la Figura 4-11. No debemos olvidar
desactivar la opcin Transport Delay.
Finalmente, picamos en el botn en la barra de herramientas del simulador lgico
y aparecern las simulaciones de las seales de entrada y salida. Para obtener una
buena imagen de las seales usamos los botones y , as como los
desplazadores horizontales y verticales en la ventana de visualizacin de seales. El
resultado de la simulacin se muestra en la Figura 4-12.

Figura 4-12 Resultado de la simulacin para riesgos estticos.

En la Figura 4-12 vemos que el cambio desde la configuracin M =1, S
1
= S
0
= 0 y B
i

= 1 a la configuracin M =1, S
1
= S
0
= 0 y B
i
= 0 produce un resultado no deseado.
La transicin contraria, de la configuracin M =1, S
1
= S
0
= 0 y B
i
= 0 a la
configuracin M =1, S
1
= S
0
= 0 y B
i
= 1, no produce ningn riesgo.
Eliminacin de los riesgos estticos
Para eliminar los riesgos estticos es suficiente aadir primos implicantes que cubran
a la vez los minterms causantes del riesgo. Captura el nuevo esquema propuesto en la
Figura 4-13 y repite los pasos ya explicados para estudiar el comportamiento del
circuito con retardos. El resultado de la simulacin se muestra en la Figura 4-14.
Prcticas de Sistemas Digitales
62

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.

Figura 4-14 Resultado de la simulacin del ampliador aritmtico modificado.
Retardo total del ampliador aritmtico
Para calcular de manera aproximada el retardo mximo del circuito podemos realizar
una simulacin donde cambien todas las seales de entrada.
Asigna a las seales de entrada M, S
1
, S
0
y B
i
los estmulos correspondientes a los 4
bits menos significativos del contador binario (Bc3, Bc2, Bc1 y Bc0).
Con 4 entradas existen un total de 2
4
= 16 combinaciones de entrada, y dado que el
perodo de la seal es de 10 ns, ser suficiente un tiempo de simulacin de 80 ns.
Puedes fijar este tiempo de simulacin en la barra de herramientas del simulador
lgico, segn se muestre en la Figura 4-15. Luego pica en el botn para simular.
Prctica 4: Retardo de puertas
63

Figura 4-15 Fijacin del tiempo de simulacin.
El resultado de la simulacin aparece en la Figura 4-16.

Figura 4-16 Simulacin con retardo del ampliador aritmtico.
La peor situacin que podra ocurrir segn el diagrama lgico de la Figura 4-5 es un
retardo de 3 ns. Examinando el resultado de la simulacin en la Figura 4-16 vemos
que esta situacin se presenta cuando ocurre una transicin desde la configuracin M
= 0, S
1
= 1, S
0
= 1 y B
i
= 1 a la configuracin M =1, S
1
= 0, S
0
= 0 y B
i
= 0.
Podemos concluir que el retardo total para nuestro ampliador aritmtico de 1 bit es
de 3 ns.
Tambin vemos en la simulacin de la Figura 4-16 que en el instante de simulacin
correspondiente a t = 62ns hay un espurio producido por una transicin entre
minterms a distancia mayor que 1.
Riesgos estticos del mdulo ampliador lgico
El ampliador lgico, a diferencia del ampliador aritmtico, no tiene transiciones entre
combinaciones adyacentes que produzcan pulsos espurios en la seal de salida del
circuito. De aqu no debe deducirse que en el ampliador lgico no haya transiciones
entre combinaciones que produzcan pulsos espurios, ocurre simplemente que estas
transiciones son entre configuraciones a distancia mayor que 1.
Por ejemplo en la Figura 4-17 los estmulos a las seales de entrada han sido
asignados de manera que producen transiciones entre los minterms 4 y 7 de manera
cclica provocando una secuencia de espurios.
Prcticas de Sistemas Digitales
64

Figura 4-17 Espurios por la transicin entre los minters 7 y 4.
La parte prctica de este apartado consiste en la realizacin de una simulacin del
ampliador lgico que visualice algunas transiciones entre combinaciones a distancia
mayor que 1 que produzcan riesgos estticos en el ampliador lgico.
Retardo total de la ALU de 4 bits
En la prctica anterior diseamos una ALU de 4 bits capaz de realizar operaciones
lgicas y aritmticas. Con el objeto de simplificar este apartado estudiaremos
nicamente la operacin de decremento. La parte prctica de este apartado consiste
en:
1. La realizacin de un estudio terico para determinar cul es el retardo de
propagacin para la operacin de decremento en el caso peor.
2. La simulacin de los casos encontrados en el apartado anterior y verificacin
del tiempo de propagacin terico calculado.
En este apartado es posible que tengas que aumentar el valor del perodo de la seal
Bc0 debido a que el retardo de propagacin sea prximo al perodo de la seal.
Prctica 4: Retardo de puertas
65
Autocuestionario (a rellenar ANTES de la sesin de laboratorio)
1. Qu significa que una puerta lgica tenga un retardo de 1 ns?
2. Qu es un riesgo esttico en un circuito combinacional?
3. Por qu se producen los riesgos estticos? Cmo se evitan? Pueden
evitarse todos?
4. Cmo se realiza una simulacin que tiene en cuenta los retardos de puerta?
5. Cmo est relacionado el retardo de propagacin con la frecuencia mxima
de operacin de un circuito?
6. Justifica que el ampliador lgico no tiene riesgos estticos 1 debido a
transiciones entre configuraciones adyacentes.
7. Cul es la combinacin de entrada que tarda ms en decrementarse en la
ALU de 4 bits?
8. Cmo piensas realizar el estudio del tiempo de propagacin en la ALU para
la operacin de decremento?
9. Cul es el retardo que calculas de manera terica para la operacin de
decremento en la ALU de 4 bits?
Cuestionario de laboratorio (a rellenar durante la sesin de laboratorio)
1. En la simulacin presentada en la Figura 4-16 para el tiempo de simulacin
de t = 62 ns hay un pulso espurio. Explica la existencia de dicho pulso
espurio mediante un cronograma.
2. Qu transiciones has comprobado que producen pulsos espurios en el
ampliador lgico?
3. Justifica el valor obtenido para el retardo en la operacin de decremento de la
ALU de 4 bits.
4. Realiza el estudio terico para calcular el retardo de propagacin mximo en
la ALU de 4 bits.
5. Cmo podramos reducir el retardo de propagacin de la ALU de 4 bits?
6. Presentan los sumadores binarios riesgos estticos?

67
5. Prctica 5: Elementos de estado

ndice
Introduccin 67
Objetivos 73
Desarrollo de la prctica 73
Realizacin prctica 73
Latch SR 73
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

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).
Prcticas de Sistemas Digitales
68

Figura 5-1 Latch SR implementado con puertas NOR.
Mientras las seales S y R sean iguales a 0, el latch SR permanece en el mismo
estado. Si la entrada S (entrada R) se hace 1, el latch SR ir al estado de puesta a uno
(puesta a cero). Si las seales de entrada S y R valen ambas 1, las salidas Q y Q
deben ser iguales a 0. Si una de las seales de entrada cambia antes que la otra, el
latch finaliza en un estado forzado por la seal que cambie en ltimo lugar.
Un problema inherente al latch SR es el hecho de que si S y R cambian al mismo
tiempo, no se puede predecir la salida. En el caso de que las puertas tengan el mismo
retardo, ambas valdrn 1 al mismo tiempo y, despus, valdrn 0 simultneamente y
as sucesivamente, oscilando siempre.
Para eliminar este comportamiento indeterminista, se debe asegurar que las seales S
y R no se restablezcan al mismo tiempo o asegurarse de que las seales S y R nunca
cambien al mismo tiempo.
S R Q(actual) Q(siguiente) Q(siguiente)
0 0 0 0 1
0 0 1 1 0
0 1 X 0 1
1 0 0 1 0
1 1 X 0 0

Tabla 5-1 Tabla de funcionamiento del latch SR implementado con puertas
NOR.
El funcionamiento del latch SR implementado con puertas NOR est descrito en la
Tabla 5-1.

Figura 5-2 Latch SR implementado con puertas NAND.
El latch SR puede implementarse tambin con puertas NAND, segn se muestra en
la Figura 5-2. En este caso las entradas S y R estn normalmente a 1. Activando S o
R a 0, el latch se establecer a 1 o pondr a 0, respectivamente, que es justamente lo
Prctica 5: Elementos de estado
69
opuesto a la implementacin NOR en la que activando S o R a 1 se causaba la puesta
a uno o a cero del latch, respectivamente.
S R Q(actual) Q(siguiente) Q(siguiente)
0 0 X 1 1
0 1 X 1 0
1 0 X 0 1
1 1 0 0 1
1 1 1 1 0

Tabla 5-2 Tabla de funcionamiento del latch SR implementado con puertas
NAND.
El comportamiento funcional del latch SR implementado con puertas NAND est
descrito en la Tabla 5-2.

Figura 5-3 Latch SR sncrono.
A partir de un latch SR es posible construir fcilmente un latch SR sncrono. La
diferencia entre un latch SR y un latch SR sncrono est en la existencia de una
tercera entrada, C, que habilita o deshabilita el latch SR. Esto significa que cuando
C=1, el latch SR sincronizado funciona exactamente igual que el latch SR; mientras
que cuando C=0, el latch permanecer siempre en el estado anterior. En la Figura 5-3
puede verse la implementacin de un latch SR sncrono y en la Tabla 5-3 la
descripcin del funcionamiento del mismo.
C S R Q(actual) Q(siguiente)
0 X X 0 0
0 X X 1 1
1 0 0 0 0
1 0 0 1 1
1 0 1 X 0
1 1 0 X 1
1 1 1 X indefinido

Tabla 5-3 Tabla de funcionamiento del latch SR sncrono.
Como se ha indicado anteriormente, en los latch SR debe garantizarse que las
entradas S y R no valgan 1 al mismo tiempo. Este inconveniente puede evitarse
Prcticas de Sistemas Digitales
70
modificando apropiadamente el latch SR para que esto no ocurra, dando lugar as al
latch D sincronizado, ver la Figura 5-4. Un latch D tambin tiene una entrada C que
lo habilita, del mismo modo que se haca en el latch SR sincronizado. Cuando C es
igual a 1, la salida Q tomar el mismo valor que la entrada D. Por el contrario, si C es
igual a 0, la salida Q mantendr el ltimo valor de D establecido antes del flanco de
bajada del reloj. El funcionamiento del latch D queda recogido en la Tabla 5-4.

Figura 5-4 Latch D sncrono.
Como se ha expuesto anteriormente, los latches sncronos con puertas son elementos
sencillos de memoria que se habilitan durante todo el intervalo de tiempo en el que la
seal de control C es igual a 1. Estos latches se denominan latches sensibles al nivel
porque estn habilitados siempre que la seal de control est a 1. En cualquier
instante de ese tiempo los latches sern transparentes, en el sentido de que cualquier
cambio en las entradas se propagar a la salida. Estos latches funcionan como
elementos de memoria slo despus del flanco de bajada de la seal de control,
cuando mantienen el estado establecido por el ltimo valor de la entrada anterior al
flanco de bajada de la seal de control.
C D Q(actual) Q(siguiente)
0 X 0 0
0 X 1 1
1 0 X 0
1 1 X 1

Tabla 5-4 Tabla de funcionamiento del latch D sncrono.
Como alternativa de diseo con latches sensibles al nivel estn los biestables
maestro-esclavo y los biestables disparados por flanco. La diferencia funcional entre
los latches y los biestables radica en que los biestables maestro-esclavo y los
biestables disparados por flanco no son transparentes, esto es, slo pueden cambiar
de estado durante las transiciones positivas (o negativas) del reloj.
La Figura 5-5 es el diagrama lgico de un biestable D maestro esclavo. Est
implementado utilizando dos latches, denominados maestro (latch de la izquierda) y
esclavo (latch de la derecha). La entrada al latch maestro es la estrada al biestable, la
salida del latch esclavo es la salida del biestable completo.
Prctica 5: Elementos de estado
71

Figura 5-5 Biestable D maestro esclavo.
La Figura 5-6 es el esquema de un biestable disparado por flanco implementado con
tres latches bsicos de puesta a uno, de puesta a cero y de salida, interconectados.

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.
Prcticas de Sistemas Digitales
72

Nombre
del
biestable
Smbolo del
biestable
Tabla
caracterstica
Ecuacin
caracterstica
Tabla de
excitacin

S R Q(t+1) Q(t) Q(t+1) S R
0 0 Q(t) 0 0 0 X
0 1 0 0 1 1 0
1 0 1 1 0 0 1
1 1 X 1 1 X 0
SR


Q(t+1) = S +
RQ


J K Q(t+1) Q(t) Q(t+1) J K
0 0 Q(t) 0 0 0 X
0 1 0 0 1 1 X
1 0 1 1 0 X 1
1 1 Q(t) 1 1 X 0
JK


Q(t+1)=JQ+KQ


D Q(t+1) Q(t) Q(t+1) D
0 0 0 0 0
1 1 0 1 1
1 0 0
1 1 1
D


Q(t+1) = D


T Q(t+1) Q(t) Q(t+1) T
0 Q(t) 0 0 0
1 Q(t) 0 1 1
1 0 1
1 1 0
T


Q(t+1) = TQ
+TQ

Tabla 5-5 Tipos de biestables.
Los smbolos grficos de los biestables de la Tabla 5-5 adems de las entradas ya
mencionadas tienen entradas de set y reset asncronas, esto es, cuando la entrada
Prctica 5: Elementos de estado
73
de set (reset) asncrona es activada el biestable cambia al estado de puesta a uno
(puesta a cero).
Objetivos
Los objetivos de esta prctica son:
1. El estudio prctico tanto estructural como funcional de los latches y los
biestables.
2. Estudio de los comportamientos oscilatorios mediante la simulacin.
3. Aprendizaje y explicacin de relaciones causa-efecto con cronogramas
complejos.
4. Anlisis de circuitos con mltiples realimentaciones.
5. Uso de nuevas caractersticas del programa de simulacin.
6. Propuesta de patrones de test para la verificacin del circuito.
Desarrollo de la prctica
El tiempo programado para la realizacin prctica es de 2 horas. Bsicamente, la
parte experimental consiste en capturar mltiples esquemas correspondientes a
latches o biestables y confrontar que los resultados experimentales coinciden con los
tericos.
En cada uno de los apartados vamos a realizar una o dos simulaciones que
posteriormente habr que justificar en el cuestionario a rellenar durante la sesin de
laboratorio.
Realizacin prctica
La realizacin prctica es casi en su totalidad guiada. Comienza con el estudio de un
latch SR, continua con un latch D sncrono, sigue con un biestable D maestro-esclavo
y termina con un biestable D disparado por flanco con entradas asncronas de preset
y clear. Para el ltimo apartado el alumno deber proponer adems un vector de test
para comprobar el circuito.
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.
Prcticas de Sistemas Digitales
74

Figura 5-7 Ventana de nuevo proyecto.
Captura el esquema correspondiente a la implementacin con puertas NOR de la
Figura 5-1.
Para aadir el nombre de AUX a la conexin entre la salida de la puerta NOR
superior y la primera entrada de la otra puerta NOR selecciona en primer lugar el
cable de unin entre estos dos terminales, la herramienta indica que el cable est
seleccionado cambiando el color del mismo de azul a rojo. Luego pulsa el botn
derecho del ratn y selecciona la opcin Net Properties. Aparece entonces la
ventana de la Figura 5-8, escribe el nombre AUX en el campo nombre y luego pica
en el botn OK.

Figura 5-8 Ventana para la asignacin de un nombre a una conexin.
Cambia la posicin de la etiqueta AUX seleccionndola, picando sobre la etiqueta
con el botn izquierdo del ratn y luego arrastrndola, manteniendo pulsado el botn
izquierdo a la vez que mueves el ratn.
A continuacin generamos la netlist usando la opcin Options Create Netlist... y
la exportamos en el formato EDIF 200 usando la opcin del men principal
Options Export Netlist... Antes de exportar la netlist podemos comprobar que
todo es correcto seleccionando Options Integrity Test. Finalmente abandonamos
el editor de esquemas con File Exit.
A continuacin realizaremos la simulacin del latch SR. Picamos en el botn ,
en la ventana del gestor de proyectos para iniciar el simulador. Una vez en l, usamos
Signal Add Signals... para aadir a la ventana de visualizacin las seales de
entrada S, R, Q y AUX.
Prctica 5: Elementos de estado
75

Figura 5-9 Estmulos para las seales de entrada S y R en el latch SR.
A diferencia de las prcticas anteriores, esta vez no utilizaremos las seales del
contador para los estmulos de entrada. En lugar de ello modelaremos a nuestra
conveniencia las seales de entrada. Las entradas S y R tendrn la forma de onda
mostrada en la Figura 5-9.

Figura 5-10 Ventana de seleccin de estmulos.
Para modelar las seales S y R tenemos que editar frmulas. Selecciona
Signal Add Signal... para que aparezca la ventana de seleccin de estmulos, ver la
Figura 5-10. Pica en el botn Formula... aparecer la ventana para definicin de
frmulas de la Figura 5-11.

Figura 5-11 Ventana para definir frmulas.
En esta ventana pueden definirse frmulas, en primer lugar definiremos la frmula
F0 que luego asignaremos a la seal S y en segundo lugar la frmula F1 que
asignaremos a la seal R.
Pica dos veces en la etiqueta de la frmula F0 para que la herramienta te permita
editar la frmula F0. Escribe en el campo Edit Formula
L10H10L30H10L20H10L10, esto indica que la seal de entrada estar a nivel bajo
10ns, luego otros 10ns a nivel alto, seguido de 30ns a nivel bajo, nuevamente 10ns a
Prcticas de Sistemas Digitales
76
nivel alto, seguirn 20ns a nivel bajo, otros 10 ms a nivel alto y finalmente 10 a
nivel bajo. Para terminar pica en el botn Accept de la ventana para definir frmulas.
Repite los mismos pasos para definir la frmula F1. Escribe en el campo Edit
Formula L30H10L15H10L10H15L10. Pica en el botn Accept y finalmente en el
botn Close.
Ahora es posible asignar la frmula F0 y F1 a las seales de entrada S y R. En la
ventana de seleccin de estmulos una fila de estmulos est etiquetada con el nombre
Form:, ver Figura 5-10. Pica en la seal de entrada S y luego en el cuadrado ms a
la derecha de dicha fila, as se asigna el estmulo F0 a la seal de entrada S. Luego
pica en la seal de entrada R y posteriormente en el segundo cuadrado empezando
por la derecha, as se asigna el estmulo F1 a la seal de entrada R.
Cambia el tiempo de simulacin para que este sea 100ns, para ello escribe en la
subventana intermedia en la barra de herramientas principal el valor de 100ns.
A continuacin vamos a realizar la simulacin del latch SR en los dos modos de
simulacin: el funcional y el unitario.
Simulacin funcional del latch SR
Pulsa el botn para comenzar la simulacin funcional.

Figura 5-12 Mensaje de error por oscilaciones.
Despus de esperar un tiempo aparece el mensaje de la Figura 5-12, el cual indica
que la herramienta de simulacin ha detectado un comportamiento oscilatorio del
sistema. Pulsa el botn para detener la simulacin. El resultado de la simulacin
es la Figura 5-13.

Figura 5-13 Simulacin funcional del latch SR.
En el modo funcional de simulacin la herramienta presupone la situacin ideal
donde todos los componentes lgicos tienen retardo de 0 ns. Ello ocasiona que
cuando las entradas S y R cambian simultneamente del nivel lgico alto al nivel
lgico bajo, con retardo de 0 ns, sus salidas cambiarn del nivel lgico bajo al nivel
alto, lo cual provocar que con retardo 0 la salida cambie nuevamente de nivel, y as
sucesivamente. Por tanto ocurre una oscilacin irresoluble para la herramienta de
simulacin.
Prctica 5: Elementos de estado
77
Puede ocurrir que para ver claramente el cronograma para la simulacin del latch SR
que tengas que aumentar el factor de visualizacin .
Una vez aumentada la escala de visualizacin nos centraremos en los detalles en el
intervalo [0ns, 10ns]. En este intervalo observamos que el estado de las seales de
salida Q y AUX es desconocido. Esto es as ya que en un latch SR cuando las dos
entradas S y R toman el valor 0 las salidas permanecen inalteradas, pero inicialmente
el simulador desconoce el valor.
Simulacin con retardo unitario del latch SR

Figura 5-14 Cambio a simulacin unitaria.
Cambia el modo de simulacin a Unit para que el simulador asigne un retardo
unitario a cada puerta y fija que el retardo sea de 1 ns. Ver para ello la Figura 5-14 y
la Figura 5-15.

Figura 5-15 Fijacin de retardo unitario a 1 ns.
Cambia el tiempo de simulacin para que este sea 100ns, para ello escribe en la
subventana intermedia el valor de 100ns. Finalmente pulsa el botn para
comenzar la simulacin. El resultado de la simulacin es la Figura 5-16.
Prcticas de Sistemas Digitales
78

Figura 5-16 Simulacin del latch SR implementado con puertas NOR.
Puede ocurrir que para ver claramente el cronograma para la simulacin del latch SR
que tengas que aumentar el factor de visualizacin .
En el intervalo [90ns, 100ns] observamos que mientras las dos seales de entrada S y
R estn a nivel alto, ambas salidas Q y AUX estn a nivel bajo. En el instante de
simulacin correspondiente a 90ns las entradas S y R cambian simultneamente a
nivel bajo, produciendo un retardo de puerta despus un cambio en las seales de
salida. A su vez un retardo de puerta despus produce un nuevo cambio en la salida y
as sucesivamente.
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.

Figura 5-17 Estmulos de prueba para el latch D sncrono.
El resultado de la simulacin funcional es la Figura 5-18. En este caso puedes
comprobar que la herramienta de simulacin no detecta ningn comportamiento
oscilatorio.
Prctica 5: Elementos de estado
79

Figura 5-18 Resultado de la simulacin del latch D sncrono.
Biestable D maestro esclavo
La parte prctica de este apartado consiste en capturar el esquema del biestable D
descrito en la Figura 5-5, y realizar la simulacin con retardo unitario del mismo.
El latch D utilizado en el esquema viene ya implementado en la biblioteca para la
familia XC9500 con el nombre LD.
Las seales de entrada CLOCK y D para la simulacin, as como el resultado de la
simulacin, se muestra en la Figura 5-19.

Figura 5-19 Resultado de la simulacin con retardo unitario del biestable D
maestro esclavo.
Nuevamente habr que utilizar las entradas tipo Frmula para luego asignarlas a
las seales de entrada CLOCK y D.
Biestable D disparado por flanco con entradas asncronas de set y clear
La parte prctica en este apartado consiste en capturar el esquema de la Figura 5-6 y
realizar una simulacin con retardo unitario del mismo.
Los valores para las seales de entrada y el resultado de la simulacin aparecen en la
Figura 5-20. Observa que las seales de entrada PRS y CLR estn puestas a 1.
Prcticas de Sistemas Digitales
80

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.
Prctica 5: Elementos de estado
81
Autocuestionario (a rellenar ANTES de la sesin de laboratorio)
1. Qu es una frmula? Cmo se edita su valor? Cmo se asocia una frmula
a una seal de entrada?
2. Cmo se asigna un nombre a una conexin entre terminales?
3. Cmo se detiene la simulacin cuando la herramienta de simulacin detecta
un comportamiento oscilatorio?
4. Qu ventajas presenta la simulacin funcional sobre la simulacin con
retardo unitario?
5. Cmo se fija el tiempo de simulacin?
6. Cmo se fija el retardo unitario de la simulacin?
7. Cmo se cambia entre simulacin funcional y simulacin con retardo
unitario?
8. Para qu sirven las seales de PRS y CLR en el esquema de la Figura 5-6?
Cuestionario de laboratorio (a rellenar durante la sesin de laboratorio)
1. Explica el cronograma de la Figura 5-13.
2. Explica el cronograma de la Figura 5-16.
3. Explica el cronograma de la Figura 5-18.
4. Explica el cronograma de la Figura 5-20.
5. Explica las similitudes y las diferencias entre la Figura 5-13 y la Figura 5-16.

83
6. Prctica 6:Camino de datos
ndice

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.
Prcticas de Sistemas Digitales
84
2. Aprendizaje de nuevas funcionalidades de la herramienta de simulacin.
3. Utilizacin de las tcnicas de modularizacin y jerarquizacin para el diseo
de sistemas complejos.
Desarrollo de la prctica
El desarrollo de esta prctica consta de dos pasos: en el primero, tras un trabajo
previo de diseo personal en papel, se implementa la unidad de control; en segundo
lugar, se captura el esquema del camino de datos propuesto en este guion y
posteriormente ambas partes se unen para construir el multiplicador.
Multiplicador binario
Resulta complejo realizar el diseo y posterior implementacin de un circuito digital
que realice la operacin de multiplicacin binaria usando tcnicas exclusivamente
combinacionales. En cambio, si se utilizan tcnicas secuenciales el proceso se
simplifica bastante.
En general, aplicando tcnicas de diseo de circuitos secuenciales es posible
trasladar, la mayora de las veces, fcilmente una especificacin algortmica a un
circuito digital que la implemente.
La Figura 6-1 es un ejemplo de algoritmo de multiplicacin mediante sumas
iterativas. Este algoritmo dista mucho de ser ptimo segn criterios de coste y
velocidad, pero en cambio es muy sencillo de implementar en un circuito digital.
En primer lugar vamos a examinar el algoritmo para detectar qu componentes
estructurales haran falta para su implementacin en un circuito digital. Este paso
recibe el nombre de diseo de la ruta o camino de datos.
En segundo lugar disearemos una unidad de control para esa ruta de datos. La
funcionalidad de la unidad de control es generar convenientemente las seales de
control para esa ruta de datos de manera que la multiplicacin tenga lugar
correctamente. Esta unidad de control ser en este caso simplemente una mquina de
estados finitos tipo Moore.
Diseo de la ruta de datos del multiplicador binario de 4 bits
Examinando el algoritmo de multiplicacin binaria descrito en la Figura 6-1
detectamos que necesitamos tres lugares o registros de 4 bits para almacenar datos.
Un registro de 4 bit para la variable CX, otro para CY y uno ms para P de 8 bits.
Prctica 6:Camino de datos
85
CX = X;
CY=Y;
P ='0';
CY='0'?
P = CX + P;
CY = CY -1;
Fin
Inicio
NO
S
Un algoritmo de multiplicacin: P = X x Y
Estado S0
Estado S1
Estado S2

Figura 6-1 Un algoritmo de multiplicacin.
Las operaciones realizadas en el algoritmo de multiplicacin son sumas y
decrementos. Debe ser posible realizar la suma entre el contenido del registro CX y
el contenido del registro P y guardar nuevamente el resultado en P. Tambin debe ser
posible decrementar en una unidad el registro CY. Por tanto, necesitamos una ALU.
Esta ALU debe ser de 8 bits ya que en general el resultado de multiplicar dos
nmeros binarios de n bits en un nmero binario de 2n bits.
Una posible ruta de datos implementada con componentes elementales de la
biblioteca de la herramienta de captura de esquemticos con todas esta
funcionalidades puede verse en la Figura 6-2. Esta misma ruta de datos se muestra a
mayor escala en la Figura 6-11.
Prcticas de Sistemas Digitales
86

Figura 6-2 Ruta de datos para la multiplicacin binaria de nmeros de 4 bits.
El registro CX es el componente de la biblioteca FD4RE. Es un registro de 4 bits
integrado por un bloque con 4 biestables D disparados por flanco y con el terminal de
entrada sncrona R (reset) siempre inactivo.
El registro CY es el componente de la biblioteca CB4X2. Es un registro contador
de 4 bits bidireccional, es decir, puede contar de forma ascendente o descendente.
Posee funcionalidad para cargar el valor presente en las seales de entrada D[3:0] y
tambin tiene el terminal de entrada sncrono R (reset) siempre inactivo.
El registro P es el componente de la biblioteca FD8RE. Es exactamente igual que
el registro CX, pero con 8 bits. A diferencia del registro CX, el registro P no tiene la
seal de entrada sncrona R (reset) siempre inactiva, sino que en su lugar est
conectado el terminal de entrada RSP que controlar la puesta a cero de este registro.
Adems, esta ruta de datos utiliza la ALU de 8 bits ADD8 para calcular la suma de
los registros CX y P, almacenando el resultado en el registro P.
Nombre Tipo Funcionalidad
CLK Entrada Seal de reloj. En el flanco de subida de la seal CLK ocurren
los cambios en los registros.
LDX Entrada Carga el contenido del bus X en el registro CX.
LDY Entrada Carga el contenido del bus Y en el registro contador CY.
LDP Entrada Carga la salida de la ALU en el registro P.
RSP Entrada Pone a cero el registro P.
DCY Entrada Decrementa el registro contador CY.
CYZ Salida Indica cuando el registro contador CY es cero.

Tabla 6-1 Funcionalidad de las seales de control del camino de datos.
Prctica 6:Camino de datos
87
En la Tabla 6-1 est descrito el comportamiento de las seales de control del camino
de datos de la Figura 6-2.
As por ejemplo, para realizar las operaciones dentro del bloque etiquetado como
estado S1 en el organigrama de la Figura 6-1, es suficiente con activar las seales
LDX, LDY y RSP. Para realizar las operaciones descritas en el bloque con nombre
estado S2 basta con activar las seales LDP y DCY.
El comportamiento de esta ruta de datos puede abstraerse en un bloque funcional
como el representado en la Figura 6-3. Este bloque funcional exporta nicamente los
valores de las entradas y las salidas de la ruta de datos correspondiente al
multiplicador binario de 4 bits.

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.
Diseo de la unidad de control del multiplicador binario de 4 bits
La especificacin del comportamiento de la unidad de control para el camino de
datos de la Figura 6-3 puede verse en la Figura 6-4.
Prcticas de Sistemas Digitales
88

Figura 6-4 Mquina de estados finitos para la especificacin de la unidad de
control.
Consta de tres estados: S0, S1 y S2, y adems de manejar las seales del camino de
datos tiene otras tres seales ms: RST (reset), START y DONE.
La seal de entrada RST lleva a la mquina al estado inicial. En el instante de tiempo
cero el estado inicial es aleatorio, los estados de los biestables pueden ser
cualesquiera y es por ello que antes de comenzar a utilizar el circuito de
multiplicacin es necesario un pulso en la seal de RST que lleve el circuito al
estado S0.
La seal de entrada START indica a la unidad de control que debe comenzar a
realizar una operacin de multiplicacin y que en el siguiente pulso de reloj los datos
a multiplicar X e Y van a estar disponibles en los buses de entrada del camino de
datos.
Finalmente, la seal DONE indica que la operacin de multiplicacin ha finalizado y
que el resultado est en el bus de salida P. Esta seal es necesaria porque el nmero
de ciclos que tarda en realizarse la operacin de multiplicacin no es constante,
depende de los operandos. En ausencia de esta seal debera esperarse siempre el
nmero mximo de ciclos.

Figura 6-5 Realizacin de una operacin de multiplicacin.
La Figura 6-5 muestra la secuencia de activacin de las seales en la unidad de
control del circuito de multiplicacin. En primer lugar, la activacin de la seal de
RST, lleva a la unidad de control al estado S0. A continuacin, la activacin de la
Prctica 6:Camino de datos
89
seal de START indica que la operacin de multiplicacin tenga lugar. Tras varios
ciclos de reloj la unidad de control activa la seal de DONE para indicar que la
operacin ha finalizado.
El diagrama de estados de la Figura 6-4 especifica todo el control necesario para la
operacin de multiplicacin.
En esta figura, las acciones estn dibujadas dentro de un recuadro fuera de los
estados, a diferencia de los diagramas habituales, simplemente por razones de
espacio.
El diagrama est capturado con una herramienta que soporta el lenguaje de
descripcin de hardware VHDL. En este lenguaje los operadores de asignacin y de
igualdad son los smbolos <= y =, respectivamente, y de aqu su uso para
especificar las operaciones en el diagrama.
En el estado S0, que es el estado inicial o de partida de la mquina de estados finitos,
todas las lneas de control estn inactivas a excepcin de la seal de salida DONE
que indica que una operacin ha terminado. La seal DONE est activa en el estado
S0 porque S0, adems de ser el estado inicial, es tambin el estado final, y en el
estado final debe estar activa para indicar el fin de la operacin de multiplicacin.
Cuando la seal de entrada START es activada ocurre una transicin al estado S1.
En este estado se activan las seales LDX, LDY y RSP que ocasionan la carga de los
registros CX, CY y la puesta a cero del registro P. Adems DONE est inactiva.
Una vez en el estado S1, si el registro CY es cero la operacin ha terminado, puesto
que esto quiere decir que estamos multiplicando por cero. Por el contrario, si el
registro CY no es cero ocurre una transicin al estado S2.
En el estado S2 de manera iterativa se va acumulando en el registro P, el contenido
del registro CX, tantas veces como indica el contenido del registro CY. Esto se
realiza con la transicin que nos hace ir una y otra vez a S2 siempre que CYZ sea
igual a cero.
Al final ocurrir una transicin al estado S0 cuando tras los decrementos oportunos
CY alcance el valor cero.
El smbolo indica la activacin asncrona de la seal de RST. Significa que, sin
depender de la seal de CLK, la mquina secuencial debe ir al estado S0. En la
implementacin de la unidad de control se usarn las seales de PRESET y CLEAR
de los biestables para aadir este comportamiento.
El diagrama de bloques de la unidad de control se muestra en la Figura 6-6.
Prcticas de Sistemas Digitales
90
Diseo del multiplicador binario de 4 bits

Figura 6-6 Bloque funcional de la unidad de control del multiplicador binario
de 4 bits.
Una vez diseados el camino de datos y la unidad de control, para finalizar el diseo
del multiplicador binario ser nicamente necesario conectar los diagramas de
bloques de la Figura 6-3 y de la Figura 6-6, tal y como muestra la Figura 6-7.

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.
Prctica 6:Camino de datos
91
Para ello picamos es la seal en primer lugar para seleccionarla y posteriormente en
la letra que deseamos asociar a la seal. Por ejemplo para asociar la seal RST con la
letra r, basta con picar en la seal de RST en la ventana de simulacin y luego picar
con el ratn en la letra r en la ventana de estmulos. La Figura 6-8 muestra las seales
RST y START asociados a las letras r y s. Para cambiar los valores de los estmulos
basta pulsar en el teclado las teclas r o s. Por cada pulsacin la seal cambiar su
valor desde el nivel alto al nivel bajo o viceversa.

Figura 6-8 Ventana con estmulos asociados a teclas.

Implementacin de la unidad de control
Para la realizacin de este apartado es necesario que el alumno realice una propuesta
de diseo de unidad de control que implemente el control especificado en la Figura
6-4, y que la traiga en papel para la primera sesin de laboratorio de esta prctica. El
tipo de biestable y la codificacin de estados son arbitrarios.
Realiza la simulacin que consideres oportuna cara a verificar que el diseo
propuesto funciona correctamente y finalmente crea una macro para este diseo.
Implementacin del camino de datos

Figura 6-9 Smbolo GND.
Captura el camino de datos de la Figura 6-2. En este esquema el smbolo etiquetado
con GND corresponde al smbolo GND de la Figura 6-9.
Prcticas de Sistemas Digitales
92
Realiza la simulacin que consideres oportuna cara a verificar que el diseo
propuesto funciona correctamente y finalmente crea una macro para este diseo.
Implementacin del multiplicador de 4 bits
En este apartado debes establecer las conexiones entre el camino de datos y la unidad
de control, tal y como indica la Figura 6-7.
Realiza la simulacin que consideres oportuna cara a verificar que el diseo
propuesto funciona correctamente.
La Figura 6-10 muestra el resultado de la simulacin para la multiplicacin de los
nmeros X=6 e Y=4 con el resultado de P=24. En esta simulacin tambin se
muestra el secuenciamiento de las seales de control as como las seales de estado.

Figura 6-10 Resultado de la simulacin de la multiplicacin entre los nmeros
X=6 e Y=4.

Prctica 6:Camino de datos
93
Anexo

Figura 6-11 Ruta de datos para la multiplicacin binaria de 4 bits.

Prcticas de Sistemas Digitales
94

Autocuestionario (a rellenar ANTES de la sesin de laboratorio)
1. Especifica la implementacin de la unidad de control. Esta pregunta pretende
que con profusin especifiques en papel antes de comenzar la realizacin en
laboratorio el tipo de biestable que utilizars, el circuito combinacional para
realizar la transicin al estado siguiente, as como el circuito combinacional
que produce la salida.
Cuestionario de laboratorio (a rellenar durante la sesin de
laboratorio)
1. Cuntos ciclos de reloj tarda en realizarse una multiplicacin?
2. Qu mejoras podramos introducir para que la multiplicacin fuese ms
rpida?
3. Qu ocurre al activar la seal de reset a mitad de una multiplicacin?
4. Qu nmeros tardan ms en multiplicarse?
5. Qu modificaciones son necesarias para multiplicar nmeros en
complemento a dos?
6. Por qu ha sido necesario utilizar un sumador de 8 bits si tanto X como Y
son operandos de 4 bits?
7. Funciona el circuito en una simulacin con retardo unitario de 1ns y periodo
de reloj de 10ns? Por qu? Qu debes modificar para que el circuito
funcione?


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
Prcticas de Sistemas Digitales
96
simulador (fichero con extensin .tve). En el caso de persistir el error prueba
a utilizar un disquete vaco.
Errores en el editor esquemtico
1. El editor de esquemticos muestra una hoja de diseo vaca en lugar del
diseo capturado. Una forma de encontrar el diseo es picar en el botn de
zoom de rea completa en la barra de herramientas principal, de esta
manera toda la hoja de diseo aparece en la ventana del esquemtico. Es
posible hacer zoom de un rea particular picando en primer lugar en el botn
, luego pica con el ratn en el vrtice superior izquierdo de un recuadro
imaginario conteniendo la parte del esquemtico que se quiere ampliar y
posteriormente en la esquina inferior izquierda de ese recuadro. El recuadro
marcado ocupar ahora toda la hoja del esquemtico.
2. Cuando un smbolo est situado cerca de otro, ambos parecen estar
interconectados, pero no es as. Los smbolos deben conectarse siempre con
cables. Lo mejor para no cometer errores es no situar un smbolo cerca de
otro. El paso Integrity Test, al generar la netlist avisa de esta situacin. Los
mensajes de este paso aparecen en la subventana de mensajes dentro de la
ventana principal del gestor de proyectos. En el paso de simulacin
probablemente debido a estas conexiones no realizadas aparecern salidas
con valor X (desconocido) o Z (alta impedancia).
3. Nombrar diferentes nodos con el mismo identificador ocasiona que estos sean
todos el mismo punto elctrico. Cada nodo tiene que tener un nombre propio
nico, a menos que el diseador lo que realmente quiera sea que dos nodos en
diferente lugar del esquema sean el mismo punto elctrico. En el paso de
simulacin, probablemente debido a estos cortocircuitos, aparecern salidas
con valor X (desconocido) o Z (alta impedancia).
4. Al actualizar el diseo de una macro deben actualizarse tambin los datos del
simulador. Esto puede realizarse en dos pasos: en el primero hay que utilizar
la opcin de UPDATE SIMULATOR en el editor de esquemticos y en el
segundo exportar la netlist.
5. Al usar una tierra (GND) o alimentacin (Vcc) deben utilizarse los smbolos
de la SC Symbol Libray y no el smbolo GND en la barra de herramienta de
la izquierda, en la ventana del editor de esquemticos.
6. El editor de esquemticos muestra los smbolos en color gris. Este error
puede ocurrir al aadir un esquema ya existente a un proyecto nuevo. Para
evitar esta situacin, deben incorporarse al proyecto las libreras
correspondientes del esquema a aadir. Por ejemplo, si el fichero con el
esquemtico tiene de nombre ALU4.SCH debe aadirse la librera
ALU4, para ello selecciona FILE->PROJECT LIBRARIES..., pica en la
librera ALU4 y luego pica en el botn ADD>>. La librera ALU4
aparecer ahora como una librera del proyecto. Para actualizar el esquema
cierra y vuelve abrir el editor de esquemas.
Errores en el simulador
1. El simulador no muestra las seales. Cuando la escala de visualizacin es
muy pequea las seales tienen que dibujarse en muy pocos pixeles, la
Errores ms frecuentes
97
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] Floyd, Thomas L. Principios digitales, 6 edicin. Prentice Hall.
[Gask97] Gajski, Daniel D., Principios de diseo digital, Prentice Hall.
[Haye96] Hayes, Jhon P., Introduccin al Diseo Lgico Digital, Addison
Wesley Iberoamericana.
Pgina Web de Xilinx Foundations Series: http://www.xilinx.com

S-ar putea să vă placă și