5 Pruebas del Sistema 5.1 Introducción En este capítulo se va a mostrar la interfaz operando, de tal forma que se aprecie realmente y con imágenes qué es lo que hace y cómo lo hace. Para que resulte más intuitivo, el desarrollo de este apartado va a seguir un caso típico de uso, que va a comenzar por la creación de un proyecto nuevo, abarcando hasta el uso de los modos SnapShot o Step e incluso mostrando el modo Colapsado. 91 Pruebas del Sistema El propósito de este cometido no es realizar un manual de usuario, pues no se va a profundizar tanto en las opciones, sino mostrar un ejemplo de creación y depuración de un proyecto para que resulte más sencillo para el usuario abordar él sólo la herramienta sin haberla trabajado antes. 5.2 Definición del Proyecto Al ejecutar el programa, aparece la interfaz en blanco, y tan sólo tenemos disponibles las opciones del menú File y su barra de herramientas correspondiente que obligan al usuario a crear un nuevo proyecto o a abrir uno existente. En este caso se va a crear un proyecto desde cero, para que se vea como se ejecutan los comandos del menú Edit. Nos vamos al menú File - Create Project o al elemento Create Project de la barra de herramientas, aparece el diálogo de la figura 22 donde se introduce el nombre del nuevo proyecto, en este caso se llamará Prueba. Una vez decidido el nombre, aparece el diálogo para introducir el fichero .ll que contiene el diseño, en este caso ese fichero se llama: ftunshades_top.ll. Una vez elegido todo esto, aparecen todos los registros del diseño en la zona de información del diseño, los TTreeView se rellenan con el nombre de proyecto (cuyo valor correspondiente es NIL) y con un primer bus llamado Bus1; además se habilitan dos opciones en el menú Edit: Edit Bus y Create Bus. De esta forma se nos presentan dos formas de continuar: • Edit Bus: Se edita el Bus1 añadiéndole los registros que queramos para rellenarlo, de esta forma aparece un bus llamado Bus1 con un determinado contenido. • Create Bus: Aparece el cuadro de diálogo de Create Bus, que nos permite añadir registros individuales o buses predefinidos, y además dar un nombre cualquiera al bus; de esta forma el primer bus no se llama necesariamente Bus1, sino el nombre que se haya proporcionado. 92 Pruebas del Sistema El usuario puede elegir la que más le convenga según el tipo de bus que va a crear, ya que si va a usar un bus de los que están predefinidos es mucho más fácil y cómodo hacerlo con Create, pero para un bus pequeñito y del cual no interesa mucho el nombre se puede usar directamente Edit. Además, si lo que se quiere es crear varios buses de una vez entonces se debe elegir la opción de Create, ya que como se puede observar en la figura 24, se nos proporciona una opción llamada Add por la cual se puede elegir el contenido de un bus, pulsar Add y automáticamente el diálogo se prepara para elegir otro bus, limpiando el nombre antiguo y las listas de destino y rellenando las listas de registros y buses de nuevo; de esta forma se pueden crear cuantos buses se deseen de una sola vez. Una vez se ha creado el primer bus, se permite el acceso al resto de funciones del menú Edit y la opción Load Bit, del menú Simulate y su barra de herramientas; esto es porque la simulación puede tener un solo bus o muchos, el número de los mismos no importa, pero debe existir al menos uno para tener registros que inspeccionar, de la misma forma tampoco pueden existir buses vacíos pero sí con una sola señal. Si se quiere añadir o quitar registros se usa la opción Edit, si por el contrario se desea eliminar uno de los buses creados se usa la opción Delete Bus; pero si se desea cambiar el nombre de un bus para hacerlo más representativo o para que no existan dos buses con el mismo nombre se usa la opción Change Name; usar Modify Bus no tiene sentido ahora. Con todas estas funciones se está perfectamente capacitado para crear el proyecto que queremos, seleccionando los registros deseados y agrupándolos de la forma más cómoda para cada uno de los usuarios; una vez realizado todo esto tenemos el proyecto listo para la simulación. 5.3 Preparando la Interfaz Antes de comenzar la simulación se puede decidir el aspecto que va a tener la misma, para ello tenemos el menú Tools, que nos proporciona diversos 93 Pruebas del Sistema medios para realizar estos cambios, algunas de estas opciones se deben usar antes de comenzar la simulación, pero otras pueden irse alterando a lo largo de la misma. Al formar el proyecto puede que los registros dentro de los buses se hayan añadido de manera rápida o se hayan cambiado varias veces, o sencillamente los hemos añadido tal y como aparecen ordenados, esto quiere decir que el primero será el que tiene el menor índice, pero eso significa que cuando leamos el valor del bus y lo representemos estamos obligando a que el registro más significativo sea ese registro de menor índice (sabiendo que el registro con índice 0 es el lsb del bus). Para cambiar esto existe la opción Sort Nets del menú Tools, que ordena los registros de cada bus de forma que el primero sea el más significativo y el último el menos significativo, así al hacer la lectura del bus tenemos el valor tal y como debe ser. Claro está que no es obligatorio ordenar los registros de esta manera, por eso se ha dado como opción y no como requisito; además esta opción es obligatoria elegirla antes de comenzar la simulación. Otra cosa que podemos elegir es el formato en el cual se va a representar la información, esto se puede ir cambiando a lo largo de la simulación dependiendo del usuario. Tenemos tres opciones, ver el valor de los buses en hexadecimal, binario o en decimal. El modo colapsado es otra cosa que se puede seleccionar en cualquier momento, ya que sólo influye en la representación. Pero la forma más llamativa de personalizar la interfaz es con la opción Preferences, donde se puede escoger el grosor, color y tipo de línea que va a tener la simulación, así como el color y relleno de la zona desconocida de la misma; y el color y grosor de los ejes, dándole un aspecto más agradable y único para cada uno de los usuarios, pudiéndose cambiar en cualquier momento si resulta incómodo o si se desea otra combinación. Como se ha mencionado antes, podemos usar las opciones de cambiar el rango antes de comenzar la simulación, y durante cualquier momento del 94 Pruebas del Sistema uso de la interfaz, así se puede ver el rango que se va representar y, por ejemplo, preparar la pantalla para un modo snap o step cuyo número de muestras sea indefinido y poder de esta manera ver todo lo que ocurre sin necesidad de parar y cambiar la visualización. 5.4 Realizando la Simulación En este apartado es dónde realmente se tratan las pruebas realizadas sobre el sistema y dónde se analiza la funcionalidad de la interfaz. Lo primero que se debe hacer es cargar el fichero .bit, ya sea a través del menú Simulate o directamente por el botón Load Bit de la barra de herramientas, ya que esto es lo que habilita el resto de funciones que antes no eran accesibles. Una vez está cargado el diseño en la placa ya sólo queda ejecutar los comandos de simulación para estudiar el valor de los registros seleccionados, el primer comando que se va a mostrar es el más sencillo y básico: el Step. Como se ha visto anteriormente se ha comentado que se podían realizar steps múltiples o simples, para mostrar el resultado de cada uno de ellos se ha realizado unos steps simples seguidos de un par de steps múltiples de 8 y 16 ciclos cada uno; esto se observa en la figura 38. Figura 38: Simulación de steps simples y múltiples. 95 Pruebas del Sistema El cometido del step simple es muy sencillo, se avanza un ciclo en la simulación y se recoge el valor de los registros en el dispositivo para posteriormente representarlos; el del step múltiple es el mismo pero en vez de avanzar un solo paso se avanza una determinada cantidad, de esta manera podemos ir avanzando en la simulación una cantidad fija de pasos (nótese que el número máximo de estos pasos no está fijado) e ir comprobando el estado del diseño. Otro de los comandos básicos en una simulación que se encuentran en la interfaz es el Reset, como se puede observar en la figura 39, un reset provoca una vuelta al ciclo cero, con su respectiva lectura en ese punto, que limpia la pantalla y la deja lista para volver a comenzar el depurado del diseño desde cero. Figura 39: Simulación del Reset. Se pasa ahora a comandos más específicos de la interfaz a los que no se está familiarizado, el primero de ellos es el Resume, al pulsar este botón se sume al dispositivo en un estado en el que está funcionando a su velocidad normal, por lo que, para conseguir averiguar el valor que tienen los registros del mismo se usará el comando Snap. De esta forma tenemos el dispositivo funcionando de forma independiente a nosotros y gracias al Snap vamos tomando “fotografías” de su estado en el tiempo, está claro que con este método no se puede fijar en qué momento se leerán los valores, eso depende de la pericia del usuario y de cuándo pulse el botón o el menú. 96 Pruebas del Sistema Figura 40: Simulación de Resume y Snap. Como se observa de la figura 40, para poder visualizar varias muestras en la pantalla se tiene que aumentar mucho el rango y por lo tanto entramos en lo que se llama “modo extendido”, esto significa que ya que debido al rango un ciclo ocuparía menos de un píxel en pantalla y por lo tanto sería invisible, se fija el ancho de cada ciclo que contenga un valor (sólo estos ciclos) a 10 píxeles para que la representación sea agradable y fácil de leer. Para volver la placa a su estado controlado tan sólo se debe volver a pulsar el botón de Resume, en el Historial se nos avisa de cual es el estado en el que se queda la placa después de pulsar el botón, ya que no hay otra forma de saber si la placa está en estado controlado o no pues es transparente al usuario. Los dos comandos que quedan son los más complejos pero a la vez los más completos y útiles, el SnapShot Mode y Step Mode. El primero es muy útil ya que proporciona una manera de, con la placa en estado descontrolado (funcionando a su velocidad de reloj), conseguir muestras del estado del dispositivo a intervalos regulares de tiempo fijados estos por el usuario. Estas muestras tienen un espaciamiento mínimo determinado por el tiempo que se tarda en realizar la lectura del dispositivo y el procesado de dicha información, éste se indica en el diálogo correspondiente para nuestra información. 97 Pruebas del Sistema Figura 41: Simulación del modo Snap. Otra característica del modo snap es que se puede fijar la cantidad de muestras que se van a tomar, o dejar que se vayan tomando muestras hasta que el usuario decida y pare el muestreo usando el botón de stop, este botón funciona en ambos casos: número de muestras conocido o no. La ventaja de este método es que permite al usuario ir viendo la evolución de los registros y cuando desee volver al modo controlado e ir ejecutando mediante steps para realizar un depurado paso a paso hasta acercarse al punto deseado. Con el modo snap se realiza un estudio de la placa a grosso modo, es decir, el avance en el tiempo de la simulación es mucho más rápido, pero también se toman menos muestras de los registros y tenemos menos información de la evolución de los mismos. Para el caso contrario existe el modo step, que realiza una simulación paso a paso continua del dispositivo, avanzando ciclo por ciclo y leyendo el valor en cada uno de ellos. De esta forma se tiene un cronograma completo de la evolución del estado de la placa ya que este modo nos proporciona las mismas opciones que el anterior, número fijo o no de muestras a tomar y botón de parada para decidir el final de la simulación continua. 98 Pruebas del Sistema Figura 42: Simulación del modo Step. Un detalle importante es que el modo Step no es igual que el anterior en cuanto que en el modo Step conocemos el estado de la placa en todos los ciclos, por tanto si aumentamos demasiado el rango hasta entrar en el “modo extendido” perderemos la visualización ya que los valores se superpondrán unos a otros y no se apreciará la individualidad de cada ciclo. Es obvio que debido a esto el modo step no está directamente limitado por el número de ciclos (o pasos que se dan) pero sí por el número de aquellos que se quieren visualizar en la pantalla. Todos estos comandos son accesibles tanto a través del menú Simulate como a través de la barra de herramientas SimBar con los nombres que se han dado aquí (excepto los modos Snap y Step que se encuentran exclusivamente en el menú) y con los diálogos que se vieron en el capítulo anterior. Esta es la funcionalidad que nos proporciona la interfaz, una interfaz de depuración y por lo tanto ese es su cometido, conseguir información, en este caso del dispositivo conectado, y representarla. Se han visto las formas de conseguir información, unas más simples y otras más complejas, pero entre todas ya sea de manera individual o completándolas se cubren todas las necesidades que se le pueden plantear al usuario durante la simulación. Existen formas de acercarnos lentamente a un ciclo o estado en concreto (steps simples, múltiples y modo step) y de ir muestreando la placa de cuando en cuando para comprobar el estado (snap y modo snapshot). Un sistema 99 Pruebas del Sistema típico de uso es comenzar un modo Snap e ir comprobando la salida hasta que se vea algo distinto de lo esperado o se llegue a un ciclo determinado, usar el botón de stop para volver al modo controlado y abrir un modo step o ejecutar steps hasta que lleguemos a aquél ciclo o estado que nos interesa. De esta forma hemos combinado toda la funcionalidad y conseguido una herramienta potente que cumple con nuestras necesidades de forma satisfactoria. Figura 43: Combinación de funciones. Pero aparte de conseguir la información, otro punto importante es la representación de la misma, para ello existen otras funciones contenidas en la barra de herramientas SimTools que se listaron en el capítulo anterior y aquellas que son exclusivas de la pantalla (de las cuales no se ha hablado hasta ahora): el zoom y el scroll. Al pulsar el botón izquierdo del ratón aparece una línea amarilla vertical en la pantalla, y conforme se desplaza el ratón hacia 100 Pruebas del Sistema la derecha otra línea horizontal, el final de esta es el que delimita el área de zoom que termina en el momento en que se levanta el botón del ratón, con esto podemos adaptar la visualización a una zona concreta. Si el movimiento del ratón es hacia la izquierda en lugar de hacia la derecha se hace un reseteo de la visualización volviendo a la división cero como primera división en pantalla; este comando es útil para volver al punto de partida de cada simulación. El scroll es el movimiento a través de la pantalla que se realiza al pulsar el botón derecho del ratón, si se mantiene pulsado mientras se mueve el ratón la ventana se desplazará tal y como hemos indicado, si el movimiento ha sido hacia la izquierda pasaremos a ciclos más altos, y si ha sido hacia la derecha a ciclos inferiores, sabiendo que el primero siempre es el ciclo 0. Figura 44: Representación del zoom. Tal y como se ha comentado la representación es tan importante como la información, y para que se puedan explotar las dos al máximo existe el modo colapsado, donde se pueden representar los buses que contengan tantas señales que no quepan en la pantalla y así poder observar su valor. Este modo que se activa a través del menú Tools o de la barra de herramientas ColBar soporta todas las funciones de simulación que se han probado: Step, Reset, Resume, Snap, SnapShot y Step Mode, zoom y scroll. 101 Pruebas del Sistema Figura 45: Simulación en modo colapsado. Al no aparecer los registros por separado no se puede apreciar su evolución visualmente, para ayudar a esto se representa el valor que va adquiriendo cada uno de los buses en el centro de la pantalla conforme estos vayan cambiando de valor. Pero esto no proporciona valores pasados, para ello puede volver a expandirse los buses y ver el valor de cada registro o activar el botón Inspect de la barra de herramientas, con esta opción se visualiza el valor de cada bus allí donde pulsemos con el botón izquierdo del ratón, apareciendo el ciclo al que pertenece ese valor en la ventana Time. Si en el ciclo que se ha elegido no se hizo un muestreo del dispositivo se proporciona el ciclo más cercano, el cual es el que aparece en la barra de herramientas. Gracias a esto el usuario puede conocer el valor de cada uno de los buses sin necesidad de expandir los buses, de una forma mucho más directa y clara ya que este valor aparece directamente en pantalla. El usuario puede cambiar siempre que quiera el modo de visualización ya que no hay ninguna dificultad en pasar de uno al otro, y así podrá elegir en cada momento cuál es el que conviene al estado o tipo de simulación que realiza. 102