21
1 13. Manual del entorno BOOLE-DEUSTO 13.1 Introducción En este apéndice presentaremos el entorno BOOLE-DEUSTO de análisis y diseño de sistemas digitales combinacionales y secuenciales a nivel de bit. Este entorno está orientado a las necesidades del alumno y el profesor, sobre todo en los primeros pasos de su aprendizaje. BOOLE está orientado a una disciplina denominada genéricamente Sistemas Digitales, que consta de tres grandes temas: Fundamentos de Sistemas Digitales: codificación, álgebra de Boole y representación de sistemas digitales. Análisis y Diseño de Sistemas Combinacionales: a nivel de bit y de palabra. Análisis y Diseño de Sistemas Secuenciales: a nivel de bit y de palabra. El profesor en clase enuncia el método a aplicar y completa algún ejemplo. El alumno en casa debe consolidar lo aprendido, completando nuevos ejercicios. El papel de un entorno educativo en este escenario es doble: Comprobar que los resultados obtenidos por el alumno están bien. Mostrar al alumno cómo se aplica un método; recordarle los pasos. Para que el entorno lleve a cabo con éxito su trabajo debe tener una serie de características: Completo. Debe contemplar el mayor número posible de métodos. Utilizable. Debe adaptarse a los conocimientos y posibilidades del alumno. Amigable. Debe ser fácil e intuitivo de usar y visual en los resultados. Didáctico. Debe mostrar todos los pasos que le llevan a un resultado. Instalable. Debe ser fácil de instalar.

Manual Boole Deusto

Embed Size (px)

Citation preview

Page 1: Manual Boole Deusto

1

13. Manual del entorno

BOOLE-DEUSTO

13.1 Introducción

En este apéndice presentaremos el entornoBOOLE-DEUSTO de análisis y diseño desistemas digitales combinacionales ysecuenciales a nivel de bit. Este entorno estáorientado a las necesidades del alumno y elprofesor, sobre todo en los primeros pasosde su aprendizaje.

BOOLE está orientado a una disciplinadenominada genéricamente SistemasDigitales, que consta de tres grandes temas:

♦ Fundamentos de Sistemas Digitales:codificación, álgebra de Boole yrepresentación de sistemas digitales.

♦ Análisis y Diseño de SistemasCombinacionales: a nivel de bit y depalabra.

♦ Análisis y Diseño de SistemasSecuenciales: a nivel de bit y de palabra.

El profesor en clase enuncia el método aaplicar y completa algún ejemplo. El alumnoen casa debe consolidar lo aprendido,completando nuevos ejercicios. El papel deun entorno educativo en este escenario esdoble:

♦ Comprobar que los resultados obtenidospor el alumno están bien.

♦ Mostrar al alumno cómo se aplica unmétodo; recordarle los pasos.

Para que el entorno lleve a cabo con éxito sutrabajo debe tener una serie decaracterísticas:

♦ Completo. Debe contemplar el mayornúmero posible de métodos.

♦ Utilizable. Debe adaptarse a losconocimientos y posibilidades delalumno.

♦ Amigable. Debe ser fácil e intuitivo deusar y visual en los resultados.

♦ Didáctico. Debe mostrar todos los pasosque le llevan a un resultado.

♦ Instalable. Debe ser fácil de instalar.

Page 2: Manual Boole Deusto

2

♦ Asequible. Debe tener el menor precioposible.

En no pocas ocasiones los entornoscomputacionales no ayudan al alumno; esmás, le confunden, generando frustración ydesconocimiento. A nuestro parecer es mejorno utilizar un entorno computacional si éstees inadecuado.

Estudiemos a la luz de los puntosanteriores la idoneidad didáctica de losentornos profesionales como OrCAD, MAXPLUS II, XILINX Foundation, ElectronicWorkBench, etc. En primer lugarrecordemos que estos entornos sonprofesionales; su objetivo es ayudar en eldiseño de circuitos electrónicos, no ayudaral alumno. Veamos algunas de suscaracterísticas:

♦ No le interesan los métodos, le interesansus resultados: los circuitos electrónicos.

♦ Sus usuarios finales son losprofesionales.

♦ Su uso es tan potente como complicado.♦ No son didácticos; sólo buscan los

resultados.♦ Son difíciles de instalar.♦ Son generalmente caros.

Resulta tan evidente como sencillo que losobjetivos de los entornos profesionales estánalejados de las necesidades del profesor ydel alumno en el aula. La tabla 13.1 comparaambos entornos, resaltando las diferencias.

ENTORNOBOOLE-DEUSTO

ENTORNOSPROFESIONALES

Didáctico ProfesionalNecesidades delalumno

Necesidades delprofesional

Hasta nivel de bit Hasta nivel de sistemaProyectos sencillos Proyectos complejosEl alumno controla a laherramienta

El usuario es dirigidopor la herramienta

Interesa el proceso Interesa el resultadoSin instalación Instalación complejaEs muy fácil de usar Críptico y difícil de usarEs gratis y de libredistribución

Coste generalmenteelevado

No tiene simulacióntemporal

Sí tiene simulacióntemporal

No permite la capturagráfica de un circuito

Permite la capturagráfica de un circuito

Tabla 13.1 Comparación entre BOOLE y losentornos profesionales

Todo lo anterior viene a fortalecer lanecesidad de un entorno completo ydidáctico en la disciplina de sistemasdigitales: BOOLE-DEUSTO.

13.2 Aspectos básicos deuso del BOOLE-DEUSTO

El entorno BOOLE-DEUSTO es muy fácil deutilizar, es más, éste es uno de los objetivosprincipales, incluso más importante quecubrir una mayor parte de la asignatura. Elentorno ha de ser útil al alumno y alprofesor con poco esfuerzo.

Se puede decir que 15 minutos son másque suficientes para enseñar al alumno autilizar su parte combinacional, y otro tantopara su parte secuencial.

En los próximos apartados se presentaráen detalle el entorno BOOLE-DEUSTO, peroes ahora momento de recalcar los aspectosbásicos:

Page 3: Manual Boole Deusto

3

♦ Los sistemas han de ser secuenciales ocombinacionales, pero siempre a nivelde bit.

♦ Los sistemas combinacionales tienencomo núcleo a la tabla de verdad,mientras que los secuenciales sonautómatas.

♦ Los sistemas combinacionales tienencomo máximo 10 variables de entrada.***

♦ Los sistemas combinacionales soportancomo máximo y en principio ******

♦ Los nombres de las variables pueden sercambiados.

♦ Los autómatas pueden ser de Moore ode Mealy.

♦ Al describir un sistema hay que empezardándole nombre e indicando el númerode variables de entrada y de salida.

♦ Al salir de una pantalla de captura dedatos hay que pulsar siempre Evaluar(y Salir) para que los datos seanactualizados.

♦ Las funciones se cargan y se visualizande una en una, utilizando la barra dedesplazamiento.

♦ Las tablas de verdad y diagramas deVeitch-Karnaugh no deben tener huecos(se puede utilizar la opción Completarcon).

♦ Se pueden imprimir los resultados tantopara sistemas secuenciales comocombinacionales.

♦ Los elementos gráficos (circuitos lógicosy diagramas de transición de estados)pueden ser copiados al portapapeles, yde él a cuaquier documento.

♦ Todo sistema, ya sea combinacional osecuencial, puede ser guardado ycargado como un fichero.

♦ Las pantallas que tengan algunacomplicación disponen de Ayuda.

Para describir el entorno BOOLE nosapoyaremos en ejemplos.

13.3 Instalación y uso

Para instalar BOOLE bastará con copiar elejecutable, o con copiar y descomprimir elfichero .zip. La instalación no puede ser mássencilla, de hecho fue un requisito a la horade diseñar el entorno. De este modo elalumno le basta con crear una carpeta (o no),copiar el programa, hacer doble clic sobre ély empezar a trabajar.

En cuanto al uso, éste es libre paracualquier usuario, quedando expresamenteprohibida su distribución comercial decualquier modo sin el consentimiento de losautores (BOOLE está en el Registro de laPropiedad Intelectual).

Se solicita a todos los usuarios que seregistren en la dirección electró[email protected], y así poder enviarleslas nuevas versiones del entorno.

13.4 Sistemascombinacionalescon BOOLE

Antes de pasar a BOOLE, recordemos qué esdiseñar. El diseño de un sistemacombinacional pasa por varias fases:

♦ Leer y entender el enunciado.♦ Determinar las variables de entrada y

salida.

♦ Obtener de la tabla de verdad.♦ Obtener las formas normales de cada

variable de salida.

♦ Obtener los diagramas de Veitch-Karnaugh de cada salida.

♦ Simplificar cada V-K, obteniendo laexpresión simplificada.

♦ Opcionalmente, reescribir la expresiónanterior desde las puertas NAND oNOR.

♦ Obtener el circuito lógico.♦ Implementar el circuito digital con

circuitos integrados.

Page 4: Manual Boole Deusto

4

♦ Probar el circuito implementado.

Los dos primeros pasos deben ser dados porel alumno/profesor, y los dos últimosquedan fuera del BOOLE; pertenecen allaboratorio, con programas como ElectronicWorkBench, OrCAD, etc. Centrémonosmediante un ejemplo en los seis pasosrestantes.

13.4.1 Ejemplo 1 desistemacombinacional

El ejercicio que se propone consiste endiseñar el circuito transcodificador de BCDpuro a BCD Aiken.

Las variables de entrada son cuatro, lasmismas que de salida. Así pues la tabla deverdad a completar tendrá 16 filas y cuatrosalidas.

La figura 13.1 muestra la primera imagenque el alumno ve al activar BOOLE; en estapantalla elegirá la opción SistemasCombinacionales.

Figura 13.1 Pantalla inicial de BOOLE

La siguiente imagen será la de la figura 13.2.En ella el alumno obligatoriamente debeindicar el nombre del sistema, el número devariables de entrada y el número devariables de salida. Opcionalmente podrádar un nombre a las variables, teniendo encuenta que BOOLE asigna un nombre pordefecto.

Figura 13.2 Declaración del sist. combinacional

Una vez declarado el sistema, el alumnodebe describirlo. La figura 13.3 muestratodas las opciones que ofrece BOOLE; eneste caso optaremos por la opción Tablade Verdad Manual.

Figura 13.3 Operaciones booleanas de BOOLE

Al activar esta opción el alumno verá las 16filas ordenadas, debiendo escribir él lassalidas mediante clics de ratón. Al ponerseencima de una casilla, cada clic de ratóncambia el valor booleano. Además no hayque cumplimentar toda la tabla, se puedenescribir sólo los 1’s y rellenarautomáticamente el resto con 0’s, o escribirsólo los 1’s y 0’s y rellenar el resto concondiciones libres.

La figura 13.4 muestra la tabla de verdaddel transcodificador. Para que el sistema seacargado es necesario activar Evaluar, yluego Salir. A partir de este momentotodas las operaciones de BOOLE seránaplicadas a este sistema.

Page 5: Manual Boole Deusto

5

Figura 13.4 Tabla de Verdad Manual

Al volver a la figura 13.3, si el alumnoactivara Forma Normal Disyuntivaobtendría la figura 13.5. En ella sólo se veuna salida, la primera, para ver las restantesbasta con pulsar en la barra dedesplazamiento de la derecha.

Figura 13.5 Forma Normal Disyuntiva

Si el alumno quisiera, podría cambiar elsistema borrando los números de F1 yescribiendo otros nuevos. Pero sigamos conel sistema tal y como lo hemos descrito alprincipio.

Si después de pulsar Salir en laanterior figura, el alumno pulsara V-K en lapantalla principal, se encontraría con lafigura 13.6. Para ver los V-K de las restantessalidas, bastará con pulsar en la barra dedesplazamiento. Además de la opción V-K

el alumno dispone de V-K 2; con esta opciónobtendría un V-K ordenado de distintamanera (según el código Gray). De estaforma BOOLE busca adaptarse a lasnecesidades de los distintos profesores yalumnos.

Figura 13.6 Diagrama de Veitch-Karnaugh

El anterior V-K tiene por objetivo facilitar lasimplificación visual de la función. Al pulsarSalir en la figura 13.6 y Expr. SOPSimplificada en la pantalla principal dela figura 13.3, el alumno obtendrá lasexpresiones simplificadas de cada una de lassalidas. Dichas expresiones lo serán enforma de suma de productos (SOP), aunquetambién podría haber optado por POS. Lasexpresiones obtenidas son mínimasnecesariamente (el algoritmo implementadoes recursivo y exacto), aunque el conjunto notiene por qué serlo, es decir, simplifica cadafunción por separado.

La figura 13.7 muestra la expresiónmínima de la salida 2 (para ver el restopulsaremos en la barra de desplazamiento).

Page 6: Manual Boole Deusto

6

Figura 13.7 Expresión SOP Simplificada

Si el alumno quisiera reescribir las salidasdesde las puertas NAND o NOR, le bastaríacon activar Nand/Nor en la anterior figura.La figura 13.8 es un ejemplo de ello.

Figura 13.8 Expresiones NAND/NOR

Para ver los circuitos lógicos el alumnodeberá pulsar Visualizar Circuito enla figuras 13.7 o 13.8, resultando las figuras13.9 y 13.10.

Figura 13.9 Circuito Lógico AND-OR

Figura 13.10 Circuito Lógico NAND

Llegado a este punto el alumno habrácompletado todo el proceso de diseño pasopor paso. Aunque si hubiera queridotambién habría podido introducir la tabla deverdad y seguidamente pulsar Expr. SOPSimplificada, ahorrándose los pasosintermedios; actitud que se debe evitarmientras se esté aprendiendo a diseñar.

Antes de pasar a diseñar otro sistemacombinacional, el alumno podrá guardar elsistema, imprimir los resultados obtenidos uobtener el código correspondiente al sistemaen OrCAD-PLD. La figura 13.11 muestradichas opciones en la pantalla principal.

Figura 13.11 Servicios generales de BOOLE

Si se optara por Guardar PLD, se obtendríaun programa (ver figura 13.12) listo para sercompilado en OrCAD y finalmente grabadoen la PAL elegida.

Page 7: Manual Boole Deusto

7

Figura 13.12 Programa en OrCAD-PLD

13.4.2 Ejemplo 2 desistemacombinacional

En este caso se va a diseñar con BOOLE uncodificador 8:3 con prioridad.

La figura 13.13 declara al sistema por sunombre y número de variables de entrada ysalida.

Figura 13.13 Pantalla principal al completo

Optaremos en este caso por describir elsistema con Tabla de VerdadCompacta. Como se puede ver en la figura

13.14, en este caso el alumno es responsablede la entrada y la salida. A cambio puedeasociar condiciones libres en la entrada, esdecir, escribir varias filas en una sola. Deeste modo en vez de responder a 256 filas, elalumno escribirá solamente 8. Esta opción esmuy cómoda (y peligrosa) en determinadasocasiones.

Figura 13.14 Tabla de Verdad Compacta

Si al utilizar esta opción y las condicioneslibres, el alumno no escribiera todas las filasBOOLE las tomaría como condiciones libres,0’s ó 1’s, según lo elegido en la partesuperior de la figura 13.14.

Una vez cargado el sistema, el alumnopuede pasar por todas las fases del ejemploanterior o activar directamente Expr. SOPSimplificada. Las figuras 13.15 y 13.16muestran la expresión simplificada de lasalida 3 (la de menos peso) y el circuitológico correspondiente, respectivamente.

Figura 13.15 Expresión SOP Simplificada

Page 8: Manual Boole Deusto

8

Figura 13.16 Circuito Lógico AND-OR

Los ejemplos han permitido describir lospasos a dar para diseñar un sistemacombinacional. Ahora bien la partecombinacional del entorno BOOLE permiteotros usos de gran valor didáctico, como seve a continuación.

13.4.3 Análisis de sistemascombinacionales

En el caso de sistemas combinacionales, y engeneral, se puede decir que analizar esseguir el camino inverso de diseñar, es decir,dado un circuito o unas ecuaciones obtenersu tabla de verdad para comprobar suidoneidad. El primer caso queda fuera de losobjetivos del BOOLE, (cae dentro de losentornos profesionales: ElectronicWorkBench, OrCAD, etc), mientras que elsegundo sí es contemplado por BOOLE.

Por ejemplo, el alumno puede comprobarsi las expresiones por él obtenidas secomportan como un circuito decomplemento a 9 (C3-0) para una entradaBCD (E3-0).C3=(~E3*~E2*~E1) C1=(E1)

C2=(E2*~E1)+(~E2*E1) C0=(~E0)

Para comprobar dichas ecuaciones, elalumno habrá declarado el sistema con sunombre, 4 entradas y otras tantas salidas, yseguidamente activará ExpresiónBooleana. Para introducir las expresionesbooleanas habrá que seguir las indicacionesque aparecen en la Ayuda de la pantalla.

Introducidas una a una las cuatro funciones(utilizando la barra de desplazamiento) seobtiene la figura 13.17.

Figura 13.17 Captura de Expresión Booleana

Después de pulsar Evaluar y Salir elalumno volverá a la pantalla principal,donde al activar Tabla de VerdadManual obtendrá la tabla correspondiente adichas ecuaciones, comprobando su validez.La figura 13.18 muestra la tabla de verdadde las ecuaciones anteriores y su validez.

Figura 13.18 Tabla de Verdad del sistema

BOOLE permite otros caminos de análisis,bastará con que el alumno introduzca elsistema mediante una técnica derepresentación y active otra para observar elresultado. De hecho, y visto así, análisis ydiseño se distinguen en el punto de vista, yno en los métodos o técnicas derepresentación utilizadas.

Page 9: Manual Boole Deusto

9

13.4.4 Simplificación defunciones

En el proceso de aprendizaje del alumno unpaso costoso para él es aprender asimplificar funciones booleanas. El métodoen sí no es difícil de explicar, aunque sí lo essu aplicación. Como método heurístico quees, sólo se aprende practicando: dada unafunción, el alumno la simplifica ycomprueba su acierto.

Visto desde el punto de vista de la clase,el profesor explica los pasos, completa algúnejercicio y deja el resto del trabajo al alumno.En este escenario BOOLE es de gran ayudatanto para el profesor como para el alumno.

Si el alumno eligiera en la pantalla desistema combinacionales la opción ModoAprendizaje (una vez dado nombre ydeclarado el número de variables de entraday salida), vería que aparecen el V-K delsistema cargado y una línea para que escribala expresión que él cree mínima. BOOLEanaliza lo introducido, indicando al alumno:

♦ la expresión es incorrecta (no secorresponde con el V-K),

♦ la expresión es correcta pero no mínima(se corresponde con el V-K pero no estodo lo mínima que se puede)

♦ la expresión es correcta y mínima(acierto).

Las figuras 13.19, 13.20 y 13.21 muestran unV-K con tres respuestas distintas. Paraescribir las expresiones el alumno deberáseguir los consejos de la Ayuda y pulsarEvaluar.

Figura 13.19 Modo Aprendizaje

Figura 13.20 Modo Aprendizaje

Page 10: Manual Boole Deusto

10

Figura 13.21 Modo Aprendizaje

Como se puede ver en las figuras, BOOLEno muestra el resultado correcto, sóloinforma al alumno de lo correcto de suopción. Si quisiera ver el resultado, deberíavolver a la pantalla principal y activarExpr. SOP Simplificada.

13.4.5 Metodologíabooleana

A la hora de diseñar o analizar se aplicanmétodos para pasar de una representación aotra, y así diseñar es proceder de una formaordenada en estas transformaciones. Sinembargo, muchas veces antes de que elalumno dé estos pasos ordenados lospractica por separado. Por ejemplo:

♦ Obtener la forma normal de una tabla deverdad, y viceversa.

♦ Obtener el diagrama de V-K de unatabla de verdad, y viceversa.

♦ Obtener el diagrama de V-K de unaforma normal, y viceversa.

♦ Obtener la suma de minitérminos (oproducto de maxitérminos) de una tablade verdad, y viceversa.

♦ Obtener la expresión NAND/NOR deuna expresión SOP o POS.

♦ La obtención del circuito lógico de unaexpresión booleana.

Todas las anteriores transformaciones (yotras) son contempladas por BOOLE, sinmás que introducir el sistema y pulsar laopción deseada. Es bajo este uso cuandotoma sentido la idea de Calculadora Boolenaasociada a BOOLE (además de ser unaherramienta de análisis y diseño).

Por ejemplo, la figura 13.22 muestra laobtención de las expresiones NAND/NORde una suma de productos.

Figura 13.22 Expresiones NAND/NOR

Para obtener el circuito lógico de unaexpresión, algo tan sencillo como incómodode hacer en clase, basta con que el alumnollegue a la pantalla de visualización decircuitos y escriba en la parte inferior laecuación a visualizar. Al activarVisualizar, BOOLE le mostrará alalumno el circuito lógico de la expresiónintroducida. La figura 13.23 muestra elcircuito lógico de una expresión cualquiera.

Page 11: Manual Boole Deusto

11

Figura 13.23 Circuito lógico de una ecuación

Con estos sencillos ejemplos queda claro queBOOLE es un excelente compañero delalumno en sus primeros pasosmetodológicos, cuando se acerca porprimera vez al álgebra de Boole y lasrepresentaciones booleanas. Es probable queeste interés del alumno sea poco duraderoen el tiempo (se aprende rápido), perointenso.

13.5 Sistemassecuenciales conBOOLE

BOOLE permite analizar y diseñar sistemassecuenciales a nivel de bit, llamados tambiénautómatas. El comportamiento de BOOLEcon autómatas es distinto al visto paracombinacionales. En este caso BOOLE nopermite modificar el sistema en cualquierade las fases, ya que esto no tiene sentido yno aporta nada didácticamente al entorno.Las fases de diseño de un autómata son:

♦ Leer y entender el enunciado.♦ Determinar las variables de entrada y de

salida.

♦ Obtener el Diagrama de Transición deEstados (DTE), ya sea Moore o Mealy,indistintamente.

♦ Obtener la Tabla de Transición deEstados y Salidas.

♦ Obtener la Tabla de Codificación deEstados.

♦ Obtener la Tabla Codificada deTransición de Estados y Salidas.

♦ Obtener la Tabla de Excitación deBiestables D o J-K, indistintamente.

♦ Obtener los diagramas de V-K de cada J-K o D y de cada salida.

♦ Obtener las expresiones mínimas de lasentradas de los biestables (J-K o D) y delas salidas.

♦ Obtener el circuito lógico con biestablesJ-K o D.

♦ Implementar el circuito digitalcorrespondiente con circuitosintegrados.

♦ Probar el circuito implementado.

Al igual que para sistemas combinacionales,los dos primeros pasos y los dos últimos noson contemplados por BOOLE, el resto sí.

13.5.1 Ejemplo 1 desistema secuencial

El circuito a diseñar debe comportarse comoun sumador serie. El sistema recibe en seriedos entradas A y B y ofrece también en serieen la salida la suma de dichas entradas.Lo primero que el alumno debe hacer eselegir Sistema Secuencial (ver figura13.24).

Figura 13.24 Pantalla de inicio de BOOLE

Page 12: Manual Boole Deusto

12

La imagen que el alumno verá es la de lafigura 13.25. Quizá, el cuadradito con lasflechas y el círculo quede fuera de la mesa detrabajo, pero el alumno puede seleccionarlo yarrastrarlo hasta ella.

Figura 13.25 Mesa de trabajo de autómatas

Seguidamente el alumno debe declarar elautómata a diseñar. Para ello desplegará elmenú Archivo, y en él elegirá la opciónNuevo, apareciendo la pantalla de la figura13.26. El autómata a diseñar tiene dosentradas y una salida, y será descrito comoMoore. Pulsando Aceptar, BOOLE vuelvea mostrar la mesa de trabajo.

Figura 13.26 Declaración del autómata

Una vez en la mesa de trabajo el alumnopuede introducir el DTE gráficamente. Eneste aspecto BOOLE se muestra muy ágil ycómodo, de manera que cargar el DTE es tanfácil como vistoso.

Recordemos que un autómata tieneestados, transiciones, entradas y salidas, asíBOOLE ofrece el círculo (estado) y la flecha

pequeña (transiciones). La flecha grandesirve para seleccionar un estado o unatransición. Veamos la captura del DTE delautómata de Moore de un sumador serie.

Por ejemplo, lo primero es situar loscuatro estados del autómata, seleccionandoel círculo y haciendo simplemente clic con elratón en la posición deseada. Así se obtienela figura 13.27.

Figura 13.27 Situación de los estados

Antes de seguir digamos cómo pasar deflecha grande a pequeña o círculo. Hay dosformas:

♦ Normal: basta con ir al cuadrado yseleccionar con el ratón.

♦ Rápido: al pulsar el botón derecho trascolocar un estado o una transición sepasa a la flecha grande.

De los dos el más recomendable es elprimero, aunque con el tiempo uno se acabaacostumbrando al segundo.

Si al situar un estado quisiéramosmoverlo bastaría con seleccionarlo en modoflecha grande (las dos opciones de antes) ymoverlo a la nueva posición.

Para borrar un estado habrá queseleccionarlo en modo flecha grande y luegopulsar el botón derecho.

Aunque el orden de los pasos dependerádel diseñador y del ejercicio en particular,parece lógico seguir con la signación de las

Page 13: Manual Boole Deusto

13

salidas a cada estado (por ser un autómatade Moore). Los estados son cuatro S0C0,S1C0, S0C1 y S1C1, el primero es cuando lasuma es 0 y el acarreo de salida tambien, elresto de estados se entienden del mismomodo. Para asignar la salida al estado habráque seleccionarlo en modo flecha grande yhacer doble clic sobre el estado. Al haceresto aparece una pantalla en la que seescribirá el nombre del estado y las salidasasignadas (ver figura 13.28). La figura 13.29muestra al autómata tras la asignación de lassalidas a los estados.

Figura 13.28 Etiquetado de un estado Moore

Figura 13.29 Estados de Moore etiquetados

Situados los estados con su nombre y salida,el alumno debe dibujar las transiciones.Simplemente basta con seleccionar la flechapequeña, hacer clic en el estado origen y clicen el estado destino; dibujando BOOLE latransición. Para hacer un autolazo basta conhacer los dos clics en el mismo estado.

Acabado este paso el autómata será el de lafigura 13.30.

Figura 13.30 Autómata con transiciones

Al situar las transiciones pueden darse dossituaciones incómodas: que una transiciónquede encima de otra o que no se vea lapunta de flecha de la transición, en amboscasos la solución pasa por mover lastransiciones.

En el primer caso, basta con estar enmodo flecha grande, seleccionar agarrar lapunta de flecha (la flecha del autolazo es uncuadrado) y arrastrarla.En el segundo caso (¿dónde está la punta deflecha?) habrá que pasar a modo flechagrande, seleccionar el estado destino ymoverlo, pues la punta de flecha estarádebajo de él. Una vez que la flecha esté a lavista, se procede como en el párrafoanterior.

Todo lo dicho puede parecer complicado,pero es muy sencillo acostumbrarse alentorno de dibujo.

En este momento sólo resta asociar lasentradas a las transiciones. Al igual que paralos estado basta con seleccionar la flecha,hacer doble clic y escribir la entrada de latransición (ver figura 13.31).Al acabar elautómata tendrá el aspecto de la figura13.32.

Page 14: Manual Boole Deusto

14

Figura 13.31 Etiquetado de una transiciónMoore

Figura 13.32 Autómata de un sumador serie

Aunque no es el caso, el alumno puedeasociar a una transición condiciones libresen la entrada, como por ejemplo se muestraen la figura 13.33.

Figura 13.33 Uso de condiciones libres

En este momento el autómata de Moore yaestá descrito mediante su DTE, y el alumnoya puede pasar a ver los pasos del diseño.Antes de diseñar se pueden activar dentrodel menú Resultados las opcionesVerificar Corrección y VerificarCompletitud, que nos indican si hemosolvidado alguna transición, o si alguna deellas está duplicada. La figura 13.34 nosmuestra el resultado de dichasverificaciones.

Figura 13.34 Verificación del autómata

En el menú de Resultados podemos verlas opciones del diseño: simular elautómata, intentar reducir el autómata,obtener el autómata de Mealyequivalente y diseñar el autómata.Dejemos las tres primeras opciones paramás adelante y activemos Diseño. En estecaso BOOLE ofrece todas las tablas deldiseño y las expresiones mínimas obtenidas

Page 15: Manual Boole Deusto

15

en una sóla pantalla, la que aparece en lafigura 13.35.

Figura 13.35 Tablas de diseño del autómata

De la anterior imagen cabe aclarar que en laTabla de Excitación de Biestables la qminúscula representa al estado actual,mientras que Q mayúscula representa alestado futuro, es decir, Q(t) y Q(t+1) ó Q(t-1)y Q(t). La figura 13.36 muestra detallada lazona de las expresiones simplificadas.

Figura 13.36 Expresiones simplificadas

Para ver el circuito lógico bastará con que elalumno vaya al menú Circuito y elija elbiestable deseado, por ejemplo J-K,obteniéndose la figura 13.37.

Figura 13.37 Circuito lógico del autómta

Siguiendo estos pasos el alumno habrápodido obtener no sólo el circuito lógico,sino que habrá observado los distintos pasos(y comprobado la bondad de los obtenidospor él). Además el alumno puede guardar elautómata, puede imprimir los resultados,puede copiar el DTE al portapapeles (y deahí a un documento, con lo que BOOLE valepara documentar ejercicios) y puede obtenerel correspondiente programa en OrCAD-PLD.

13.5.2 Ejemplo 2 desistema secuencial

Planteemos ahora el autómata de Mealycapaz de detectar las secuencias 1010 ó 110permitiendo solapamientos y cambios entresecuencia. Dispone de una entrada serie y deuna salida que indica si se ha detectado unade las dos secuencias.

El DTE correspondiente al anteriorenunciado es el de la figura 13.38.

Page 16: Manual Boole Deusto

16

Figura 13.38 Autómata de Mealy deldetector

El alumno puede intentar reducir el anteriorautómata de 6 estados. Basta con seleccionarReducción en el menú Resultados.BOOLE le muestra al alumno una pantallaen la que elegirá si quiere ver los pasos de lareducción (Ver Pasos) o sólo ver losresultados (Simplificar). Si el alumnooptara por la primera opción, deberá guiarel proceso con sucesivos clics de ratón sobreContinuar, y así ir viendo cómo secompleta la tabla de reducción. Tras variosclics BOOLE ofrece el resultado de la posiblereducción, que en este caso deja al autómtaen cuatro estados. Si en la figura 13.39, trasla reducción, se optara por Cambiar, elpropio BOOLE sustituirá el DTE antiguo porel nuevo, quedando éste a la vista. Si hicierafalta el alumno podría reordenar o modificarlo dibujado por BOOLE.

Figura 13.39 Reducción de estados

Tras elegir Cambiar, el BOOLE muestra elDTE de la figura 13.40.

Figura 13.40 Autómata reducido

Sólo quedan por obtener las tablas y elcircuito lógico correspondiente. En la figura13.41 vemos que las tablas son distintas delas del anterior ejercicio, como correspondea la diferencia entre Moore y Mealy. En lafigura 13.42 se ve el circuito lógico basadoen biestables tipo D.

Page 17: Manual Boole Deusto

17

Figura 13.41 Tablas de diseño del autómata

Figura 13.42 Circuito lógico del autómata

Por último, y al igual que en loscombinacionales, BOOLE permite obtener elprograma en OrCAD-PLD listo para sercompilado, simulado y grabado. La figura13.43 muestra el programa correspondienteal detector de secuencias.

Figura 13.43 Programa en OrCAD-PLD

Con los dos ejemplos anteriores hemos vistola potencia, didáctica y facilidad de uso delBOOLE para autómatas.

13.5.3 Simulación deautómatas

El diseño de autómatas puede llegar acomplicarse, siendo en estos casos muy útiluna herramienta de simulación como la quepresentamos.

Una vez que el alumno ha introducido elDTE que él cree correcto puede simularlo, yasí comprobar su validez. En este caso elalumno deberá preparar un juego de ensayode forma meticulosa, contemplando elmayor número de situaciones sin llegar aeternizarse. Seguidamente cargará dichojuego de ensayo en el simulador de BOOLE,y observará si los resultados obtenidoscoinciden con los esperados. BOOLE no dicesi el autómata está bien, es el alumno elresponsable de la simulación, enfrentandoqué quiere y qué tiene.

13.5.3.1 Simulación batch

Si el alumno dentro del menú Resultadoseligiera Simulación Batch pasaría a verla figura 13.44. En ella el alumno indicarácuál va a ser el estado inicial y cuántos casosse van a simular (este número puedecambiar). En cada fila el alumno escribirá elvalor de las entradas, del reloj y del reset.Por ejemplo, en la primera fila activaremosel reset, en la segunda activaremos el clk conlos valores 0 y 1 en las entradas, y asísucesivamente. Destacan en la simulaciónlas filas 5, 6 y 7, pues en ellas cambian lasentradas, pero no hay clk.

Page 18: Manual Boole Deusto

18

Figura 13.44 Simulación batch

Ahora al pulsar Inicio Simulacióncomienza la misma, y por cada SiguienteBOOLE simula una nueva fila. Completadala simulación se obtiene la figura 13.45, queconfirma la validez del autómataintroducido.

Figura 13.45 Resultado de la simulaciónbatch

Hay que ser cuidadoso a la hora de simulary leer la simulación, teniendo en cuenta que:

♦ Al llegar a una fila (en azul), éstamuestra su estado actual, su salidaactual y cuál va a ser su próximo estado(cuando se haga clic y haya clk).

♦ Una fila no es procesada hasta no pulsarSiguiente, es decir, la salida que se veen cada fila es la de la fila anterior.

♦ No debe de verse la salida escrita en unafila como el resultado de procesar suentrada, sino como el resultado deprocesar la anterior entrada.

♦ Esto puede parecer incómodo, peroresulta más real y potente a la hora deplantear simulaciones donde la entradacambia entre flancos

♦ Los cambios en las entradas entreflancos son vistos de distinta forma porMoore y Mealy (Mealy los ve, Mooreno).

Para ver mejor lo dicho ahora, el alumnopuede tener a la vista simultáneamente lapantalla de simulación y la de captura delDTE. En esta última puede ver gráficamentela simulación, por ejmplo, la figura 13.46muestra lo dicho para esa segunda fila,viéndose cuál es el estado actual, cuál es latransición que ahora está activa (preparadapara cuando se haga clic) y cuál será elpróximo estado. Cuando elalumno/profesor practique con lasimulación entenderá las ventajas de ésta,aunque resulte algo compleja a primeravista.

Figura 13.46 Simulación batch gráfica

Page 19: Manual Boole Deusto

19

Si observamos con calma las filas 5, 6 y 7vemos que sólo es procesada la fila 5 (cuyoresultado aparece en la fila 6).

Además de lo visto, BOOLE permite:

♦ Guardar y cargar una simulación. En elmenú Archivo.

♦ Mostrar la simulación en un fichero detexto para imprimirlo o copiarlo en undocumento del tipo que se quiera (muycómodo para documentar ejercicios). Enel menú Log.

13.5.3.2 Simulación interactiva

BOOLE permite simular de modointeractivo. En este caso el proceso es másflexible para el alumno; él no tiene por quépreparar antes la secuencia de entrada, sinoque la puede ir improvisando sobre lamarcha. La figura 13.47 muestra lo que elalumno ve al elegir SimulaciónInteractiva en el menú Resultados.

En la pantalla se ven varios elementosque hay que manejar con cuidado. Porejemplo, lo primero que hará el alumno serápulsar Reset, luego escribirá una entrada ypulsará Aplicar, con lo que la entrada pasaal DTE (lo que se ve en la parte gráfica de lapantalla) y finalmente hará clic sobre clkpara que el autómata pase al nuevo estado(si así se desea).

Figura 13.47 Simulación interactiva

El desarrollo de la simulación es interactiva,pero es guardada por BOOLE en un fichero.log, de modo que el alumno puede

recuperar y revisar lo simulado bien paraestudiarlo, imprimirlo o guardarlo(activando Ver log). Al ver el archivo detexto .log sorprende el hecho de quealgunas entradas tengan una fila y otras dos.El último caso coincide con la activación delclk, así si nos fijamos en las filas 6 de lafigura 13.48 resulta que:

♦ la primera muestra en qué estado estabael autómata al recibir la entrada (antesdel clk),

♦ mientras que la segunda fila muestra enqué estado queda el autómata (y sunueva salida) al procesar dicha entrada.

Es decir, y siendo coherente con lo ya dicho,el resultado de un clk se ve en la filasiguiente. Esta duplicidad permite unanálisis más detallado, teniendo en cuentaque si estorbaran siempre podrán serborrados en el .log.

Figura 13.48 Fichero .log de la simulación

13.5.3.3 Comparación simulacióninteractiva vs batch

Simular un autómata exige ordenar lasentradas respecto del reloj. La pregunta es¿cuándo cambia la entrada? ¿antes delflanco, después o en el mismo instante?

Muchas veces al simular queremos que laentrada cambie con el flanco, lo que enprincipio no es real. Lo normal es primerocambiar la entrada y luego generar el flanco,

Page 20: Manual Boole Deusto

20

de esta forma en el momento del flanco seprocesa la entrada ya estabilizada.

Vista la situación anterior desde BOOLEhay que tener en cuenta que:

♦ en la simulación interactiva primero secambia la entrada y luego se genera elclk (Aplicar y clk), lo que asegura queel ritmo de la simulación es controladopor el usuario,

♦ en la simulación batch se puede forzarque el cambio de la entrada coincida conel flanco, ahora bien el usuario deberecordar que el efecto de dicha entradano será visto hasta pulsar Siguiente.

Por ejemplo, si queremos simular lasecuencia de entrada de la tabla 13.2.

RESET CLK A B SUMARESET 0 0 0

↑ 0 1 1↑ 1 0 1↑ 1 1 0↑ 0 0 1

0 1 1 (*)1 1 1 (*)

↑ 0 1 1↑ 0 0 0↑ 0 1 1

(*) no procesadas

Tabla 13.2 Secuencia a simular

Simulada la anterior secuencia mediante elsimulador batch se obtiene la tabla 13.3.

|----|-------|---||------||----|----||--------||----||Paso| RESET |CLK|| S(t) || E0 | E1 || S(t+1) || S0 ||====|=======|===||======||====|====||========||====|| 1 | RESET | || SOC0|| 0 | 0 || SOC0 || 0 || 2 | | || SOC0|| 0 | 0 || SOC0 || 0 || 2 | |CLK|| SOC0|| 0 | 1 || S1C0 || 0 || 3 | |CLK|| S1C0|| 1 | 0 || S1C0 || 1 || 4 | |CLK|| S1C0|| 1 | 1 || S0C1 || 1 || 5 | |CLK|| S0C1|| 0 | 0 || S1C0 || 0 || 6 | | || S1C0|| 0 | 1 || S1C0 || 1 || 7 | | || S1C0|| 1 | 1 || S0C1 || 1 || 8 | |CLK|| S1C0|| 0 | 1 || S1C0 || 1 || 9 | |CLK|| S1C0|| 0 | 0 || SOC0 || 1 || 10 | |CLK|| SOC0|| 0 | 1 || S1C0 || 0 |

Tabla 13.3 Resultado de la simulación batch

Se ve que el resultado es el mismo peroretardado un flanco, hubiera hecho falta una

fila más para procesar la entrada 0 1 delúltimo clk.

La simulación interactiva de dichasecuencia es más larga, pues primerodebemos cambiar la entrada y luegoprocesarla, que es lo más lógico. El resultadoobtenido es la tabla 13.4.

|-----|---------|----||-------||-----|-----||----------||-----||Paso| RESET |CLK|| S(t) || E0 | E1 || S(t+1) || S0 ||====|=======|===||======||====|====||========||====|| 1 | RESET | || SOC0|| 0 | 0 || SOC0 || 0 || 1 | | || SOC0|| 0 | 0 || SOC0 || 0 || 2 | | || SOC0|| 0 | 0 || SOC0 || 0 || 3 | |CLK|| SOC0|| 0 | 0 || SOC0 || 0 || 3 | | || SOC0|| 0 | 0 || SOC0 || 0 || 4 | | || SOC0|| 0 | 1 || S1C0 || 0 || 5 | |CLK|| S1C0|| 0 | 1 || S1C0 || 1 || 5 | | || S1C0|| 0 | 1 || S1C0 || 1 || 6 | | || S1C0|| 1 | 0 || S1C0 || 1 || 7 | |CLK|| S1C0|| 1 | 0 || S1C0 || 1 || 7 | | || S1C0|| 1 | 0 || S1C0 || 1 || 8 | | || S1C0|| 1 | 1 || S0C1 || 1 || 9 | |CLK|| S0C1|| 1 | 1 || S0C1 || 0 || 9 | | || S0C1|| 1 | 1 || S1C1 || 0 || 10 | | || S0C1|| 0 | 0 || S1C0 || 0 || 11 | |CLK|| S1C0|| 0 | 0 || S1C0 || 1 || 11 | | || S1C0|| 0 | 0 || SOC0 || 1 || 12 | | || S1C0|| 0 | 1 || S1C0 || 1 || 13 | | || S1C0|| 1 | 1 || S0C1 || 1 || 14 | | || S1C0|| 0 | 1 || S1C0 || 1 || 15 | |CLK|| S1C0|| 0 | 1 || S1C0 || 1 || 15 | | || S1C0|| 0 | 1 || S1C0 || 1 || 16 | | || S1C0|| 0 | 0 || SOC0 || 1 || 17 | |CLK|| SOC0|| 0 | 0 || SOC0 || 0 || 17 | | || SOC0|| 0 | 0 || SOC0 || 0 || 18 | | || SOC0|| 0 | 1 || S1C0 || 0 || 19 | |CLK|| S1C0|| 0 | 1 || S1C0 || 1 || 19 | | || S1C0|| 0 | 1 || S1C0 || 1 |

Tabla 13.4 Resultado de la simulacióninteractiva

Las salidas de la secuencia están marcadasen negrita y coinciden con la fila siguiente alclk. Dicha fila por cierto está numeradaigual que la anterior. Por ejemplo, miremosa las dos filas número 3: la primera indicaqué entrada hay en el momento del flanco yla segunda establece la salida tras ese flanco.

Lo dicho puede parecer complicar lasimulación, y además hubiera sido mássencillo diseñar una simulación como la dela tabla 13.2. Si hemos optado por estasimulación es para ceder todo el control dela simulación al alumno/profesor, para queambos puedan simular con libertad y nodirigidos, y poder analizar, por ejemplo, ladiferencia entre Moore y Mealy.

Page 21: Manual Boole Deusto

21

13.6 Comentarios

El entorno BOOLE ha sido diseñado yprogramado durante cinco años por susautores, Jesús Sanz Martínez y Javier GarcíaZubía, y por alumnos de la Facultad deInformática de la Universidad de Deusto(ESIDE), destacando entre estos últimosBorja Sotomayor. Se han utilizado latecnología orientada objetos, el lenguaje deprogramación C++ y la librería STL.

El resultado final tiene en este momentomás de 20.000 líneas de código (excluyendocomentarios y líneas en blanco), lo que dauna idea de la complejidad del entorno.BOOLE ha sido presentado en cuatrocongresos nacionales e internacionales, y harecibido el Premio al Mejor Equipo Softwareen el IV Congreso de Tecnologías Aplicadasa la Enseñanza de la Electrónica, TAEE 2000,celebrado en Barcelona en septiembre delaño 2000.

El entorno ha sido probadoinsistentemente por sus autores, susalumnos (700 alumnos al año de ingenieríainformática e industrial), otros profesores(Alfonso Barba y José Antonio Aranguren) ypor otros colaboradores externos (graciasespecialmente a Mariano Barrón y JavierMartínez), pero esto no es óbice para que noaparezcan nuevos errores y comentarios.

Agradeceríamos que todos aquellos queencuentren un error o tengan cualquiercomentario al entorno (positivo o negativo)los enviaran a la dirección:[email protected], lo que nos permitirámejorar BOOLE.

Pensamos que una vez creado el entornoes responsabilidad de todos los que usemosBOOLE el mantenerlo en condiciones, paraque todo este esfuerzo no haya sido baldío.