Departamento de Tecnología Electrónica ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA 1º Ingeniería Técnica en Informática de Sistemas ESTRUCTURA DE COMPUTADORES Enunciados de Prácticas de Laboratorio Manejo del analizador lógico: Análisis del contenido de la ROM de un cartucho de la videoconsola Atari 2600 1. OBJETIVOS Esta práctica tiene tres objetivos principales: 1. Introducir el manejo del analizador lógico. Este es un nuevo instrumento de laboratorio1, que facilita enormemente el testado de circuitos y sistemas digitales que poseen un alto número de entradas y salidas. En nuestro laboratorio disponemos de analizadores lógicos sobre PC, esto es, una tarjeta de adquisición y un programa sobre PC que funcionan como tal analizador. Actualmente hay dos modelos diferentes, el LA-2124 (está en el laboratorio G1.30) y el LA-2132 (está en el laboratorio G1.32). 2. Realizar el testado a nivel lógico de un sistema digital sencillo, en concreto, de la ROM de un juego para una consola Atari 2600. 3. Usar un emulador de Atari 2600 que permite jugar en el PC sin necesidad del Atari 2600. El propio acceso al juego es una comprobación experimental de que la práctica se ha desarrollado con éxito. En esta práctica se va a manejar una placa que contiene los circuitos que van a ser testados, entre ellos la ROM de Atari. Para hacer que esta placa funcione, se necesitará el instrumental habitual: fuente de tensión para suministrar la alimentación a los circuitos y generador de señales para generar la señal de reloj del circuito. Por otra parte, para observar las señales digitales del circuito, se usará el analizador lógico que, obviamente, ha de ser conectado a la placa. La conexión se hace a través de unas sondas o cables. El analizador lógico opera en dos fases: primero, adquiere el valor lógico de las señales y los almacena en una memoria; después, representa estos valores en un monitor mediante una herramienta que facilita los recursos de visualización y medida. Por último, para poder jugar, utilizará un programa de emulación que, a partir de los datos adquiridos, los ejecuta en el PC como si se tratase de una consola Atari 2600. 1. Ver la Sección 7 del manual “Introducción al Laboratorio de Electrónica Digital” (C. Baena, J. I. Escudero, Mª P. Parra y M. Valencia), publicado para ‘Fundamentos de Computadores’ (I I e ITIS) y ‘Estructura y Tecnología de Computadores’ (ITIG), Dpto. de Tecnología Electrónica. Pág. 2 2. ESTUDIO EXPERIMENTAL Instrumental y componentes: Analizador lógico, generador de ondas, fuente de alimentación, placa con los contadores y tarjeta de cartucho de Atari 2600. Las ROMs de Atari son de 4KB, esto es, 212·8 bits. Para comprobar el funcionamiento de la ROM en el laboratorio se realizará una lectura de sus 4Kposiciones de memoria. Esto se consigue generando todas las direcciones de memoria, desde 0 hasta 4095 ($000 a $FFF en hexadecimal). El circuito de la placa utiliza tres contadores comerciales conectados en cascada para generar las entradas de dirección de la ROM. Cada uno de estos contadores es de 4 bits (módulo 16) y se han conectado utilizando sus salidas de fin de ciclo o carrys (FC0, FC1 y FC2) para obtener un contador de 12 bits (módulo 4096). De forma simplificada el circuito se muestra en la Figura 1 con un único contador equivalente, con su entrada de reloj y sus salidas de cuenta conectadas a las lineas de dirección de la ROM. CONT mod.4096 Ck 12 A11-0 ROM 4Kx8 8 D7-0 Figura 1 Circuito simplificado para la lectura de la ROM 2.1 DESCRIPCIÓN DE LA PLACA La placa disponible en el laboratorio tiene la estructura mostrada en la Figura 2. Se observa que externamente consta de: • Un conector donde se conecta la tarjeta con la ROM donde está el juego de Atari. La ROM está configurada de forma que siempre está activa en el modo de lectura de manera que en las salidas (señales de D7 hasta D0) aparece el contenido de la palabra direccionada. Pág. 3 74191 CLK A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 FC0 74191 CONECTOR DE LA ROM D0 D1 D2 D3 D4 D5 D6 D7 VCC FC1 GND 74191 FC2 Figura 2 Circuito implementado en la placa • Tres contadores de 4 bits (C.I. 74191) que están conectados en cascada formando un contador módulo 4096, cuyas 12 salidas proporcionan las entradas de la ROM. Con ellas se barre todo el rango de direcciones de la ROM. La ROM tiene escritas las instrucciones y datos del programa del correspondiente juego de Atari 2600. • Un conjunto de puntos de conexión para la alimentación, la señal de reloj, las de fin de ciclo (FC2, FC1 y FC0) y las entradas y salidas de la ROM. Con ellos se pueden conectar con facilidad las sondas del analizador lógico a las señales de interés. 2.2 DESARROLLO EXPERIMENTAL DE LA PRÁCTICA El objetivo es realizar el volcado de la ROM completa, visualizando en el analizador tanto las señales de fin de cuenta de los contadores como la salida de la ROM. Para conseguir este fin se procederá de la siguiente forma: En primer lugar se extraerá la ROM del cartucho y se insertará en el zócalo de la placa. ES MUY IMPORTANTE NO INSERTARLA AL REVÉS: La cara con el chip de la ROM debe estar orientada hacia los pines de datos D0-D7. A continuación se realizarán las conexiones conectando los terminales del circuito bajo test a las sondas del sistema de adquisición de datos del analizador que, por otro lado, irá conectado al ordenador. El conexionado debe realizarse antes de alimentar la placa con la fuente de continua. Se dispone de dos tipos de analizadores: Pág. 4 • LA-2124, que se conecta al PC a través del puerto paralelo y que requiere una fuente de alimentación externa. El orden de las conexiones con la placa será de de la Tabla I: a cada terminal de la sonda se asocia el color de su cable (NE es negro; GR, gris; etc.) y la correspondiente señal de la placa según la Figura 2. Terminal de la sonda Color del cable Terminal de la placa 0 1 2 3 4 5 6 7 8 9 10 CLK GND NE GR AM VE MA RO NA BL VI AZ NE NA NE D0 D1 D2 D3 D4 D5 D6 D7 FC0 FC1 FC2 CLK GND Terminal de la sonda Color del cable Terminal de la placa 11 12 13 14 15 16 17 18 19 20 21 22 GR AM VE MA RO VI NA RO MA VE AM GR A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 Tabla I Conexiones con el sistema de adquisición LA-2124 • LA-2132, que se conecta al PC a través del puerto USB y no requiere fuente de alimentación adicional. El orden de las conexiones se muestra en la Tabla II . Terminal de la sonda 0 1 2 3 4 5 6 7 Color del cable MARONAAMVEAZVI GR Terminal de la placa D0 D1 D2 D3 D4 D5D6 D7 Terminal de la sonda 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 GND 31 Color del cable MARONAAMVEAZVI GRMARO NA AM VE AZ VI NE GR Terminal de la placa A0 A1 A2 A3 A4 A5A6 A7 A8 A9 A10A11FC0FC1FC2GNDCLK Tabla II Conexiones con el sistema de adquisición LA-2132 La señal de reloj de la placa debe variar entre 0 y 5 voltios y tener una frecuencia aproximada de 100 Khz. Tras el conexionado se comprueba la tensión de alimentación (5V), se ajusta el limitador de intensidad y, después, se conecta la alimentación a la placa. Con lo anterior el circuito ya está leyendo cíclicamente el bloque de 4K de la ROM. A continuación tenemos que ejecutar el software del analizador. El procedimiento a seguir depende del modelo del mismo (LA-2124 en el aula G1.30 y LA-2132 en el aula G1.32). 2.2.1 Ejecución y manejo del software del LA-2124 Hay que tener en cuenta que antes de la ejecución debemos conectar el analizador a su fuente de alimentación y al puerto paralelo del PC. Tras esto arrancamos el Windows 98 y Pág. 5 pulsamos sobre el icono LA-2132. A grandes rasgos, la ventana de aplicación presenta un marco superior que contiene los distintos menús (File, View, Serial,...), una fila de comandos u opciones que se pueden ejecutar (Salvar, Zoom, ....) y el resto de la pantalla que está dividida en tres bloques: * La esquina superior izquierda donde se encuentran los controles de los 5 cursores/ marcadores que tiene el sistema. * La ventana superior derecha donde aparece la evolución de los datos adquiridos en los distintos canales de adquisición de datos en formato lista. * La ventana inferior que está dedicada a presentar los datos adquiridos en los distintos canales de adquisición de datos como formas de ondas. Debemos visualizar las señales de la placa con el analizador lógico. Como paso previo, estableceremos las condiciones de trabajo para la adquisición y representación de sus valores: Para ello tendremos que: - Establecer que la adquisición de datos vaya sincronizada con el flanco de bajada del reloj externo (el del sistema). (Menú Clock) - Establecer la agrupación de canales. Se crearán tres grupos. El primero, llamado 'contenido', estará constituido por los 8 bits correspondientes a la salida de la ROM. El segundo, llamado ‘dirección’ estará constituido por los 12 bits correspondientes a las entradas de dirección de la ROM. El tercero, llamado 'finCuenta' contendrá las señales de fin de cuenta de cada uno de los tres contadores. (Menú State -> Group Define) Asimismo, se requiere que la representación de los datos se realice en hexadecimal para los dos primeros grupos y en binario para el tercero (úsese statelist setup). (Menú State -> statelist setup) - Establecer la condición de disparo del analizador lógico (momento a partir del cual el analizador comenzará su adquisición de datos). En nuestro caso queremos que el disparo ocurra justo despues de que se activen todas las señales de fin de cuenta (es Pág. 6 decir justo despues de que todas valgan 1). Por ello debemos marcar lo opción ‘Trigger false’. (Menú Trigger-Trigger word) En general, antes de proceder a la adquisición de los datos especificaremos, por un lado, que la memoria donde se irán guardando estos datos adquiridos sea de 128K (Menú Clock). Y por otro lado, que el modo de adquisición sea único (Menú Trigger - Mode - Single). Una vez modificados todos estos menús se puede pasar a la adquisición de los datos. Para ello pulse la tecla (Go) y comenzará la adquisición al ritmo marcado por el reloj. Tras finalizar la adquisición aparecerán actualizadas tanto el listado de las líneas como las distintas formas de ondas en la pantalla. Para guardar los datos leídos de la ROM en un fichero operaremos como sigue: - Situamos el cursor A sobre la misma muestra que el cursor de disparo (por defecto la muestra número 10). - El cursor B se sitúa en la posición 4105(10. De esta forma, el cursor B está 4095(10 muestras2 detrás del cursor A, ya que éste está sobre la muestra 10. - Seleccionamos en el menú ‘File-Export’. - Seleccionamos el grupo 'contenido', modo binario, inicio en cursor A y fin en cursor B. - Tras pulsar ‘ok’ seleccionamos un directorio (por ejemplo ‘c:\roms’) y elegimos un nombre de archivo. Conviene que el nombre tenga menos de 8 caracteres para acceder a él directamente desde la línea de comandos. Para comprobar el programa en un emulador de Atari 2600 debemos convertir el archivo a binario. Para ello desde la línea de comandos del PC ejecutamos: cd directorio_con_el_fichero_salvado csv2bin archivo_original.csv fichero_salida A continuación se usará el emulador Stella (sección 2.3). 2. Las 4Kdirecciones (4096(10 ) abarcan desde la posición 0 hasta la 4095(10. Pág. 7 2.2.2 Manejo del software del LA-2132 Hay que tener en cuenta que antes de la ejecución debemos conectar el analizador al puerto USB del PC. El programa del LA2132, disponible en Windows XP, está preparado también para la versión LA-2164, por lo que se ejecuta pulsando sobre el icono LA-2164 diponible en el escritorio. A grandes rasgos, la ventana de aplicación presenta un marco superior que contiene los distintos menús (File, View, Timing,...), una fila de comandos u opciones que se pueden ejecutar (Go, Stop, ....) y una ventana dividida en dos partes: * La parte superior contiene los controles de los cursores/marcadores eel sistema, los controles de zoom y una barra para desplazarnos a lo largo de las capturas. * La parte inferior está dedicada a presentar los datos capturados en los distintos canales de adquisición. Antes de adquirir y visualizar las señales de entrada y salida de la ROM debemos establecer las condiciones de trabajo. Para ello pulsamos con el botón derecho sobre la ventana inferior y, en la ventana recién aparecida, seleccionamos las siguientes opciones: - En la entrada ‘Trig Word’ (en la que aparecen los canales en el orden 31, 30, 29, .., 0), escribimos ‘1’ en las posiciones correspondientes a los canales 22, 21 y 20, es decir, los canales correspondientes a las señales de fin de cuenta de los contadores. El analizador no comenzará a capturar los datos hasta que el valor de los contadores coincida con esta entrada (palabra de disparo), es decir, hasta que la salida de los contadores no sea $FFF. - Para establecer que la adquisición de datos vaya sincronizada con el flanco de bajada del reloj externo (el de nuestra placa), en la entrada ‘Source’ seleccionamos ‘External falling’. - Para que el tamaño de la captura sea de 8K muestras seleccionamos ‘8K’ en la entrada ‘Memory’. - Para que realice una sola captura seleccionamos ‘Single’ en la entrada ‘Acquire’. Tras cerrar la ventana emergente establecemos la agrupación de canales en el menú ‘View’->’Group edit’. Para cada grupo de canales hay que establecer su nombre (entrada Pág. 8 ‘Name’), base en la que se visualizará el valor de sus canales (entrada ‘Base’), número de canales que lo forman (entrada ‘Number’) y cuáles son dichos canales. Para cambiar de grupo se pulsa sobre las flechas de la parte superior de la ventana. Se crearán tres grupos. El primero, llamado 'contenido', estará constituido por los 8 bits correspondientes a la salida de la ROM y se mostrará en hexadecimal. El segundo, llamado ‘dirección’ estará constituido por los 12 bits correspondientes a las entradas de dirección de la ROM y se mostrará también en hexadecimal. El tercero, llamado 'Fin Cuenta' contendrá las señales de fin de cuenta de cada uno de los tres contadores y se mostrará en binario. Una vez modificados todos estos menús se puede pasar a la adquisición de los datos. Para ello pulse la tecla (Go) y comenzará la adquisición al ritmo marcado por el reloj. Tras finalizar la adquisición aparecerán actualizadas tanto el listado de las líneas como las distintas formas de ondas en la pantalla. Para guardar los datos leidos de la ROM en un fichero operaremos como sigue: - Seleccionamos en el menú ‘File-Save data-Save data as’. - Elegimos un directorio (por ejemplo ‘c:\roms’) y elegimos un nombre de archivo. Conviene que el nombre tenga menos de 8 caracteres para acceder a él directamente desde la línea de comandos. Para comprobar el programa en un emulador de Atari 2600 debemos extraer del archivo recien guardado los datos correspondientes al contenido de la ROM. Para ello desde la línea de comandos del PC ejecutamos: cd directorio_con_el_fichero_salvado dso2bin archivo_original.dso fichero_salida 2.3 COMPROBACIÓN DEL VOLCADO Finalmente comprobaremos el volcado con el emulador Stella. Para ello: a) Se pulsa sobre su icono, que está en el escritorio. b) Se hace doble click sobre el fichero creado y, si todo ha ido bien, se juega un ratillo. Las teclas básicas son: F2 (start, comienzo de partida), espacio (disparo), y los cursores. Pág. 9 2.4 CUESTIONARIO 1. Compruebe que las señales de fin de cuenta de los tres contadores se activan adecuadamente. Explique cómo hace esta comprobación. 2. Mida el retraso de la ROM. Para ello recuerde que ha de trabajar con el disparo interno del analizador. 3. ¿Qué tamaño tiene el fichero binario obtenido tras ejecutar el programa dso2bin? Justifique por qué ése debe ser el tamaño esperado. Pág. 10