Sunteți pe pagina 1din 107

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 i

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

ndice Simulacin funcional del latch SR................................................................. 76 Simulacin con retardo unitario del latch SR ................................................ 77 Latch D sncrono............................................................................................ 78 Biestable D maestro esclavo .......................................................................... 79 Biestable D disparado por flanco con entradas asncronas de set y clear ...... 79 Autocuestionario (a rellenar ANTES de la sesin de laboratorio)........................ 81 Cuestionario de laboratorio (a rellenar durante la sesin de laboratorio) .......... 81 6. 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

iii

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 v

Prcticas de Sistemas Digitales 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: vi

Acerca de las prcticas de Sistemas Digitales 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.

vii

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 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 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 X 0 0 1 1 Y 0 1 0 1 Z 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

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

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 . Entonces se ejecuta el editor de esquemas que tiene una apariencia en el botn 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. 6

Prctica 1: Introduccin a las herramientas de diseo 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 de la barra de herramientas o bien vamos a la parte superior pulsamos el botn 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

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 8

Prctica 1: Introduccin a las herramientas de diseo 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

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.

10

Prctica 1: Introduccin a las herramientas de diseo

Figura 1-14 Ventanas del simulador lgico funcional y visualizacin de seal. 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. 11

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

Prctica 1: Introduccin a las herramientas de diseo 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.

13

Prcticas de Sistemas Digitales

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?

14

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 15

Prcticas de Sistemas Digitales 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 INPUT0 0 0 0 0 1 1 1 INPUT1 0 0 1 1 0 0 1 1 CARRY_INPUT 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 Salidas del circuito SUM CARRY_OUTPUT 0 0 0 1 0 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 16

Prctica 2: Circuitos combinacionales 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: SUM = INPUT 0 INPUT 1 CARRY _ INPUT CARRY _ OUT = INPUT 0 INPUT 1 + CARRY _ INPUT * ( INPUT 0 INPUT 1) 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.

17

Prcticas de Sistemas Digitales

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 File Save As y rellenamos los campos de la ventana con los valores indicados en la Figura 2-4. Finalmente picamos en el botn Aceptar.

18

Prctica 2: Circuitos combinacionales

Figura 2-4 Ventana para guardar el esquema con otro nombre. Una vez que hemos finalizado el esquema generamos una 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. Ahora debemos comprobar que el sumador funciona correctamente. Picamos en el , en la ventana del gestor de proyectos para iniciar el simulador. Una vez botn en l, usamos Signal Add Signals... para aadir las entradas y salidas en la ventana de visualizacin de seales. Luego, seleccionando Signal Add Stimulators... conectamos las entradas a los tres bits inferiores del contador binario (Bc0, Bc1, en la barra de herramientas del simulador Bc2). Finalmente, picamos en el botn 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 File Save Simulation State y cerramos la herramienta de simulacin con File Exit. 19

Prcticas de Sistemas Digitales

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 Document Add... 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 Tools Design 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 Mode Select 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 Edit Copy y luego lo recuperamos del portapapeles con la opcin Edit Paste. Aparecer entonces un recuadro que contiene todo el diseo en su interior, tal y como se muestra en la Figura 2-7. Movemos el recuadro debajo de los componentes que ya tenemos situados, de manera que no se solapen entre s, y lo situamos definitivamente picando con el botn izquierdo. Si lo hemos hecho mal,

20

Prctica 2: Circuitos combinacionales todava tenemos una oportunidad de deshacer los cambios seleccionando en el men Edit Undo.

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.

21

Prcticas de Sistemas Digitales

Figura 2-9 Esquema tras haber cambiado los nombres de los terminales Algunos terminales en el esquema del sumador binario de dos bits son diferentes a los terminales en el sumador binario de un bit. En concreto tenemos que realizar un encadenamiento de los acarreos entre las etapas, es decir, tenemos que unir la seal CO0 con CI1, y estas seales quedarn como seales internas al diseo. Esto quiere decir que desde un punto de vista externo carecen de significado. Por ello, hemos de eliminarlos. Para borrar cualquier componente primero lo seleccionamos con el ratn picando con el botn izquierdo y luego pulsamos la tecla Suprimir. Hacemos este proceso para borrar el OBUF asociado al terminal CO0, el propio terminal CO0, el IBUF asociado al terminal CI1 y el terminal CI1. Conectamos entonces la salida y la entrada de las puertas lgicas donde antes estaban conectados los terminales CO0 y CI1. El esquema final debe ser equivalente al de la Figura 2-10.

22

Prctica 2: Circuitos combinacionales

Figura 2-10 Esquema final del sumador binario de dos bits. Creamos ahora una netlist usando 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 comprobamos que todo es correcto con Options Integrity Test. Finalmente abandonamos el editor de esquemas con File Exit. 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 Signal Add 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 Signal Add 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.

23

Prcticas de Sistemas Digitales

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 Signal Bus Combine 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 Signal Bus Bus Name... y escribimos el nuevo nombre. Tambin es posible cambiar el formato de representacin de los valores en los buses a binario, octal, decimal o hexadecimal. Para cambiar un valor, por ejemplo a binario, primero seleccionamos el bus y luego 24

Prctica 2: Circuitos combinacionales usamos la opcin Signal Bus Binary. 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 File Save Simulation State y cerramos la herramienta de simulacin con File Exit.

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.

25

Prcticas de Sistemas Digitales

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.

26

Prctica 2: Circuitos combinacionales

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 Options Start 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. 27

Prcticas de Sistemas Digitales

Figura 2-17 Resultado de la simulacin del sumador binario de 8 bits.

28

Prctica 2: Circuitos combinacionales

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?

29

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 28 x 28 = 65536 combinaciones de entrada, los correspondientes valores de las salidas, lo cual hace impracticable la construccin de dicha tabla de verdad. La solucin para la construccin de tales circuitos est en la capacidad humana de descomponer un problema en problemas ms simples y luego combinar las soluciones de los problemas ms simples para obtener la solucin del problema original. Para abordar el diseo del circuito sumador binario de 8 bits, la solucin fue considerarlo como cuatro sumadores de dos bits y estos a su vez formados por sumadores de un bit. El resultado es un diseo jerrquico por niveles, tal y como se muestra en la Figura 3-1.

31

Prcticas de Sistemas Digitales

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.

32

Prctica 3:Diseo modular y jerrquico 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.

33

Prcticas de Sistemas Digitales


B 32 1 1 1 32 M S0 S1

A 32

CO 1

Unidad aritmtico lgica

Desbordamiento

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.
A3 B3 A2 B2 A1 B1 A0 B0

L E

A E

L E

A E

L E

A E

L E

A E

C4

X3

Y3

C3

X2

Y2

C2

X1

Y1

C1

X0

Y0

C0

1 bit

1 bit

1 bit

1 bit

F3

F2

F1

F0

Figura 3-3 Sumador de 4 bits con ampliadores aritmticos (AE) y lgicos (LE). Como la ALU en cuestin realiza cuatro operaciones aritmticas y cuatro operaciones lgicas, es necesario introducir una variable de control de modo, M, que 34

Prctica 3:Diseo modular y jerrquico 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, S1 y S0, que habilitarn la seleccin de las cuatro operaciones aritmticas o de las cuatro operaciones lgicas. Los valores asignados a S1 y S0, para cada operacin aritmtica, se resumen en la Tabla 3-1. M S1 S0 Funcin 1 1 1 1 0 0 1 1 0 1 0 1 Decremento Suma Resta Incremento F A-1 A+B A X A A A Y Todos unos B B Todos ceros C0 0 0 1 1

A+B+1 A

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 C0. 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 S1 S0 Bi Yi 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 x 0 0 1 1 0 0 1 1 x 0 1 0 1 0 1 0 1 x 1 1 0 1 1 0 0 0 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 Bi e Yi, indicando cual es el valor de cada Yi en funcin de M, S1, S0 y tambin del correspondiente valor de Bi. A partir de esta tabla puede obtenerse la expresin booleana para Yi.: Yi = MS1Bi + MS0 Bi 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.

35

Prcticas de Sistemas Digitales

Figura 3-4 Esquema lgico del AE. A partir de la Tabla 3-1 obtenemos la ecuacin lgica para el bit de acarreo inicial: C0 = MS1 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 C0 siempre estn al valor 0 para operaciones lgicas, mientras que las entradas X requieren diferentes expresiones booleanas para cada una de estas operaciones. M S1 S0 Funcin 0 0 0 0 0 0 1 1 0 1 0 1 Complemento AND Identidad OR F A A A OR B X A A A OR B Y 0 0 0 C0 0 0 0 0

A AND B A AND B 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 S1 S0 Xi 0 0 0 0 1 0 0 1 1 X 0 1 0 1 X Ai Ai Bi Ai Ai+Bi Ai

Tabla 3-4 Tabla de verdad del LE. Xi = MS1S0Ai + MS1S0Bi + S0AiBi + S1Ai + MAi

36

Prctica 3:Diseo modular y jerrquico 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.

37

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

38

Prctica 3:Diseo modular y jerrquico

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.

39

Prcticas de Sistemas Digitales

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.

40

Prctica 3:Diseo modular y jerrquico

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.

41

Prcticas de Sistemas Digitales

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.

42

Prctica 3:Diseo modular y jerrquico

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.

43

Prcticas de Sistemas Digitales

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.

44

Prctica 3:Diseo modular y jerrquico

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.

45

Prcticas de Sistemas Digitales 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 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 Complemento AND Identidad Or Decremento Suma Resta 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 46

Prctica 3:Diseo modular y jerrquico 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 para aadir seales. El editor simulacin de la Figura 3-24. Pica en el botn 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 47

Prcticas de Sistemas Digitales 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, S1 y S0 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.

48

Anexo

Figura 3-27 Diagrama esquemtico del AE.

49

Prcticas de Sistemas Digitales

Figura 3-28 Diagrama esquemtico del LE.

50

Prctica 3:Diseo modular y jerrquico

Figura 3-29 Diagrama esquemtico de la ALU de 4 bits.

51

Prcticas de Sistemas Digitales

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, S1 y S0? 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?

52

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

53

Prcticas de Sistemas Digitales 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 = 1012 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. tPHL: 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. tPLH: 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 tpd 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.

54

Prctica 4: Retardo de puertas yz x 0 1 00 01 11 10


0 1 3 2

1
4 5 7 6

1 1

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 t0 = 20ns, seguida por un cambio de b a 0 en t0 + 1 ns y por un cambio en a al valor 1 en t0 + 2 ns. Ya que F es igual al valor de (a OR b), F cambia a 0 en t1 = t0 + 2 ns y vuelve a valer 1 en t2 = t0 + 3 ns.
a 1 1 1 1 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.

55

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

56

Prctica 4: Retardo de puertas M S1 S0 Bi Yi 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 x 0 0 1 1 0 0 1 1 x 0 1 0 1 0 1 0 1 x 1 1 0 1 1 0 0 0 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 Bi cambie de estado lgico con S1= 0 y S0 = 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 S0, S1 Bi 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.

57

Prcticas de Sistemas Digitales S1 S0 bi 0 1 00


0

01
1

11
3

10
2

1
4 5 7

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

58

Prctica 4: Retardo de puertas

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, S0, S1 y Bi. 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 Yi. La ventana de visualizacin de seales con las seales aadidas debe ser similar a la Figura 4-9. 59

Prcticas de Sistemas Digitales

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 60

Prctica 4: Retardo de puertas 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, S1 = S0 = 0 y Bi = 1 a la configuracin M =1, S1 = S0 = 0 y Bi = 0 produce un resultado no deseado. La transicin contraria, de la configuracin M =1, S1 = S0 = 0 y Bi = 0 a la configuracin M =1, S1 = S0 = 0 y Bi = 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.

61

Prcticas de Sistemas Digitales

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, S1, S0 y Bi los estmulos correspondientes a los 4 bits menos significativos del contador binario (Bc3, Bc2, Bc1 y Bc0). Con 4 entradas existen un total de 24 = 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.

62

Prctica 4: Retardo de puertas

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, S1 = 1, S0 = 1 y Bi = 1 a la configuracin M =1, S1 = 0, S0 = 0 y Bi = 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. 63

Prcticas de Sistemas Digitales

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.

64

Prctica 4: Retardo de puertas

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?

65

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).

67

Prcticas de Sistemas Digitales

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 0 0 0 1 1 R 0 0 1 0 1 Q(actual) 0 1 X 0 X Q(siguiente) 0 1 0 1 0 Q(siguiente) 1 0 1 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 68

Prctica 5: Elementos de estado 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) 0 0 1 1 1 0 1 0 1 1 X X X 0 1 1 1 0 0 1 Q(siguiente) 1 0 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 0 0 1 1 1 1 1 R Q(actual) Q(siguiente) 0 1 0 1 X X X 0 1 0 1 0 1 indefinido X X X X 0 0 0 1 1 0 0 1 0 1

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 69

Prcticas de Sistemas Digitales 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 0 1 1 X 0 X 1 0 1 X X 0 1 0 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.

70

Prctica 5: Elementos de estado

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.

71

Prcticas de Sistemas Digitales Nombre del biestable SR S 0 0 1 1 JK J 0 0 1 1 K Q(t+1) 0 1 0 1 Q(t) 0 1 Q(t) Q(t+1)=JQ+KQ Q(t) Q(t+1) J K 0 0 1 1 0 1 0 1 0 X 1 X X 1 X 0 R Q(t+1) 0 1 0 1 Q(t) 0 1 X Q(t+1) = S + RQ Q(t) Q(t+1) S R 0 0 1 1 0 1 0 1 0 X 1 0 0 1 X 0 Smbolo del biestable Tabla caracterstica Ecuacin caracterstica Tabla de excitacin

D 0 D 1

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

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

D 0 1 0 1

T 0 T 1

Q(t+1) Q(t) Q(t) Q(t+1) = TQ +TQ

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

T 0 1 1 0

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 72

Prctica 5: Elementos de estado 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.

73

Prcticas de Sistemas Digitales

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.

74

Prctica 5: Elementos de estado

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

75

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

76

Prctica 5: Elementos de estado 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 comenzar la simulacin. El resultado de la simulacin es la Figura 5-16. para

77

Prcticas de Sistemas Digitales

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.

78

Prctica 5: Elementos de estado

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.

79

Prcticas de Sistemas Digitales

Figura 5-20 Simulacin con retardo unitario del biestable D disparado por flanco. En esta simulacin las seales de entrada de PRS y CLR estn fijas a valor alto. Modifica estas seales asignndoles frmulas, de manera que pueda observarse su funcionalidad en el resultado de la simulacin.

80

Prctica 5: Elementos de estado

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.

81

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.

83

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

84

Prctica 6:Camino de datos

Un algoritmo de multiplicacin: P = X x Y Inicio Estado S0

CX = X; CY=Y; P ='0';

Estado S1

CY='0'? NO P = CX + P; CY = CY -1;

Estado S2

Fin

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.

85

Prcticas de Sistemas Digitales

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 CLK LDX LDY LDP RSP DCY CYZ Tipo Funcionalidad Entrada Seal de reloj. En el flanco de subida de la seal CLK ocurren los cambios en los registros. Entrada Carga el contenido del bus X en el registro CX. Entrada Carga el contenido del bus Y en el registro contador CY. Entrada Carga la salida de la ALU en el registro P. Entrada Pone a cero el registro P. Entrada Decrementa el registro contador CY. Salida Indica cuando el registro contador CY es cero.

Tabla 6-1 Funcionalidad de las seales de control del camino de datos. 86

Prctica 6:Camino de datos 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.

87

Prcticas de Sistemas Digitales

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 88

Prctica 6:Camino de datos 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.

89

Prcticas de Sistemas Digitales

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. 90

Prctica 6:Camino de datos 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. 91

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

92

Prctica 6:Camino de datos

Anexo

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

93

Prcticas de Sistemas Digitales

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 complemento a dos? son necesarias para multiplicar nmeros en

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?

94

Errores ms frecuentes
ndice Errores generales 95 Errores en el editor esquemtico 96 Errores en el simulador 96 En este captulo estn descritos los errores ms frecuentes, as como algunas guas para evitarlos. Los errores estn clasificados en tres categoras: Errores generales, Errores en el editor esquemtico y Errores en el simulador. En la categora Errores generales estn los errores que tienen que ver con el uso del gestor de proyectos. En la categora Errores en el editor esquemtico estn lo errores ms frecuentes cuando usamos la herramienta para la captura de esquemas y en la categora Errores en el simulador, los errores mas habituales cuando utilizamos la herramienta de simulacin. Las situaciones descritas en las dos ltimas categoras estn muchas veces interrelacionadas y deberan aparecer en algunos casos en ambas categoras, ya que muchos errores en la simulacin son consecuencia directa de un mal uso de la herramienta de captura de esquemas, an as aparecen en una sola de ellas simplemente por mayor facilidad de bsqueda. Errores generales 1. Para nombrar proyectos, macros, o subdirectorios no deben utilizarse identificadores con ms de 8 caracteres. Esto es aplicable a todos los nombres en el camino completo, as por ejemplo, en c:\<directorio>\<nombre de proyecto> el campo <directorio> y el campo <nombre de proyecto> tienen que tener como mximo 8 caracteres de longitud. 2. Al copiar un proyecto a otro directorio no debe olvidarse copiar el fichero con extensin .pdf. Es imprescindible copiar el directorio del proyecto as como el fichero .pdf a la nueva localizacin. Para copiar un proyecto es preferible usar la opcin FILE->COPY PROJECT en el men principal en la ventana del gestor de proyectos a usar las herramientas del sistema operativo para copiar ficheros. Otra posibilidad tambin vlida es usar la caracterstica ARCHIVE, esto pondr toda la informacin del proyecto en un fichero comprimido formato zip. 3. Al copiar un proyecto a un disquete utilizando la opcin FILE->COPY PROJECT la herramienta avisa que el disquete no tiene espacio suficiente para guardar el proyecto. Esta situacin suele ocurrir cuando intentamos guardar en un disquete proyectos en los cuales hay simulaciones con tiempos de simulacin grandes. Es este caso puedes utilizar la caracterstica ARCHIVE para guardar el proyecto de manera comprimida o bien eliminar del proyecto los ficheros de simulacin que genera automticamente el

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

Errores ms frecuentes solucin para evitar esta situacin es aumentar la escala de visualizacin picando en el botn . 2. Los valores visualizados de seales agrupadas en un bus son incorrectos. Esto puede ocurrir si el bit ms significativo es el menos significativo y viceversa. Para corregir esta situacin usa la opcin SIGNAL->BUS->Change Direction. 3. Las seales del esquema no aparecen en el simulador. Esto puede ocurrir cuando el esquema est abierto, pero no pertenece al proyecto. Basta usar la opcin Document->Add en la ventana principal del gestor del proyecto para incorporar el fichero conteniendo el esquema al proyecto y reiniciar la herramienta de simulacin. 4. Aparece una seal con el valor X (desconocido) o Z (alta impedancia). Las causas pueden ser las descritas en Errores en el editor esquemtico. Otra posible causa ms es haber conectado un estmulo a una seal de salida.

Bibliografa
[Bout99] [Floy97] [Gask97] Bout, David Van den. The practical Xilinx Designer Lab Book. Floyd, Thomas L. Principios digitales, 6 edicin. Prentice Hall. 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

97

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