tutorial proteus

22
Manual de Proteus _________________________________________________________________________ Circuitos Digitales _______________________________ Departamento de Electricidad y Electrónica r01 2006

Upload: chema-juarez

Post on 26-Dec-2015

242 views

Category:

Documents


12 download

TRANSCRIPT

Page 1: Tutorial Proteus

Manual de Proteus _________________________________________________________________________

Circuitos Digitales

_______________________________

Departamento de Electricidad y Electrónica r01 2006

Page 2: Tutorial Proteus

Tutorial de Proteus – Circuitos Digitales

2/22

Introducción .................................................................................................................................... 3 Tutorial............................................................................................................................................ 3

Sobre ISIS ................................................................................................................................... 3 Breve descripción del editor ISIS ........................................................................................... 3 Navegar en ISIS ...................................................................................................................... 4 Seleccionar, colocar y conectar los componentes................................................................... 4 Etiquetar (annotate) y mover partes de los integrados............................................................ 7 Funciones de edición de bloques ............................................................................................ 7 Guardar el diseño .................................................................................................................... 8 Generación del Netlist (listado de las conexiones) ................................................................. 8

Sobre Proteus VSM..................................................................................................................... 9 Entradas – Generadores Digitales ........................................................................................... 9 Visualización de señales – Colocación de Pruebas............................................................... 11 Definición de Gráficos .......................................................................................................... 11 Simulación Digital ................................................................................................................ 13 Opciones de la ventana de simulación .................................................................................. 14 Buses – Señales Múltiples .................................................................................................... 15

Diseño jerárquico – Diseños multihoja..................................................................................... 16 Cómo colocar y definir un Módulo....................................................................................... 17 Acabamos el Contador – Diseño completo – Simulación Interactiva .................................. 20

Solución de Problemas.................................................................................................................. 21

Page 3: Tutorial Proteus

Tutorial Proteus – Circuitos Digitales

3/22

Introducción Este tutorial está destinado a iniciar al alumno en el empleo del programa PROTEUS para el diseño y

simulación de circuitos digitales, más concretamente, para el desarrollo de un pequeño contador a partir de bloques digitales básicos.

El programa de simulación PROTEUS consta de varios módulos. De ellos, utilizaremos el módulo ISIS (Intelligent Schematic Input System) para la captura esquemática del diseño y el programa Proteus VSM (Virtual System Modelling) para la simulación de su funcionamiento. También tiene un tercer módulo llamado ARES para trasladar el diseño a un circuito impreso.

Para aprender el funcionamiento básico de estos programas, se ha desarrollado este tutorial en el que se describe el diseño a partir de los procedimientos básicos a seguir. Para una descripción más detallada, remitimos al alumno a los manuales de Proteus.

Tutorial El objetivo de este tutorial es ilustrar el diseño de un contador de módulo 8 con entradas de habilitación de cuenta

(ENCOUNT) y reset maestro asíncrono (CLEAR) y visualización en un display implementado con flip-flops J-K.

Sobre ISIS El programa ISIS se utiliza para diseñar el circuito por medio de captura esquemática. El usuario no tiene más

que “dibujar” los componentes y sus conexiones así como definir los módulos de entrada y salida del circuito. El programa ISIS compilará el diseño y proporcionará un listado de conexiones netlist en el cual se encuentra descrito el circuito completo y que puede ser leído por la mayoría de los simuladores electrónicos como el suyo propio, llamado VSM o el PSPICE lo que permite comprobar el funcionamiento del circuito antes de ser fabricado.

Otra utilidad del programa ISIS en conjunción con el programa ARES es que permite diseñar la placa de circuito impreso PCB donde se puede montar el circuito definiendo el lugar donde se deben colocar tanto los componentes (placement) como sus interconexiones (routing). Puesto que el tutorial de ISIS no cubre el uso de esta herramienta remitimos al alumno interesado en el diseño sobre PCB a los manuales de ARES e ISIS.

Las principales características del programa ISIS se pueden resumir en los siguientes puntos:

• Control automático de la posición del cableado y las conexiones entre componentes en el esquema • Herramientas muy versátiles para la edición de objetos. • Manejo sencillo de puertos y conexiones, lo que permite un diseño multihoja (jerárquico). • Informes sobre las propiedades eléctricas (Electrical Rules Check) y el número de componentes

integrados (bill of materials) del circuito. • Fichero de salida Netlist compatible con las herramientas de simulación y fabricación de circuito

impreso PCB más utilizadas.

Breve descripción del editor ISIS Para ejecutar el programa ISIS no hay más que pinchar con el ratón el botón INICIO y dentro del menú de

TODOS LOS PROGRAMAS seleccionar Proteus 6 Professional y dentro de él la opción ISIS 6 Profesional. Aparecerá la siguiente ventana (Figura 1):

Figura 1 – Ventana de ISIS

Page 4: Tutorial Proteus

Tutorial de Proteus – Circuitos Digitales

4/22

El área más grande de la ventana que se abre se llama Ventana de Edición (Editing Window) y comprende el área de dibujo donde se editará el circuito. Cuando el ratón se encuentra sobre esta ventana, en la parte inferior derecha aparecen las coordenadas de éste (siendo el origen de coordenadas el centro de la hoja de diseño). A la izquierda de la ventana de edición aparece la ventana Selector de Objetos (Object Selector) que se utiliza para seleccionar los dispositivos, símbolos y otros objetos de las librerías. Justo encima del selector, el área más pequeña situada en la esquina superior izquierda es la Ventana Panorámica (Overview Window). Como su propio nombre indica, normalmente en esta ventana aparecerá una vista completa del diseño – el marco verde dentro de ella muestra los límites actuales de la ventana de edición dentro del diseño completo mientras que el marco azul los límites de la hoja (sheet). Además, cuando se selecciona un objeto nuevo del Selector de Objetos, en la ventana panorámica aparece una vista previa de dicho objeto (como veremos más adelante).

Navegar en ISIS Se puede ajustar el área del diseño que se visualiza en la ventana de edición de varias maneras:

• Simplemente colocando el ratón sobre el punto del diseño que queremos ver en el centro de la ventana de edición y presionando F5 (se mantiene el grado de ampliación). También se puede realizar la misma

acción presionando el botón , para a continuación desplazar el ratón a la posición deseada y presionar su botón izquierdo.

• Manteniendo presionada la tecla SHIFT, deslizar el ratón hacia los bordes de la ventana de edición para desplazarse hacia la derecha, izquierda, arriba o abajo. Llamaremos a este procedimiento Shift Pan.

• Si lo que se desea es moverse a una parte totalmente diferente del diseño, el método más rápido es presionar el botón izquierdo del ratón en el centro de la nueva área en la ventana panorámica.

Para ajustar la escala del diseño que se visualiza en la ventana de edición: • Indicar con el ratón el punto donde se quiere realizar una ampliación (zoom in) o una reducción (zoom

out) de escala y presionar las teclas F6 o F7 respectivamente. También se puede realizar haciendo girar

la rueda del ratón. Del mismo modo, seleccionando los botones zoom in o zoom out se realiza un zoom del centro de la ventana de edición.

• Presionando la tecla F8 o el botón se visualiza todo el diseño. • Presionar la tecla SHIFT y definir deslizando el ratón mientras se mantiene presionado su botón

izquierdo el área que se quiere ampliar. Llamaremos a este procedimiento Shift Zoom. Es equivalente a

presionar el botón y después deslizar el ratón con el botón izquierdo presionado sobre el área a ampliar.

Se puede visualizar una malla de puntos en la ventana de edición que es muy útil a la hora de dibujar el diseño.

Para ello no hay más que seleccionar el comando Grid del menú View, presionar la letra G o el botón de la barra de herramientas. Si los puntos no se visualizan claramente se puede cambiar su color con el submenú Set Design Defaults (Grid dot colour) del menú Template.

Seleccionar, colocar y conectar los componentes En la Figura 2 se muestra el diseño completo del contador. Como puede observarse, consta de 3 bloques: contador en binario natural de módulo 8 llamado COUNTER1, un convertidor BCD-7 segmentos (integrado 74LS48) y por último un display de cátodo común.

Figura 2 – Circuito contador con visualización en display

Page 5: Tutorial Proteus

Tutorial Proteus – Circuitos Digitales

5/22

Para ilustrar el modo de introducir un diseño puramente digital en ISIS nos centraremos en el bloque del

contador binario (COUNTER1). Su composición, salvo la implementación del terminal de cuenta ENCOUNT aparece en la Figura 3:

Figura 3 – Módulo contador binario de 8 estados

Para diseñarlo hemos necesitado 3 flip-flops J-K y una puerta AND. A continuación explicaremos la manera de

introducir estos elementos y realizar las conexiones.

Comenzaremos insertando el primer f-f J-K. Pinchamos el icono Componente y a continuación en la ventana Selector de objetos, pinchamos en la P. Esta acción hará que se abra el cuadro de diálogo de las librerías (Figura 4).

Figura 4 – Cuadro de diálogo de las librerías.

En esta ventana aparecen varias secciones: Categorías (Category), subcategorías (Sub-Category), fabricante

(Manufacturer) y resultados (Results). En Categorías escogemos la librería de donde seleccionaremos los dispositivos de nuestro circuito. Escogeremos la serie TTL 74LS Tecnología TTL Schottky. Al escoger esta categoría en el cuadro de subcategoría se nos indica el tipo de circuito digital que queremos insertar: multiplexor, decodificador, flip-flops, contador, etc…Escogemos la subcategoría flip-flops & Latches y en la pantalla de resultados nos aparecerán todos los circuitos integrados pertenecientes a la librería TTL 74LS con esas características. Seleccionamos el integrado 74LS107 y a la derecha aparecerá un esquema del integrado o de su parte fndamental, en nuestro caso 1 flip-flop de los 2 que

Page 6: Tutorial Proteus

Tutorial de Proteus – Circuitos Digitales

6/22

comprende, e incluso abajo la representación física de los distintos tipos de encapsulado que podremos seleccionar en el cuadro de selección que aparece justo debajo (esta opción se utiliza cuando se quiere diseñar el circuito impreso). Pulsando OK o haciendo doble clik con el botón izquierdo del ratón sobre el nombre del integrado hacemos que aparezca en el selector de objetos. Del mismo modo operaremos para seleccionar el integrado 74LS08, compuesto por puertas AND

Cuando se selecciona un dispositivo en el Selector se pueden utilizar los botones de rotación y espejo

que se encuentran situados en la parte inferior izquierda para cambiar su aspecto inicial, que aparecerá en la pantalla panorámica.

Para colocar un objeto en el diseño, no hay más que pincharlo en el selector de objetos y a continuación pinchar

en el punto de la ventana de edición donde se quiere situar. Si nos desplazamos sobre la ventana de edición con el botón izquierdo del ratón pulsado, podremos visualizar el integrado. Colocar los 3 flip-flops y la puerta AND sobre la ventana de edición.

Para añadir los terminales de entrada, se pincha con el ratón el icono Terminales de Hoja (Inter-sheet terminal)

. En el selector de objetos aparecen los distintos tipos de terminales (Input, Output, Default, Bus…) Pinchamos en Entrada (Input) y a continuación en la ventana de edición en el sitio donde queremos situarlas. Tras realizar estos pasos, la ventana de Edición tendrá un aspecto similar a éste (Figura 5).

Figura 5 – Colocación de los componentes del contador binario

Es poco probable que en un primer intento coloquemos todos los componentes en las posiciones más

satisfactorias. Por eso vamos a explicar brevemente cómo mover los componentes dentro de la ventana de edición. En ISIS se pueden seleccionar los objetos, ya sean componentes, puertos, cables, generadores, gráficos etc.. y editarlos. Como prueba, vamos a editar la puerta AND. Al apuntar con el ratón la puerta y presionar el botón derecho se observa cómo cambia de color. Si ahora se mueve el ratón manteniendo presionado el botón izquierdo, la puerta se moverá. Para fijarla en su nueva posición, no hay más que soltar el botón de nuevo. Si ahora pulsamos el botón derecho, la puerta

desaparecerá. Para deshacer esta acción pulsar el botón Deshacer o Undo del menú Edición (Edit) o pulsar U. Mientras tengamos la puerta seleccionada, se puede rotar o hacer la imagen especular pulsando a los botones rotación o espejo. También es posible editar las propiedades del objeto seleccionado pulsando el botón izquierdo del ratón. Con estas herramientas colocaremos los cuatro dispositivos tal y como aparecen en la Figura 3. Una vez realizado, para “deseleccionarlos” basta con pulsar el botón derecho del ratón en algún punto de la ventana de edición donde no se encuentra el objeto.

Definamos ahora las conexiones entre los integrados. Primeramente vamos a asegurarnos de que las herramientas

Real Time Snap (RTS) y Wire Auto Router (WAR) se encuentran activadas. Si no es así, para activarlas se puede hacer

en el menú de Herramientas (Tools) o bien pulsando los botones respectivamente y observando que permanecen pulsados.

La herramienta RTS hace que el cursor del ratón cambie a una cruz cuando éste se sitúa cerca de un pin de un

dispositivo o de un cable, de este modo si se pulsa el botón izquierdo del ratón el programa entiende que lo que quiere el usuario es realizar una conexión. Si a continuación se pincha sobre el pin donde se desea acabar la conexión, el programa dibujará un cable. Si además la herramienta WAR está activada, el cable se dibujará de modo que no se superponga a ninguno de los componentes ya colocados.

Page 7: Tutorial Proteus

Tutorial Proteus – Circuitos Digitales

7/22

Si no se quiere colocar el cable utilizando el WAR, se puede editar el cable manualmente. Para hacerlo, una vez colocado el cable con el WAR, se selecciona el cable, pinchándolo con el botón derecho del ratón y después se intenta arrastrar por las esquinas o por el centro de alguno de sus segmentos manteniendo pulsado el botón izquierdo del ratón. También es posible dibujar el cable sin el WAR desde el principio. Para ello se pincha con el ratón el primer pin y después se pulsa el botón izquierdo del ratón cada vez que queramos definir una “esquina” del cable. Por último el cable terminará pinchando con el botón izquierdo del ratón el segundo pin. Si no se quiere de momento conectar a ningún otro componente, para acabar de editar el cable hay que pulsar el botón derecho del ratón. Tras terminar de conectar los elementos el diseño tendrá el aspecto de la Figura 6.

Figura 6 – Colocación de las conexiones

Es muy importante conectar todos los elementos del circuito con cables y nunca directamente pin a pin. Esto

último crearía una falsa conexión. Aunque en el esquema parecerían conectados, en realidad no lo estarían.

Etiquetar (annotate) y mover partes de los integrados ISIS contiene una herramienta muy útil llamada Anotación en tiempo Real (Real Time Annotation RTA). Por defecto está activada y de no ser así, para activarla no hay más que seleccionarla en el menú Herramientas (Tools) o con las teclas Ctrl+N. Esta herramienta etiqueta los componentes del circuito según se van colocando en el esquema. Si nos fijamos en el diseño del contador, vemos que el RTA automáticamente ha ido nombrando los f-f’s según se han ido dibujando como U1:A, U1:B y U2:A. Esta notación indica que los 2 primeros f-f´s se encuentran físicamente situados en un mismo integrado U1, ya que el integrado 74LS107 consta de 2 f-f´s. Para implementar el tercer f-f es necesario utilizar otro integrado adicional, el U2. En el diseño aparecen también el número de los pines y se observa que los f-fs U1:A y U1:B tienen números distintos por pertenecer a un mismo integrado, mientras que el U2:A tiene la misma numeración que el U1:A quedando el otro f-f (U2:B) sin utilizar en el diseño. El programa contiene otras maneras de etiquetar el circuito, pero para los circuitos puramente digitales que manejaremos no es necesario utilizarlas.

Es posible editar un componente (pinchando sobre el botón y a continuación sobre el componente o bien seleccionando el componente con el botón derecho del ratón y después pulsar el izquierdo) y cambiar sus propiedades, como son su referencia (asignada por el RTA), su nombre, su modelo de simulación, su encapsulado etc….

Se puede también cambiar de posición el nombre o la referencia de un elemento. Por ejemplo, vamos a cambiar

de posición el nombre de la puerta AND (74LS08) y lo colocaremos justo encima de ésta, desplazando además hacia arriba su etiqueta U3:A para que quede en la misma posición que en el caso de los f-f´s. Primero, hay que presionar la tecla F2 o bien seleccionar en el menú View Snap 50th. De este modo se reduce el tamaño de la malla de puntos de un paso de 100 (por defecto) a un paso de 50. Después, seleccionar la puerta AND con el botón derecho del ratón para a continuación pulsar el botón izquierdo y mantenerlo pulsado sobre la etiqueta U3:A. Al mover el ratón la etiqueta se moverá. Moverla hacia arriba para dejar un hueco entre ella y la puerta AND donde colocar 74LS08. Hacer lo mismo con el nombre 74LS08 y una vez que se encuentre en su posición correcta pulsar el botón derecho del ratón fuera de la puerta para deseleccionarla. Por último, volver a poner la malla a 100 (con F3 o en el menú View Snap 100th). No es necesario cambiar el paso de la malla, pero con un paso más pequeño, tenemos más precisión a la hora de colocar el texto. Es conveniente trabajar siempre con la misma malla dentro de un diseño salvo acaso para este tipo de cosas.

Funciones de edición de bloques Para mover, copiar o borrar todo o parte de un circuito se utilizan la herramienta de edición de bloques. A modo de ejemplo, vamos a mover los dos primeros flip-flops y situarlos en la esquina inferior izquierda de la ventana de edición. Comenzaremos seleccionándolos. Para ello, dibujaremos con el ratón un rectángulo que los incluya. Colocamos el ratón en el punto del diseño donde estaría la esquina superior izquierda y a continuación mientras mantenemos pulsado el botón

Page 8: Tutorial Proteus

Tutorial de Proteus – Circuitos Digitales

8/22

derecho arrastramos el ratón hasta dibujar un rectángulo azul claro que incluya los dos flip-flop. Observaremos que sus líneas se vuelven de color rojo así como los cables a ellos conectados. Tener en cuenta que sólo se seleccionan los objetos que se encuentran completamente dentro del rectángulo azul.

A continuación pinchar en el botón Mover Bloque (Block Move). El rectángulo cambia a un azul oscuro y ya se puede mover hacia la nueva posición. Pulsando el botón izquierdo se fija la nueva posición o si queremos cancelar la acción basta con pulsar el derecho.

El grupo de los dos f-f´s sigue seleccionado, de modo que también podemos probar las opciones de Copiar

Bloque (Block Copy) y Borrar Bloque (Block Delete). Todas estas acciones se pueden cancelar inmediatamente con el botón Undo. Volver a dejar el contador como estaba al principio de esta sección.

Guardar el diseño Una vez que el diseño está terminado, es un buen momento para guardarlo en un fichero. El diseño se puede

guardar en cualquier momento pulsando el icono Guardar (Save) o seleccionando el comando Guardar del menú Archivo (File). Guardar el diseño con el nombre Contador. Puesto que en una misma sesión de Proteus, el diseño se puede guardar varias veces, cada vez que ejecutemos Guardar el programa generará archivos con los nombres y las extensiones siguientes en el directorio seleccionado:

• nombre_archivo.DSN – archivo del diseño • Last Loaded nombre_archivo.DBK – archivo donde se guarda la última versión del diseño anterior a abrirlo. • Backup of nombre_archivo.DBK – archivo con la versión guardada inmediatamente anterior a la que se acaba de

guardar.

Generación del Netlist (listado de las conexiones) El esquema del circuito que hemos dibujado contiene dos tipos de información: gráfica y eléctrica. El proceso de generar el conjunto de conexiones o nodos (compilar el netlist) consiste en extraer del esquema los datos eléctricos y escribirlos de forma que otros programas CAD puedan utilizarlo. Desgraciadamente no existe un formato de netlist estandar y cada programa utiliza el suyo. En el caso de Proteus, el formato del netlist se conoce como SDF que son las siglas de Schematic Description Format. Proteus además incorpora filtros que permiten visualizar y generar ficheros netlist en otros formatos para poder trasladar el diseño a otros simuladores.

En un listado de conexiones o netlist se describe el circuito como un conjunto de pines interconectados. En ISIS un pin se describe con la referencia del componente al que pertenece, su tipo y su nombre o número de pin.

También se pueden nombrar los nodos o conexiones con nombres concretos y de hecho, una de las tareas del compilador de netlist es conectar todos los nodos que tienen el mismo nombre. Por tanto se pueden realizar en el esquema conexiones entre grupos de pines sin tener que dibujar los cables entre ellos. Este procedimiento es muy útil ya que permite el diseño de circuitos muy complejos sin tener que recurrir a una gran cantidad de cables. Además es fundamental para especificar conexiones entre hojas en un diseño multihoja (ver diseño jerárquico).

Para asociar un nombre o etiqueta a un nodo:

• colocar una etiqueta de cable (wire label) en cualquier cable del nodo pinchando en el icono del Selector de Objetos. El nodo tomará el nombre del cable.

• Si el nodo está conectado a un terminal lógico toma el nombre de dicho terminal.

Si se asignan varios nombres a un nodo, el programa se queda con uno de ellos de acuerdo con la prioridad siguiente:

- Pines de potencia - Terminales Bidireccionales - Terminales de salida - Terminales de entrada - Terminales genéricos - Entradas de bus y etiquetas de cables

Del mismo modo, como ya hemos dicho anteriormente, si en el esquema existen dos nodos con el mismo nombre

no conectados visualmente el compilador del netlist entenderá que están conectados eléctricamente. Es necesario compilar el netlist antes de realizar cualquier simulación eléctrica del circuito. Proteus, al realizar la

simulación eléctrica con el módulo Proteus VSM genera automáticamente el netlist y otra serie de procesos de modo

Page 9: Tutorial Proteus

Tutorial Proteus – Circuitos Digitales

9/22

transparente al usuario. Si existen errores en el netlist la simulación no se realizará o lo hará incorrectamente. Por tanto, la inspección del fichero netlist puede ser de gran ayuda para localizarlos (ver último apartado de Solución de problemas).

Si se quiere visualizar y/o guardar el netlist basta con ejecutar el comando Compilador de Netlist (Netlist

Compiler) del menú Herramientas (Tools). Al hacerlo aparece un cuadro de diálogo y un selector de fichero donde se puede escoger un nombre de fichero para el netlist en el caso de que se desee guardar y una serie de controles adicionales que deben permanecer como aparecen por defecto. Si escogemos simplemente ver el netlist, al realizar la compilación aparecerá el listado en formato SDF (si es la opción escogida) y el programa nos permitirá guardarlo en el portapapeles si lo deseamos.

Sobre Proteus VSM El simulador VSM es el encargado de realizar la simulación digital del circuito. Este programa puede realizar dos

tipos de simulaciones: Simulación Interactiva (Interactive Simulation) y Simulación Basada en Gráficos (Graph Based Simulation). A continuación describiremos brevemente las principales características de cada tipo de simulación que vamos a utilizar en nuestros circuitos digitales:

• La simulación interactiva permite visualizar el circuito en tiempo real tal y cómo lo haríamos en un banco de pruebas digital. Por tanto, se puede incluir en el esquema conmutadores de entrada, displays, LED´s y en general, dispositivos que nos permitan variar las entradas y visualizar la salida de un modo interactivo. Mientras se está realizando la simulación, podemos cambiar el estado de las entradas y ver, en tiempo real, cómo afecta a las salidas.

• Si queremos estudiar de un modo más preciso el funcionamiento del circuito utilizaremos la simulación basada en gráficos. En el caso de los circuitos digitales, el programa tiene una opción específica de gráfico digital que permite obtener los cronogramas de entradas, salidas y nodos intermedios del circuito. Es muy útil para detectar errores en el diseño del circuito. Nos permite, además, obtener los retrasos de propagación de los circuitos digitales y estimar su frecuencia máxima de funcionamiento. Utilizaremos normalmente este tipo de simulación por ser más completa que la anterior aunque presenta como desventaja el no ser interactiva y tener que definir previamente la variación de las señales de entrada del circuito.

Para comprobar el funcionamiento del circuito tanto en cualquiera de los dos tipos de simulación es necesario

generar las señales de entrada y además en el basado en gráficos hay que definir los nodos que se desean visualizar ya sean estas las salidas del circuito o bien nodos intermedios.

En el diseño del contador binario nos centraremos en la simulación basada en gráficos. En el último apartado

del capítulo siguiente, después de explicar como introducir un diseño jerárquico, veremos como realizar la simulación interactiva con el contador completo.

En la simulación basada en gráficos, comenzaremos indicando cómo definir las señales de entrada, a

continuación las señales que queremos visualizar y acabaremos comentando como manejar las principales características de los gráficos.

Entradas – Generadores Digitales Se usarán los generadores de señal digitales para introducir las entradas en el circuito. Para incluirlos en el diseño

basta con pinchar en el botón Generadores (Generators) del selector de objetos. Aparecerán todos los generadores disponibles en Proteus. Para colocarlos sobre el esquema, se procede de la misma manera que con cualquier otro objeto. Se selecciona el tipo de generador que se desea pinchando con el ratón y a continuación se vuelve a pinchar de nuevo sobre el lugar concreto del diseño donde se desea colocar. Si se desea conectar directamente en un nodo con una referencia, el generador toma automáticamente ese mismo nombre, que puede ser posteriormente modificado al editarlo. Para editarlo, se procede como siempre: se selecciona con el botón derecho del ratón y a continuación con el izquierdo. Aparecerá el cuadro de diálogo de la Figura 7 que permite cambiar su nombre, sus propiedades e incluso el tipo de generador.

Page 10: Tutorial Proteus

Tutorial de Proteus – Circuitos Digitales

10/22

Figura 7 – Cuadro de diálogo de un generador

En las simulaciones digitales sólo utilizaremos los últimos generadores de la lista que aparecen en el selector de

objetos que son: DSTATE, DEDGE, DPULSE, DCLOCK y DPATTERN. A continuación describiremos brevemente cada uno de ellos.

• DSTATE – Steady State - Se trata de una señal continua que no cambia con el tiempo. El programa permite elegir entre 9 opciones diferentes. En nuestro caso sólo nos interesará el nivel de 0 lógico (Strong Low o Power Rail Low) y el de 1 lógico (Strong High o Power Rail High).

• DEDGE – Single Edge (flanco único) – Define una transición única (flanco) del nivel bajo al alto o del alto al bajo.

• DPULSE – Single Pulse (pulso único) – Define un par de transiciones de direcciones opuestas que juntas forman un pulso positivo o negativo. Se puede especificar los tiempos de cada flanco (Inicial Start time y Final Stop time) o bien el tiempo de inicio y la duración del pulso.

• DCLOCK – Clock - Se trata de una señal periódica que varía entre los niveles lógicos 0 y 1 con un duty cicle de 50%. Se puede especificar el valor inicial y el tiempo en el que se produce la primera transición, así como el periodo o la frecuencia.

• DPATTERN – Pattern – Es el más versátil de todos. Permite definir una secuencia aleatoria de valores de la señal de entrada. En el cuadro de propiedades se puede escoger su estado inicial, el tiempo en que aparece el primer flanco y la forma de onda concreta que se requiera.

No hay que olvidar que en las simulaciones digitales que realizaremos todas las entradas deben estar

DEFINIDAS o bien al nivel lógico 0 (GND o VSS) o bien al 1 (VCC o VDD). Cualquier entrada que se deje sin conectar se considerará flotante y puede dar problemas de funcionamiento.

En nuestro diseño, colocaremos tres entradas. La primera de ellas será la señal de reloj que llamaremos CLK y

que se generará con la opción DCLOCK con una frecuencia de 1 MHz (escribir 1M). La segunda una señal directa de reset que nos servirá para inicializar el circuito a 0 que llamaremos CLR. Para ello utilizaremos la señal DPULSE con polaridad negativa ya que los flip-flops tienen un reset directo activo en baja con un tiempo inicial de 0.5 microsegundos (escribir 0.5u) y una duración de 0.25 microsegundos (escribir en pulse width 0.25u). Por último la tercera entrada se conectará a las entradas J y K del f-f U1:A. Esta entrada estará permanentemente conectada a 1 lógico, o lo que es lo mismo a Strong High o Power Rail High y la llamaremos 1. El circuito final con las entradas definidas aparece en la Figura 8.

Figura 8 – Contador binario con entradas de reloj y reset

Page 11: Tutorial Proteus

Tutorial Proteus – Circuitos Digitales

11/22

Por último indicar que no es necesario en la simulación digital alimentar los integrados. El programa entiende que todos los circuitos digitales están convenientemente conectados a la fuente de alimentación y tierra.

Visualización de señales – Colocación de Pruebas En las simulaciones digitales sólo se pueden utilizar las pruebas de tensión. Éstas se situarán pinchando en el

botón del selector de objetos y a continuación sobre los nodos que se desean visualizar. En nuestro caso nos interesa visualizar, además de las entradas (sobre las que no es necesario colocar la prueba ya que siempre llevan una asociada), las salidas de los flip-flops que nos indicarán el estado en el que se encuentra el contador. Hay que tener cuidado de pinchar sobre los cables y no sobre los pines de los circuitos. La prueba adquiere el nombre del dispositivo más cercano a ella y entre paréntesis el nodo de dicho dispositivo conectado a ella. Para editarlas y cambiar su nombre se siguen las reglas del resto de los objetos. Las renombraremos con los nombres O0, O1 y O2 para las salidas de los f-f’s U1:A, U1:B y U2:A respectivamente. El circuito contador presentará el siguiente aspecto:

Figura 9 – Contador binario 8 estados con generadores y pruebas

Una vez que las pruebas están colocadas, ya estamos en condiciones de definir el cronograma para visualizar el funcionamiento del circuito. NOTA MUY IMPORTANTE: Para la colocación tanto de generadores como de pruebas es IMPRESCINDIBLE que exista un cable o un bus.

Definición de Gráficos Para poder definir un cronograma, es necesario colocar un gráfico digital en el circuito. Para insertarlo en el

diseño, se procede como siempre. Con el botón izquierdo del ratón se pincha en icono gráficos de simulación (simulation graph). En el selector de objetos aparecerán los distintos tipos de gráficos de que dispone el programa. Escogeremos el gráfico digital (DIGITAL) que consiste en cronogramas (señales de tensión en función del tiempo). Por último, pinchando de nuevo el botón izquierdo y manteniéndolo presionado se dibuja un rectángulo del tamaño apropiado en el esquema del circuito.

Los gráficos se manejan como cualquier otro objeto de ISIS aunque con algunas pequeñas particularidades. Por

ejemplo, se puede seleccionar un gráfico del modo habitual utilizando el botón derecho y después manteniendo pulsado el izquierdo arrastrar uno de los lados para cambiar el tamaño del gráfico o arrastrar el gráfico entero para moverlo a otro lugar del esquema.

Una vez añadido el gráfico digital hay tres modos de añadir pruebas y generadores:

• El primer modo es seleccionar uno a uno cada generador o prueba y arrastrarlos manteniendo pulsado el botón izquierdo del ratón para finalmente soltarlo sobre el gráfico. ISIS entiende que se está intentando colocar una prueba/generador sobre el gráfico, de modo que lo deja en su posición original y añade un cronograma al gráfico con el mismo nombre que la prueba/generador. Éste aparecerá en la parte izquierda del gráfico. La siguiente prueba se colocará debajo de las que ya están insertadas.

• El segundo método utiliza el comando Añadir señal (Add Trace) del menú gráficos (Graph). Este comando sirve para añadir curvas al gráfico actual (si hay más de un gráfico, el gráfico actual es el que se encuentra seleccionado en el menú Graph. Al seleccionar el comando Add Trace aparece un cuadro de diálogo y se puede seleccionar la prueba de una lista en la que aparecen todas las pruebas del diseño, incluso las de otras hojas (ver diseño jerárquico).

Page 12: Tutorial Proteus

Tutorial de Proteus – Circuitos Digitales

12/22

• Por último, si previamente a activar el comando Add Trace se seleccionan de la manera habitual (con botón derecho o bien definiendo un bloque) una o varias pruebas y/o generadores, entonces, éstos se añaden todos a la vez en orden alfabético al gráfico actual. A este procedimiento lo llamamos Inclusión Rápida (Quick Add).

Utilizaremos el último procedimiento para añadir todas las pruebas/generadores del contador. Las señales

aparecerán en el gráfico (porque sólo hay uno, no da lugar a confusión) como aparece en la Figura 10. Por el momento, éstas consisten sólo en sus respectivos nombres. Si no aparecen, probablemente sea porque el gráfico es demasiado pequeño. En este caso, no hay más que aumentar su tamaño.

Figura 10 – Contador binario con gráfico de cronogramas de entradas y salidas insertado

Las señales aparecen en orden alfabético pero nos va a ser mucho más útil que aparezca en primer lugar, en la

parte superior la señal de reloj, a continuación las entradas y por último las señales intermedias y salidas. En nuestro caso, no hace falta cambiar el orden, pero si fuera necesario hacerlo, primeramente hay que asegurarse de que el gráfico no está seleccionado. A continuación pinchar con el botón derecho sobre el nombre de la señal que se quiere mover o editar. El nombre cambiará de color. Se puede utilizar entonces el botón izquierdo para mover la señal arriba o abajo (arrastrando el ratón manteniéndolo presionado) o para editarla (pinchando con el botón izquierdo sin arrastrar) o el botón derecho para borrarla. Para terminar, pulsar el botón derecho en cualquier otro punto del gráfico donde no se encuentren las señales. Vamos a eliminar la señal 1 del gráfico, ya que no varía con el tiempo. Basta con seleccionarla pinchando con el botón derecho sobre su nombre y a continuación, pinchar con el derecho de nuevo. Ya sólo falta definir el tiempo de simulación que coincidirá con el tiempo máximo que aparecerá en el gráfico. Por defecto este tiempo está fijado en 1 segundo. En nuestro caso, ya que la señal de reloj tiene una frecuencia de 1 MHz, o lo que es lo mismo, un periodo de 1 microsegundo, definiremos el gráfico con un tiempo de 10 microsegundos para poder visualizar 10 ciclos de reloj (el módulo del contador es 8). Para introducir este valor, seleccionamos el gráfico y pinchando con el botón izquierdo aparece el cuadro de diálogo de Edición del gráfico (Edit Transient Graph)(Figura 11). En este cuadro se puede dar nombre al gráfico y especificar sus tiempos de simulación inicial y final (que corresponden con el punto inicial y final del eje X del gráfico). Lo único que tenemos que cambiar es el tiempo final a 10 µs (escribir 10u) y seleccionar OK.

Page 13: Tutorial Proteus

Tutorial Proteus – Circuitos Digitales

13/22

Figura 11 – Cuadro de diálogo de Edición de Gráfico

Llegados a este punto, ya estamos en condiciones de ejecutar la simulación y visualizar los resultados. Pero antes

de ello conviene, para evitar problemas, guardar la versión actual del diseño.

Simulación Digital Para simular el circuito, todo lo que se necesita es ejecutar el comando Simular (Simulate), bien seleccionándolo del menú Gráfico (Graph) o pulsando la barra espaciadora. De este modo, el gráfico que se encuentre seleccionado se actualizará con los resultados de la simulación. La simulación se puede paralizar mientras se está ejecutando simplemente pulsando la tecla Esc. La simulación basada en gráficos es una simulación a demanda. Esto significa que debe colocarse previamente, las señales de entrada, pruebas y gráficos que se quieren visualizar así como el tiempo que se quiere simular. En el caso de la simulación digital, ésta se realiza utilizando una técnica conocida como Simulación a través de Eventos (Event Driven Simulation). Es diferente a la simulación analógica ya que sólo se ejecuta cuando alguna de las entradas del circuito cambia de estado. Además, sólo se consideran niveles discretos de tensión lo que proporciona que cualquier componente pueda describirse desde el nivel lógico, que es superior al eléctrico. Por ejemplo, un contador se describe en términos de un registro que se incrementa cada vez que aparece un flanco activo de la señal de reloj después de un cierto tiempo (retraso de propagación) en vez de cómo un conjunto de decenas de transistores. Esta simulación es por tanto varios órdenes de magnitud más rápida que la simulación analógica del mismo circuito.

Cuando ejecutamos el comando Simular el programa ejecuta automáticamente los siguientes pasos: • Generación del listado de conexiones (Compilación del Netlist) – Ya hablamos de este

proceso en el capítulo de ISIS. Al finalizar este proceso se habrá generado un listado de las conexiones entre los distintos objetos del circuito contenidos en las hojas (ver diseño multihoja) a nivel de objetos contenidos en las librerías, ya sean integrados u otro tipo de objetos como generadores, conmutadores, displays, pruebas etc. Esta lista se deja en memoria para su posterior engarzado.

• Engarzado de modelos en el listado de conexiones (Linkado del Netlist) –Los elementos del circuito (como integrados, displays, conmutadores etc) se modelan utilizando los ficheros donde se encuentran los modelos de simulación (tienen la extensión .MDF). Mediante este proceso, ISIS llama a los ficheros MDF y los coloca en sus referencias en el netlist anterior. Al final de este proceso, cada componente del netlist debe estar descrito por sus propiedades primitivas, o lo que es lo mismo, debe estar descrito de modo que pueda ser directamente simulado por PROSPICE (simulador eléctrico).

• Tabicación (Partición) – En este punto, ISIS se fija en los puntos donde hemos colocado las pruebas y a partir de ahí, recorre el circuito en sentido contrario hasta llegar a los puntos donde se inyectan las señales. Estos puntos pueden ser las entradas totales al circuito o bien las salidas de otras partes del circuito. Este análisis tiene como resultado la definición de una o más particiones que pueden ser simuladas por PROSPICE. A continuación se determina el orden en que deben simularse. Por ejemplo, si una partición A tiene una salida que se conecta a una entrada de la partición B, entonces claramente se debe simular antes A que B.

• Simulación y Procesamiento de los resultados – Por último ISIS accede a cada fichero de partición y llama a PROSPICE (simulador) para poder llevar a cabo la simulación de cada partición y dibujar las diferentes señales de que consta el gráfico. Es entonces cuando se actualiza el fichero de información (log) y el gráfico, que puede ser maximizado para obtener información detallada.

Page 14: Tutorial Proteus

Tutorial de Proteus – Circuitos Digitales

14/22

Si ocurre algún error durante alguno de los pasos, los detalles quedan escritos en un fichero de información sobre

la simulación (log file). Para visualizarlo no hay más que seleccionar Ver Log (View Log) en el menú Gráfico (Graph). Algunos errores son críticos (fatal errors), otros son simplemente avisos (warnings). En el caso de errores críticos, la simulación no se realiza y el fichero de información aparece inmediatamente. Si sólo hay avisos, el gráfico se actualiza y se ofrece al usuario la posibilidad de visualizar el fichero log. Que existan avisos en el fichero log no significa necesariamente que haya errores en el circuito pero tampoco que la simulación sea totalmente correcta por lo que hay que analizar si los resultados son los esperados y en caso de no ser así si los errores son debidos a los avisos. El último capítulo del tutorial está dedicado a estos errores, se muestran los más comunes y la manera de solucionarlos (ver Solución de Problemas) Una vez completada la simulación, se observa que el gráfico ha cambiado. Para analizar los resultados, es necesario visualizarlo claramente y tomar una serie de medidas. De esto nos encargaremos en la sección siguiente.

Opciones de la ventana de simulación Diremos que un gráfico situado sobre el esquema del circuito está minimizado. Para ver los detalles y tomar medidas hay primeramente que maximizarlo. Para ello, asegurarse primero que el gráfico no está seleccionado y pinchar con el botón izquierdo del ratón sobre la barra de título del gráfico. Esta acción hará que el gráfico aparezca dentro de su propia ventana con una barra de menús en la parte superior y algunos botones de herramientas en la inferior izquierda más una barra de estado a su derecha como aparece en la figura siguiente.

Figura 12 – Ventana de gráfico

A la izquierda de la ventana aparecen los nombres de las señales que queremos visualizar y a su derecha sus

cronogramas respectivos. En el eje X del gráfico aparece la escala de tiempos. El tiempo siempre empezará en 0 y acabará en el tiempo final que hemos seleccionado en la simulación. En nuestro diseño, vemos que las salidas O2, O1 y O2 van conmutando según aparecen ciclos por la señal de reloj de modo que el contador binario se va incrementando en cada ciclo de reloj, empezando en 000 (0) y acabando, después de 8 ciclos, en 111 (7) para volver de nuevo a 000. Puede interesarnos tomar medidas de los tiempos de retraso de estas señales con respecto a la señal de reloj. En el gráfico actual no percibimos estos retrasos por ser comparativamente mucho más pequeños que el periodo elegido de la señal de reloj. Para poder visualizarlos e incluso medirlos, utilizaremos las herramientas de la barra inferior izquierda del gráfico, que pasaremos a describir a continuación.

- Editar el cuadro de dialogo (Edit graph) – Pulsando este botón se ejecuta el cuadro de diálogo que permite definir los tiempos de simulación y título del gráfico. Al pulsarlo, se puede cambiar el tiempo final de la simulación. A continuación el programa nos preguntará si queremos simular de nuevo el cronograma y si contestamos que sí, el gráfico se actualizará y acabará en el nuevo tiempo final. Para deshacer el cambio basta con pulsar el botón deshacer del menú principal de ISIS.

- Botón Añadir Señal (Add Transient Trace) – Abre el cuadro de diálogo de añadir cronograma explicado anteriormente.

- Simular (Simulate) – Vuelve a ejecutar la simulación manteniendo el gráfico actual.

- Ampliar y Reducir (Zoom in y Zoom out) – Al pulsarlos se ejecuta una ampliación/reducción de la parte central del gráfico.

- Ver simulación entera desde tiempo inicial al final

Page 15: Tutorial Proteus

Tutorial Proteus – Circuitos Digitales

15/22

- Ver una sección de la simulación. Pinchando este botón, el cursor del ratón cambia y si a continuación, manteniendo pulsado el botón derecho arrastramos el ratón definiendo un rectángulo sobre el gráfico, al soltarlo aparecerá este rectángulo ampliado.

- Las flechas nos permiten “navegar” por el gráfico, yendo hacia tiempos anteriores o posteriores de la simulación sin cambiar la escala.

- Por último este botón hace que aparezca el listado de la simulación. En caso de error, este listado aparecerá directamente para poder inspeccionarlo y solucionar fácilmente los errores en el esquema.

Utilizando las herramientas de navegación y zoom nos situaremos aproximadamente entre los tiempos 3.9 y 4.1 microsegundos. En esta escala se observa claramente cómo las señales de salida del contador están retrasadas un cierto tiempo con respecto al flanco activo de la señal de reloj (flanco descendente) lo que origina incluso en este caso que por un breve espacio de tiempo por el circuito aparezca la combinación 111. Podemos tomar medidas utilizando los cursores tanto de los retrasos de propagación de O0, O1 y O2 con respecto a la señal de reloj como de la duración de 111. Cada gráfico dispone de dos cursores: cursor de referencia y primario. El cursor de referencia es de color rojo y el primario verde. Pinchando con el botón izquierdo del ratón sobre el gráfico aparece el cursor primario (el de referencia – manteniendo pulsada además la tecla ctrl.). En la barra de estado de la parte inferior de la pantalla aparecerá el tiempo en que se encuentra situado cada uno de ellos así como la diferencia de tiempos entre ellos (DX) mientras que a la derecha del nombre de las señales aparece el estado lógico en el que se encuentra el cursor primario. Colocamos el de referencia sobre el flanco activo del reloj y el primario sobre la señal O0. DX nos indica que el retraso de propagación de la señal O0 respecto al reloj es de 21 nanosegundos, es decir 0.02 microsegundos. Del mismo modo medimos los retrasos de las señales O1 (el mismo que O0), de O2 (15 ns) y de la duración del 111 (6 ns). Analizar los resultados. ¿Por qué es menor el retraso de O2 que el de O1 y O0? ¿Estos valores se repetirían en las transiciones de otros estados?

Buses – Señales Múltiples En los sistemas que vamos a diseñar va a ser muy útil, en vez de visualizar las señales individualmente, hacerlo en grupos de señales (o buses) con un significado concreto. Por ejemplo cuando tratemos de diseñar un sumador de 2 números de 4 bits será más interesante visualizar tanto los operandos como el resultado como números hexadecimales de 1 cifra. En nuestro caso, es más claro visualizar la salida como un número comprendido entre 0 y 7 escrito en hexadecimal. Definimos entonces un bus de datos. Los buses se introducen en el esquema del mismo modo que los cables ordinarios excepto que deben conectarse desde y hacia puntos de conexión de bus. Además, al contrario que los cables, los buses también se pueden dibujar desconectados de cualquier otro objeto. Para colocar un bus en el diseño:

• Seleccionar el Icono de Bus . • Pinchar con el botón izquierdo del ratón el lugar donde queremos empezar a dibujar el Bus. • Presionar el botón izquierdo del ratón cada vez que queramos dibujar una esquina en el bus. • Para finalizar, pinchar con el botón izquierdo en un punto de conexión de bus (un pin de bus o

un bus ya existente) o bien si no se quiere conectar a ningún punto presionar el botón derecho.

Procedemos de esta manera en nuestro diseño y colocamos un bus a la derecha del esquema sin conectarlo a ningún punto de éste. A continuación es necesario colocar una etiqueta al bus. Para ello pinchamos en el icono etiqueta de cable (wire label) y a continuación en el bus. Aparece entonces el cuadro de diálogo Crear una etiqueta de cable o bien Editar una etiqueta de cable. En la casilla correspondiente escribiremos el nombre del bus que será un conjunto de letras y a continuación entre corchetes el número de la primera línea del bus, dos puntos y de la última. De ese modo, por ejemplo el bus D[0..3] es un bus compuesto por 4 líneas numeradas del 0 al 3. Llamamos al bus que acabamos de dibujar O[0..2] ya que se trata de un bus de 3 bits. Tener en cuenta que no se puede colocar más de una etiqueta en cada bus. Si intentamos poner otra, editamos la existente. Si queremos borrar una etiqueta seleccionamos el cable o la etiqueta pinchando con el botón derecho, y a continuación volviendo a pulsar el derecho lo eliminamos.

Conectamos el bus al esquema que ya tenemos. Para ello no hay más pinchar con el ratón cada una de las salidas de los flip-flops (O0, O1 y O2) y a continuación el bus. Aparecerá un cable ordinario que habrá OBLIGATORIAMENTE que etiquetar con el mismo nombre que el bus y el número correspondiente. Así al cable conectado a la salida del f-f U1:A lo llamaremos O0 (como previamente hemos llamado a su prueba), a la del f-f U1:B lo llamamos O1 y por último a la del f-f U2:A O2. Este paso es totalmente necesario ya que define un peso en cada uno de

Page 16: Tutorial Proteus

Tutorial de Proteus – Circuitos Digitales

16/22

los cables que forman el bus. Por último, añadimos una prueba de tensión al bus de la manera usual (observar que toma el mismo nombre que la etiqueta del bus) y la incluimos en el gráfico. Al volver a ejecutar la simulación, en el gráfico aparecerá incluida la señal del bus. En la Figura 13 aparece el esquema final del circuito contador.

Figura 13 – Esquema final del contador binario con bus de salida

Diseño jerárquico – Diseños multihoja Cuando queremos realizar diseños muy extensos o simplemente crear un diseño que incluya otros más pequeños como bloques funcionales es una práctica habitual dibujar cada sección del diseño en hojas separadas. Un diseño jerárquico es aquel que consiste en dos o más niveles de hojas. El nivel superior es normalmente un diagrama de bloques que muestra la estructura del sistema completo y cada bloque o módulo tiene una hoja asociada (que llamaremos hoja secundaria (sub-sheet)) con la sección del diseño comprendida dentro de ese bloque. Dependiendo de la complejidad del diseño, estas hojas secundarias pueden a su vez contener más bloques o módulos; y así sucesivamente hasta llegar al último nivel en el que sólo aparecen integrados. El diseño jerárquico también es especialmente útil en el caso de diseños donde se repite una sección o subcircuito varías veces. En estos casos el diseño jerárquico es muy adecuado ya que definir un subcircuito en una hoja secundaria y en la principal pegar módulos asociados a él reduce considerablemente el tiempo de introducción del diseño. Además, si posteriormente se quiere realizar una modificación en el subcircuito, basta con hacerlo en la hoja secundaria y automáticamente aparecerá el cambio en todos los módulos de la principal asociados a él. Naturalmente, a la hora de simular el circuito, el programa utilizará una etiqueta diferente para cada uno de los módulos por medio de la herramienta de Anotación Global (Design Global Annotation). Definamos brevemente la terminología que utilizaremos en esta seccion:

• Circuito –Conjunto de componentes y otros objetos así como el cableado asociado. • Hoja – Es un ejemplo de un circuito con un conjunto único de etiquetas. Cuando tenemos una hoja vinculada a

un módulo que aparece en el nivel inmediatamente superior la llamaremos hoja secundaria (sub-sheet) u hoja hija (child sheet) mientras que a la superior hoja padre (parent sheet). En un diseño con varios niveles de hojas, la hoja u hojas que se encuentran en el nivel superior se llaman hojas raíz (root sheet). A las entradas y salidas de una hoja les llamaremos terminales (inter-sheet terminals).

• Módulo – Es un objeto de la hoja padre que tiene una hoja hija asociada. En el módulo se definen entradas y salidas que llamaremos puertos de módulo (module ports). El número y nombre de los puertos de módulo debe coincidir con el de los terminales de la hoja secundaria asociada.

• Propiedades de hoja – Están asociadas a una hoja concreta y también están disponibles para cualquier objeto de esa hoja, incluidos los módulos y por tanto las hojas hijas asociadas a ellos. Se dice entonces que las propiedades de hoja son heredadas por las hojas hijas.

ISIS utiliza tres comandos para “navegar” entre las diferentes hojas de que consta un diseño. A ellos se accede desde

el menú Diseño (Design) o bien presionando el icono correspondiente de la barra de herramientas. Éstos son:

Page 17: Tutorial Proteus

Tutorial Proteus – Circuitos Digitales

17/22

• Hoja Nueva (New Sheet) – -Crea una nueva hoja raiz y la visualiza

• Ir a hoja (Goto Sheet) – - Abre una ventana en la que aparecen todas las hojas del diseño. Cuando se trata de un diseño jerárquico, aparecen ordenadas en árbol y de este modo permite moverse instantáneamente a cualquier hoja del diseño.

• Borrar hoja (Remove Sheet) – - Elimina la hoja actual. Sólo se pueden eliminar hojas raíz y no se puede eliminar la última.

Los nombres de hoja que aparecen en la ventana que se despliega con Goto Sheet se toman del campo Título de Hoja

(Sheet Title) que se puede editar entrando en el cuadro de Editar Propiedades de la hoja (Edit Sheet Properties) del menú Diseño (Design) o bien se toman del Nombre de Hoja (Sheet Name) si el campo anterior está vacío.

Cómo colocar y definir un Módulo En este apartado volveremos al diseño del contador completo. Para poder ilustrar el diseño jerárquico, definiremos un nuevo proyecto que llamaremos full cont. Para comenzar pincharemos en el icono Nuevo diseño (New

Design) o bien escogeremos el comando correspondiente del menú Archivo (File). Aparecerá directamente una nueva hoja de un diseño sin nombre o bien, si no hemos guardado los cambios del diseño anterior, un cuadro que nos permite salir del diseño actual sin guardar o guardando los cambios. Una vez que aparezca en la ventana de edición el nuevo proyecto en blanco, lo guardaremos con el nombre full cont. El programa lo guardará con la extensión .DSN. Nuestro propósito es utilizar esta hoja como hoja raíz del contador. Por tanto incluiremos en ella una vista del contador completo. Constará de 3 bloques: un display para visualizar el estado en el que se encuentra, un convertidor de código 48 que convierte un número BCD al código utilizado por el display y por último un módulo COUNTER1 donde introduciremos el contador binario diseñado en la primera parte del tutorial con alguna pequeña modificación. En la figura siguiente aparece el esquema completo del circuito.

Figura 14 – Contador completo

Para colocar el módulo, seguiremos los siguientes pasos:

• Pinchamos el icono Subcircuito (Sub-Circuit) y dibujamos una caja del tamaño del módulo Counter1 con el ratón manteniendo el botón izquierdo pulsado. Aparecerá un rectángulo azul.

• Si mantenemos seleccionado el icono Sub-Circuit en el selector de objetos aparecen los nombres de los puertos de módulo: entradas, salidas, buses….Seleccionar los puertos adecuados (3 entradas y un bus) y colocarlos en los bordes del módulo. Por convenio se colocan las entradas a la izquierda y las salidas a la derecha. Nuestro circuito dispondrá de 3 entradas: EC (habilitación de cuenta) CLK (reloj) y Reset (borrado) y una salida compuesta de 3 bit, es decir un bus de 3 bits (Out). Para nombrar los puertos no hay más que seleccionarlos y con el botón derecho editar su etiqueta en el campo String del menú siguiente (Figura 15):

Page 18: Tutorial Proteus

Tutorial de Proteus – Circuitos Digitales

18/22

Figura 15 – Cuadro de diálogo de etiqueta de puerto de módulo

Para el bus, se siguen la misma notación ya explicada. Recordar que estos nombres deben coincidir con los terminales de la hoja hija.

• Pinchando con el botón derecho el módulo y después pulsando el izquierdo se entra en el cuadro de Edición del subcircuito (Edit Subcircuit) contenido en el módulo (Figura 16).

Figura 16 – Cuadro de diálogo de las propiedades del módulo

Aquí daremos un nombre al módulo (COUNTER1) y un nombre al circuito (CONT). El nombre del circuito indica la hoja hija asociada al módulo. Por tanto, en un mismo diseño, el nombre del módulo debe ser único, mientras que varios módulos pueden compartir el mismo nombre de circuito, es decir hacer referencia a una misma hoja hija. Al salir del cuadro, en la parte superior del módulo aparecerá su nombre y abajo su circuito. El nombre de módulo viene a ser al módulo como la etiqueta al elemento que insertamos de la librería, del mismo modo que el circuito del módulo lo es al nombre del integrado.

• Colocar el ratón sobre el módulo y pulsando a la vez CTRL+C podremos situarnos en la hoja hija. La ventana de edición cambiará a una hoja en blanco a menos que hayamos especificado en el nombre del circuito una hoja

hija ya existente. También podemos acceder a la hoja hija pulsando el icono o bien y seleccionando el nombre de módulo correspondiente.

• Una vez en la hoja hija, seleccionamos el icono Terminal (Inter-sheet Terminal) y elegimos en el selector de objetos el tipo de terminales (entrada, salida, bus….). colocamos los terminales que corresponden con los puertos de módulo en el subcircuito.

• Ponemos nombre a los terminales, que deben ser los mismos que los de los puertos del módulo. Abrimos el menú de edición, seleccionando el terminal y pulsando a continuación el botón izquierdo del ratón. Si desplegamos el cuadro string nos aparecerán los nombres de los puertos del módulo facilitándonos la tarea de hacer coincidir los nombres. Si nos equivocamos se generará un aviso de atención (warning) en el fichero log por cada uno de los puertos que no coincidan con los terminales. La hoja hija del módulo tendrá un aspecto similar al de la Figura 17.

Page 19: Tutorial Proteus

Tutorial Proteus – Circuitos Digitales

19/22

Figura 17 – Colocación de los terminales de la hoja hija.

• Por último, dibujaremos el subcircuito contador diseñado en la primera parte del tutorial en la hoja hija.

Normalmente, en cualquier diseño jerárquico comenzaremos de cero, dibujando el subcircuito desde el principio pero, aprovechando que ya lo tenemos en el archivo anterior, podemos insertarlo en éste siguiendo los siguientes pasos:

§ Guardamos el diseño actual pulsando o Guardar (Save) del menú Archivo (File)

§ Abrimos diseño anterior (contador.DSN) pulsando el icono o bien seleccionando Abrir (Load Design) del menú Archivo (File)

§ Arrastrando el ratón con el botón derecho pulsado dibujamos un bloque que incluya los tres flip-flops y la puerta AND como mínimo.

§ En el menú Edición (Edit) escogemos el comando Copiar al Portapapeles (Copy to

Clipboard) o bien pinchamos en el icono correspondiente . § Abrimos de nuevo el diseño full cont, vamos a la hoja hija COUNTER1 y una vez allí,

pegamos el contenido del portapapeles con el comando Pegar del Portapapeles (Paste from

Clipboard) del menú Edición (Edit) o pinchando el icono . Al pegar el contador observamos que los componentes han perdido sus etiquetas (anottations) como

aparece en la Figura 18. Si hubiéramos diseñado el circuito desde el principio, paso a paso, esto no ocurriría ya que la herramienta Global Annotation se encargaría de hacer el etiquetado mientras colocamos los componentes.

Figura 18 – Contador binario inmediatamente después de ser insertado en el módulo COUNTER1

Antes de nada eliminamos las partes innecesarias del circuito como son las pruebas de salida y la etiqueta O2. Etiquetamos el diseño, simplemente utilizando la herramienta Anotación Global (Global Annotator) del menú Herramientas (Tools). En el cuadro que se abre al seleccionar el comando pulsamos OK y comprobamos que aparecen las etiquetas en los integrados. Una vez hecho, introducimos otra puerta AND como aparece en la Figura 19 para implementar la entrada habilitación de cuenta. El programa coloca la etiqueta automáticamente. Hacemos las conexiones entre los terminales de entrada y salida de la hoja y el contador. Para ello podemos o bien tirar cables o bien si queremos que el circuito quede más “limpio” mover los terminales a posiciones más adecuadas. Finalmente, la hoja COUNTER1 tendrá un aspecto similar al de la Figura 19.

Page 20: Tutorial Proteus

Tutorial de Proteus – Circuitos Digitales

20/22

Figura 19 – Esquema final del módulo COUNTER1

Nótese que en el subcircuito no aparecen generadores ni pruebas. Se pueden añadir si se quiere dentro

de esta misma hoja y probar el diseño de la misma manera que hicimos con el circuito del contador binario. No obstante para comprobar el funcionamiento del circuito completo introduciremos los generadores en la hoja raíz. Esta norma la seguiremos siempre, colocaremos las señales de entrada (generadores) únicamente en las hojas raíz, ya que la existencia de generadores en los mismos nodos de varios niveles del diseño da lugar a conflictos en las simulaciones, apareciendo niveles intermedios que no representan valores lógicos (C – Mid Voltaje from digital conflict). Las pruebas, sin embargo se pueden colocar en cualquier nivel del diseño, siempre y cuando no se trate de un subcircuito que se repite en varias hojas hijas, y añadirse además a los gráficos definidos en cualquier nivel.

Acabamos el Contador – Diseño completo – Simulación Interactiva Para finalizar el circuito tenemos que volver a la hoja raíz, donde añadiremos el integrado 48 y el display que seleccionaremos de las librerías: Para volver a la hoja padre lo más rápido es pulsar CRTL+X, aunque también se puede hacer utilizando el

comando Ir a hoja (Goto Sheet) – - o el comando Ir a la hoja Padre (Exit to Parent) – - del menú Diseño (Design). Una vez en la hoja padre (en este caso también hoja raíz) añadimos el resto de los componentes siguiendo los siguientes pasos:

• Pulsar el botón añadir Componente (Component) y a continuación pulsar P del selector de objetos o bien

abrir directamente las librerías pinchando en el icono . Se desplegará la ventana donde se escogen los componentes.

• Escogemos en Categoría la serie TTL 74LS, en subcategoría Decodificadores (Decoders) y en resultados el integrado 74LS48 (conversor de BCD a 7 segmentos con cátodo común).

• Para seleccionar el display, utilizamos el cuadro de búsqueda en las librerías (aparece en la esquina superior izquierda). Introducimos display, pulsamos ENTER y en categorías y subcategorías obtendremos aquellas en las que aparece la palabra display. Escogemos en subcategorías 7-segmentos display (porque lo que queremos es un display que nos permita visualizar un número de una cifra) y en categorías escogemos Optoelectronics. De la lista de resultados, escogemos un display de cátodo común en concreto 7SEG-COM-CATHODE. Colocamos los dos componentes en el diseño de la hoja raíz y hacemos las conexiones oportunas entre ellos y el

módulo del contador. No hay que olvidar conectar todas las entradas a alta o baja (aunque no se utilicen o estén inactivas) así como el cátodo común del display a tierra. Tampoco hay que olvidar nombrar y numerar correctamente las tres líneas del bus que se introducen en el integrado 48. Nótese que los nombres de las entradas y salidas al módulo en la hoja padre no tienen por qué coincidir con el nombre de los puertos del módulo.

Por último conectamos los generadores. Sólo utilizaremos una señal de reloj de 1 Hz, manteniendo los terminales

de habilitación de cuenta y el reset maestro a 1. El circuito final tiene un aspecto similar al de la Figura 14. Utilizamos la simulación interactiva para visualizar el estado del contador en el display. Para ello no hay más que

pulsar PLAY del menú de simulación interactiva , situado a la izquierda de la barra de estados. En el display aparece la cuenta con una frecuencia de 1 Hz. Para terminar la simulación, pulsar el botón

STOP .

Page 21: Tutorial Proteus

Tutorial Proteus – Circuitos Digitales

21/22

Se puede añadir también un gráfico de simulación digital en la hoja raíz y desde él visualizar tanto las señales del

circuito principal como las del subcircuito incluido en el módulo COUNTER1. Visualizar a modo de ejemplo la salida del contador binario como un bus de 3 líneas y la de la puerta AND del contador. El gráfico que obtenemos será similar al de la Figura 20.

Figura 20 – Simulación basada en gráfico digital del sumador completo

Por último, vamos a cambiar las entradas ENCOUNT y CLEAR para poder mostrar cómo funciona la

simulación interactiva. En vez de conectarlas a 1 lógico, conectaremos cada una de ellas a un pulsador. Para ello, accedemos a las librerías y escogemos el elemento Estado Lógico (LOGICSTATE) y lo colocamos sobre la hoja raíz como se muestra en la Figura 21. Al pinchar con el botón izquierdo del ratón sobre este elemento, cambia de estado. La hoja raíz tendrá entonces el siguiente aspecto:

Figura 21 – Contador completo con pulsadores en las señales de habilitación de cuenta y reset

Comenzamos la simulación interactiva con los pulsadores a 1. Mientras el contador está contando, si pulsamos la

entrada de ENCOUNT y lo ponemos a 0 se para. Del mismo modo si, mientras está contando, ponemos CLEAR a 0, se sitúa en el estado 0 inmediatamente sin esperar el flanco activo del reloj (asíncrono). Utilizar la simulación basada en gráficos para visualizar más claramente la diferencia entre la habilitación de cuenta ENCOUNT (síncrona) y la inicialización CLEAR (asíncrona).

¿Qué pasaría si aumentáramos la frecuencia del reloj a 20 MHz? Comprobar nuestras predicciones utilizando la

simulación interactiva y la basada en gráfico ¿Cuál sería la frecuencia máxima de funcionamiento de este circuito? Compararla con la frecuencia máxima del contador binario. ¿A qué se debe la diferencia?

Solución de Problemas Siempre que se ejecuta una simulación se crea un fichero de información (Log). Este fichero contiene toda la información, mensajes, avisos y errores tanto del simulador en sí como de los modelos individuales. Cuando se origina un mensaje de un modelo concreto, aparece al comienzo de la línea entre corchetes la etiqueta del componente que utiliza ese modelo. Así tendremos líneas con un aspecto similar a: [U1] Loaded 26 files from PROGRAM.HEX Durante una simulación interactiva, los contenidos de este fichero pueden visualizarse en una ventana que aparece en el menú Debug, mientras que en una simulación basada en gráficos el fichero puede verse por ejemplo

situando el ratón encima del gráfico y pulsando CTRL+V o bien pulsando el icono . Si la simulación falla completamente entonces el fichero log aparece automáticamente para que se pueda analizar rápidamente el problema. Algunos errores comunes son los siguientes:

Page 22: Tutorial Proteus

Tutorial de Proteus – Circuitos Digitales

22/22

1.- Errores en el listado de conexiones (Netlist) – Ocurren cuando ISIS intenta crear un netlist a partir de un

esquema de un circuito. Los más comunes son:

- Tener dos componentes con la misma etiqueta o bien sin etiquetar, por ejemplo dos integrados etiquetados como U?

- Ficheros Script mal escritos. Problema de Sintaxis. Para solucionarlos nos referiremos al manual ISIS sobre sintaxis.

2.- Errores en el engarzado (Linking Errors) – El error más habitual es que hayamos incluido un elemento sin un modelo de simulación asociado (fichero .MDF). El fichero del modelo debe encontrarse en el directorio actual o bien en el directorio indicado en el diálogo Set Paths del menú System.

Otros errores de linkado habituales son: - Valor no encontrado en la tabla. Significa que el integrado escogido en el diseño no aparece

en la tabla del modelo de simulación (MDF). Hay modelos MDF que se utilizan para varios integrados pero con diferentes valores, por ejemplo en el caso de circuitos digitales, con diferentes valores de los tiempos de propagación. Este error significa que el modelo especificado no contiene parámetros para ese integrado. Se puede editar el fichero MDF con un editor de texto cualquiera para visualizar qué integrados hacen referencia a él.

- Pin de módulo no resuelto – Es más un aviso que un error. Indica que el integrado contiene un pin que no está presente en el modelo. Normalmente no da problemas de simulación.

3.- Errores en la Partición – El más habitual es que no exista un modelo especificado. – significa que aunque el

componente hace referencia a un fichero de simulación .MDF y en este fichero aparece el nombre del integrado, en la partición que se debe simular no aparece el modelo.

4.- Errores de Simulación – Estos errores son generados por PROSPICE y ocurren posteriormente a que se haya

generado completamente el fichero netlist. Los más comunes en las simulaciones digitales son: - No se reconoce tipo de dispositivo (Device Type not recognized) – Significa que se ha

especificado una primitiva que no reconoce la versión de PROSPICE utilizada. - No se encuentra prueba (Could not find probe) – Se incluye en el gráfico una prueba o

generador que no existe en el circuito. - No se encuentra fichero fuente SPICE (Cannot open SPICE source file) – El fichero fuente

que se especifica en la propiedad SPICEMODEL no se encuentra. Normalmente es debido a que la ruta de directorios es incorrecta. Para visualizarla y corregirla no hay más que entrar en Module Path en el comando Set Paths del menú System.