MANUAL DE PRÁCTICAS DE CIRCUITOS DIGITALES CON PSIPCE YOLANDA GONZÁLEZ CID UNIVERSITAT DE LES ILLES BALEARS Manual de prácticas de Circuitos Digitales con PSPICE U.I.B. Ejemplo de simulación de un circuito con Pspice 2 Manual de prácticas de Circuitos Digitales con PSPICE 3 U.I.B. Manual de prácticas de Circuitos Digitales con PSPICE U.I.B. Introducción El objetivo de este parte del documento es introducir al alumno en el manejo del simulador de circuitos electrónicos PSpice de la empresa MicroSim, que en su versión de estudiante, de libre distribución, permite realizar montajes de complejidad suficiente como para cubrir todas las necesidades de la asignatura. Las limitaciones fundamentales que presenta frente a otras versiones son, principalmente, para cada uno de los programas que forman el entorno completo: Pspice A/D.- La simulación de circuitos está limitada a 64 nodos, 10 transistores y 65 dispositivos digitales. Las librerías contienen 39 elementos analógicos y 134 digitales. La generación de estímulos está limitada a ondas senoidales (analógico) y señales de reloj (digital). Schematics.- Se pueden representar un máximo de 50 elementos en cada diseño y siempre en un tamaño máximo A4. Capture.- Sólo incluye las librerías Pspice. No se puede salvar (aunque sí visualizarlo) un diseño con más de 60 elementos. No se puede salvar una librería que contenga más de 15 elementos. Requisitos mínimos de hardware.- Intel Pentium 90MHz o equivalente, Windows95, 98 o NT, 16 MB RAM (recomendable 32MB), 90MB de espacio libre en disco, CD_ROM y ratón. Ejemplo. Contador síncrono. En este ejemplo se va a trabajar con un flip-flop JK de propósito general. Se trata del chip 7473. También se necesitarán puertas AND, por lo que se usará el chip 7408. La instalación crea una carpeta llamada Pspice Student en la cual se encuentran los programas principales. Cada programa se puede ejecutar por separado, pero se pueden usar todos desde el programa Schematics. Haremos doble clic sobre este icono. Aparece la siguiente pantalla que presenta un espacio de trabajo y varios iconos: Conexión con cable Componentes Opciones de Análisis Introducir literal 4 Ejecutar Simulación Manual de prácticas de Circuitos Digitales con PSPICE U.I.B. En esta pantalla vemos los comandos que nos hacen falta para realizar nuestra simulación. En primer lugar, vemos que hereda bastantes de los iconos de cualquier aplicación Microsoft: abrir archivo, archivo nuevo, guardar, imprimir, etc... pero tiene otros distintos. Para empezar identificamos los iconos (también están disponibles por menú) de colocar componentes (Draw + Get New Part), conexión con cable (Draw + wire) , opciones de análisis (Analysis + setup) , ejecutar simulador (Analysis + simulate). Empecemos colocando los componentes. Comencemos por los JK. Para ello pulsamos el icono de componentes (Get New Part...). Aparece un cuadro de diálogo con todos los componentes contenidos en las librerías. Pulsando el botón Advanced nos permitirá visualizar el símbolo correspondiente. Si conocemos el nombre del componente que queremos introducir (en este caso 7473) lo seleccionamos de la librería y pulsamos el botón Place. Esto permite colocar el componente cuantas veces queramos sin cerrar la librería e incluso elegir otro distinto con posterioridad e introducirlo también en nuestro circuito. Una vez pulsado Place, si nos desplazamos fuera de la ventana de la librería, el puntero del ratón se convierte en el símbolo del componente. Para colocarlo hacemos clic sobre el espacio de trabajo con el botón izquierdo del ratón tantas veces como componentes iguales queramos introducir. Para finalizar pulsaremos el botón derecho del ratón. En el caso de no conocer el nombre del componente, se introducirá en el campo Description Search el tipo de componente que se busca (JK, nand, or, ...) y se pulsa el botón Search. Inmediatamente aparecerá la lista de componentes disponibles. Pulsando sobre cada uno de ellos se podrá visualizar y ver una breve descripción en el campo Description. Cuando colocamos un componente, siempre podemos desplazarlo posteriormente por el espacio de trabajo, incluso cuando lo hemos conectado. Sin embargo, es recomendable situar primero todos los componentes y después empezar con el cableado. 5 Manual de prácticas de Circuitos Digitales con PSPICE U.I.B. Una vez colocados todos los componentes pulsaremos Close. Si queremos mover un componente hacemos clic sobre él y cambiará a color rojo. En esta situación y manteniendo el botón del ratón pulsado podemos arrastrarlo hasta la posición deseada. Una vez colocados los 4 filp-flops necesarios, necesitamos colocar, dos puertas AND, una fuente independiente de tensión, dos estímulos digitales (reloj y reset), y una conexión a tierra. Pspice siempre necesita tener un nodo de referencia para las tensiones y lo trata como un componente más que denomina GND_EARTH. Situaremos los componentes de manera que haya suficiente espacio como para etiquetar después los nodos y elementos, con el fin de que nuestro diseño sea claro. El área de trabajo está dividida en una retícula de color gris que permite colocar con precisión los componentes. Esta retícula facilita mucho el trabajo y se puede personalizar en cuanto a dimensiones de celda. También es posible desactivarla. Hay que procurar salvar el trabajo frecuentemente para no tener sorpresas desagradables. Los archivos de esquemas tienen la extensión .sch . Conviene que el nombre contenga alguna descripción cualitativa del circuito. En nuestro caso lo llamaremos Cont_Sinc.sch. Pasemos a ver a continuación las funciones de edición de componentes. Disponemos de componentes pasivos, semiconductores, fuentes de alimentación, etc... Cuando colocamos un componente pasivo en el espacio de trabajo, tiene asignado un valor por defecto, que en resistencias es 1kΩ . Para los transistores y circuitos integrados no es necesario introducir valores, ya que 6 Manual de prácticas de Circuitos Digitales con PSPICE U.I.B. tienen una serie de parámetros introducidos a priori en un modelo. En este apartado, la ayuda del programa nos dice la correspondencia física entre los parámetros de Pspice y los parámetros reales. Para consultar los modelos, basta con editar el archivo eval.lib. Es recomendable hacer una copia de este archivo en otro directorio y editarla allí , ya que cualquier cambio o deterioro de este fichero haría que el simulador dejara de funcionar. Una vez colocados los componentes, obtenemos algo que se ha de parecer a la siguiente imagen: Se puede ver cómo se han colocado los flip-flop JK, las puertas AND, una fuente de tensión VSRC, la conexión a tierra y los estímulos digitales DigClock. El aspecto del circuito ha de ser aproximadamente el siguiente: 7 Manual de prácticas de Circuitos Digitales con PSPICE U.I.B. Para girar los componentes, simplemente hacemos clic para marcarlo (aparecerá en rojo) y después ctrl+R o también en el menú Edit+Rotate. El siguiente paso es interconectarlos, para ello pulsamos ctrl+W o elegimos del menú Draw+Wire o bien pulsamos el icono correspondiente: El icono se convierte en ese momento en un lápiz. Debemos hacer clic en el origen y en el final de la conexión. Los nodos donde hay más de dos conexiones se generan automáticamente: Una vez conectado todo, el aspecto sería aproximadamente como el de la siguiente figura. 8 Manual de prácticas de Circuitos Digitales con PSPICE U.I.B. Como final, podemos colocar un texto que haga referencia al objetivo del circuito. Para ello pulsamos el icono o bien Draw+Text. Es importante en este momento caracterizar los puntos importantes del circuito, ya que esto nos permite identificar corrientes y tensiones a la hora del análisis. Como se ve en la anterior figura, las fuentes tienen un nombre que tiene que ver con la función que realizan. Asimismo, aparecen los nombres QA, QB, QC y QD, asociados a los nodos correspondientes. Para dar estos nombres se hace doble clic sobre el trozo de línea de circuito y aparece un cuadro de diálogo donde poner el nombre. Más tarde, si queremos ver el bit QA, Pspice le asociará el alias QA, en vez de $_N0001 o similar que le asociaría por defecto, cuyo significado para nosotros es, a priori, desconocido. Una vez puestos todos los nombres, es el momento de asignar valores a las fuentes. Se empezará por la fuente de continua. Para editar los parámetros de cualquier componente pincharemos dos veces sobre él. Debemos asignar un valor DC fijo distinto de cero. En nuestro caso será 5V que es el uno lógico. Para ello hacemos doble clic sobre la fuente y aparece: En cuanto al resto de parámetros, por ahora, dejaremos el valor por defecto. Una vez introducido el valor DC=5, pulsaremos el botón SaveAttr y luego OK. A continuación daremos valores a la fuente digital (reloj), conectada al sincronismo del JK: 9 Manual de prácticas de Circuitos Digitales con PSPICE U.I.B. Los parámetros importantes son el tiempo en “on” (5V), y el tiempo el “off” (0V). Podemos dejar los valores por defecto: 1 microsegundos con nivel lógico 1 y 1 microsegundos 0. La fuente digital que actuará como señal de reset, sin embargo, tendrá que activarse a nivel bajo al principio y pasar posteriormente a nivel alto durante todo el tiempo que deseemos que el contador funcione, por lo tanto sus valores de configuración podrían ser, por ejemplo: ONTIME = 20S y OFFTIME = 0.2uS. Empezando en valor lógico 0 (STARTVAL = 0). En este ejemplo vamos a utilizar el análisis Transient, es decir, la evaluación de la evolución del circuito en el tiempo. Para ello, nos iremos al icono de opciones de análisis, o bien Analysis+Setup. Aparece una ventana con todos los tipos posibles de análisis que puede realizar el programa. Elegiremos Transient. El tiempo de análisis ha de calcularse para que veamos todos los estados por los que pasa el contador; la pantalla muestra lo siguiente: 10 Manual de prácticas de Circuitos Digitales con PSPICE U.I.B. Fijaremos por tanto, print step (intervalo de muestreo, es decir, con qué frecuencia calcularemos los valores de las señales) por ejemplo, a 1µs (us para Pspice) y final time (valor final del tiempo de análisis) a 20µs. Cuanto menor sea el intervalo de muestreo (print sep) más cálculos se harán y más tiempo se tardará en simular el comportamiento del circuito. El final time debe tomar un valor tal que nos permita comprobar el comportamiento de las señales de salida, para todos los posibles valores en las entradas. Una vez fijados los parámetros, ya estamos en disposición de realizar el análisis. Para ello, basta con cerrar la ventana de tipos de análisis y pulsar el icono de Ejecutar Simulación o Analysis+Simulate. Entonces, arrancará la ventana de Pspice. Normalmente se generan warnings que no suelen tener importancia. Si tenemos algún error, la simulación para y aparece el mensaje “see output file for details”. Si esto se produce, iremos entonces a Analysis+Examine output. Pero esperemos que no pase con frecuencia. Si todo ha ido bien, se arrancará automáticamente el programa Probe, que sirve para visualizar gráficas. Aparece una aplicación nueva, con nuevos iconos y nuevo espacio de trabajo. En la pantalla se podrá ver una gráfica vacía, que por defecto muestra el tiempo en el eje de abscisas y que sirve para representar el cronograma del circuito. A continuación habrá que elegir qué señales queremos visualizar. Serán QA,QB,QC,QD, las dos señales de reloj (sincronismo y reset) y la entrada del primer JK. Se hará con la opción de menú (Trace + Add Trace...). Aparecerá la siguiente pantalla: 11 Manual de prácticas de Circuitos Digitales con PSPICE U.I.B. Una vez se han seleccionado las señales que se desea visualizar en el diagrama de tiempos se pulsará el botón OK y aparecerá la siguiente pantalla: Estas curvas se pueden consultar a través de los cursores. Para ello, una vez seleccionada la curva, activamos los cursores con Trace+Cursor+Display o el icono correspondiente: Después, pulsando sobre las curvas, obtenemos la lectura de los estados del contador. Con el ratón pulsado y moviéndonos por el eje del tiempo, aparecen en el eje de ordenadas los distintos estados de la cuenta. A partir de aquí disponemos ya de un instrumento para comprobar cualquier diseño lógico, tanto combinacional como secuencial. Es muy recomendable que el alumno pruebe a repetir los diseños desarrollados en el aula y que compruebe en la simulación los resultados de los problemas. 12 Manual de prácticas de Circuitos Digitales con PSPICE 13 U.I.B. Manual de prácticas de Circuitos Digitales con PSPICE U.I.B. PASOS PARA CREAR UN SIMBOLO PERSONALIZADO a partir de un circuito previo. 1. Crear el subcircuito que posteriormente se usará como símbolo. Por ejemplo, un semisumador. 2. En las señales de entrada y salida del circuito se deberán introducir puertos de entrada (IF_IN) y de salida (IF_OUT) respectivamente. Estos puertos se convertirán en patillas del símbolo de nueva creación. Del mismo modo, si se desean introducir patillas de sincronismo o reset ocultos se utilizarán los puertos globales GLOBAL o BUBBLE. Este tipo de puertos es muy útil para conexiones a tierra o a nivel alto de tensión. Es necesario dar nombre a todos los puertos del circuito para que el símbolo se cree correctamente y pueda ser utilizado posteriormente. Es conveniente nombrar, también, las líneas de conexión con los puertos. 3. En el menú File se seleccionará Symbolize, para acceder a la ventana de diálogo en la que se le pondrá un nombre al símbolo para poder usarlo como uno más desde el menú Get New Part... Por ejemplo: SemiSum 4. En la siguiente ventana que aparece se debe seleccionar la librería de usuario en la que se introducirá este símbolo. Si es el primero que creamos, tendremos que crear también una librería de símbolos personalizados. Por ejemplo: UserBib Para incluir esta nueva librería en la lista de librerías accesibles, se seleccionará la opción Editor Configuration del menú Options. El botón Library Settings... abre la ventana de diálogo en la que introduciremos el nombre de la librería de nueva creación (UserBib) en el campo Library Name y pulsaremos el botón Add* para que la librería sea de uso 14 Manual de prácticas de Circuitos Digitales con PSPICE global en todos los esquemas eléctricos que creemos. A partir de este momento se podrán crear circuitos del tipo: 15 U.I.B. Manual de prácticas de Circuitos Digitales con PSPICE Enunciados de las prácticas 16 U.I.B. Manual de prácticas de Circuitos Digitales con PSPICE 17 U.I.B. Manual de prácticas de Circuitos Digitales con PSPICE U.I.B. PRÁCTICA 1 Objetivo: Síntesis de funciones en lógica combinacional usando puertas con integración en baja escala (S.S.I.). Elementos que se pueden utilizar: - Puertas: 7400 (NAND), 7402 (NOR), 7404 (Inversores), 7408 (AND) y 7486 (XOR). Realización práctica: Sintetizar la función combinacional que responde a la tabla de verdad adjunta. A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 f 1 1 0 1 0 0 1 0 0 1 0 1 1 1 0 1 Representarla con minterms y realizar su circuito: i) Puertas AND, OR y NOT. ii) Sólo con puertas NAND. iii) Sólo con puertas NOR PRÁCTICA 2 Objetivo: Estudio del semisumador y del sumador completo. Uso de símbolos personalizados. Elementos que se pueden utilizar: - Puertas: 7408 (AND) y 7486 (XOR). - Sumador 7482. Realización práctica: a) Realizar un semisumador utilizando las puertas necesarias y un sumador completo a partir de dos semisumadores. b) Estudiar y caracterizar el sumador 7482. Realizar un sumador de 4 bits y uno de 8 bits utilizando en cada caso el número mínimo de 7482 necesarios. 18 Manual de prácticas de Circuitos Digitales con PSPICE U.I.B. PRÁCTICA 3 Objetivo: Utilización de circuitos Decodificadores. Material: - Puertas lógicas. - 74155 (DEC) Realización práctica: a) Realizar un DEC de 4 entradas y 16 salidas con tres 74155 siguiendo las técnicas de composición descritas en clase. Notar que cada 74155 incluye dos decodificadores independientes de 2 entradas y 4 salidas. b) Utilizar el circuito obtenido en el apartado (a) para realizar la función combinacional f ( A, B, C , D) = ∑ m(1,7,11,13) c) Realizar el mismo DEC del apartado (a) pero usando únicamente dos 74155 y algunas puertas lógicas adicionales. En el datasheet del 74155 se proporciona información útil para resolver este apartado. d) Realizar usando únicamente puertas lógicas un DEC de 2 entradas y 4 salidas. PRÁCTICA 4 Objetivo: Caracterización y utilización de los circuitos en rutas de datos: Multiplexores y Demultiplexores. Material: - Puertas lógicas. - 74153 (MUX) y 74154 (DEMUX) Realización práctica: a) Realizar un MUX de 4 a 1 con puertas. b) Utilizarlo para realizar la función combinacional f ( A, B,C,D) = ∑m(4,5,6,7,81314 , , ,15) c) Utilizar el 74153 para realizar la función combinacional de la práctica 1. d) Realizar un MUX de 16 a 1 con 74153 e) Estudiar y caracterizar el DEMUX 74154. 19 Manual de prácticas de Circuitos Digitales con PSPICE U.I.B. PRÁCTICA 5 Objetivos: Ilustrar las capacidades de los dispositivos biestables para mantener información. Mostrar la implementación de los mismos mediante puertas lógicas. Estudio de los distintos tipos de biestables comerciales. Material: - Puertas: NOR 7402, NAND 7400, NOT 7404, NAND (3 entradas) 7410. - Biestable: J-K 7473 Realización experimental: a) Realización de un biestable R-S con puertas NOR (Fig.1-a). b) Realización de un biestable R-S con puertas NAND (Fig.1-b). c) Realización de un biestable R-S con habilitación por nivel empleando un único tipo de puerta. Por ejemplo NAND (Fig. 1-c). En esta figura si E=0 N1 y N2 están inhabilitadas (mantienen la salida a 1 independientemente de las entradas R y S). Si E=1 se comportan como inversores y tenemos una situación análoga a la de los casos anteriores. S R N1 Q S N1 Q N1 S' N3 Q E S N2 Q a) R N2 b) Q R N2 R' N4 Q c) Fig.1 Biestable R-S con puertas NOR a), NAND b) y con habilitación por nivel c) d) Realización de un biestable encadenado. Una situación corriente en electrónica digital es la de los biestables encadenados. El estado de uno pasa al siguiente de forma síncrona cuando llega la señal de reloj. Sin embargo, si realizamos la habilitación por nivel sucede que un biestable cambia de estado mientras todavía está activa la señal de reloj, con lo que cambiará el estado del siguiente y del otro, y así sucesivamente, hasta que los retardos acumulados superen el tiempo de habilitación de la señal de reloj. Esto es en efecto en general no deseado. Compruébese este hecho con el circuito de la figura 2 a) que muestra dos biestables encadenados. e) Un problema de los biestables R-S es el de tener la salida indeterminada si R y S están a 1. Una solución a este problema es el biestable J-K (fig. 3). Compruébese su tabla de verdad. f) Con biestables J-K también puede obtenerse la configuración Maestro-Esclavo, (Fig. 3-b). g) Por último: Obtener un biestable de tipo T y otro de tipo D empleando el J-K integrado (7473). 20 Manual de prácticas de Circuitos Digitales con PSPICE U.I.B. S1 N1 S2 Q1 S' N1 N3 E S' Q2 N3 E N2 R1 N4 R' Q1 R2 N2 R' N4 Q2 CLK a) Maestro Esclavo S1 N1 S' S2 Q1 N1 N3 E Q2 S' N3 E N2 R1 R' N4 Q1 R2 N2 N4 R' Q2 CLK Biestable Maestro-Esclavo b) Fig.2 Biestables encadenados con habilitación por nivel a). Biestables encadenados en configuración maestro esclavo b). J N1 J S' N3 Q E K R N1 S' N3 E N2 R' N4 K Q N1 Q S' N3 R' N4 Q E N2 R' N4 Q N2 S CLK a) b) Fig. 3. Biestable J-K normal a) y en configuración Maestro-Esclavo b) 21 Q Manual de prácticas de Circuitos Digitales con PSPICE U.I.B. PRÁCTICA 6 Objetivo: Síntesis de circuitos secuenciales siguiendo el método del sistema secuencial canónico. Material: - Puertas lógicas. - Biestables JK 7476 y biestables D 7474. Realización práctica: a) Sintetizar un circuito secuencial que detecte la secuencia de entrada “cabc” con solapamiento. Los caracteres de la secuencia se codificarán con 2 bits. El circuito tendrá una señal de salida (Z) que valdrá “1” cuando se haya detectado la secuencia. Realiza la síntesis utilizando biestables JK. b) Sintetizar el mismo circuito secuencial que en el apartado (a) pero utilizando biestables de tipo D. PRÁCTICA 7 Objetivo: Síntesis de circuitos secuenciales. Material: - Puertas lógicas. - Biestables JK 7476, biestables D 7474 y MUX 74153. Realización práctica: a) Sintetizar un contador de pulsos de reloj módulo 6, capaz de contar ascendente/descendente utilizando biestables JK. b) Sintetizar un registro de 4 bits y dos líneas de control para seleccionar la función del registro con cada pulso de reloj, según la siguiente tabla. c1 c2 Función 0 0 1 1 0 1 0 1 Carga paralelo Rotación derecha Rotación izquierda Complementar Utilizar un biestable D para cada bit, y un MUX. 22