Documentación

Adaptación de Tkgate a Computadores (GNU).
ÍNDICE
1 OBJECTIVOS DEL PROYECTO.............................................2
2 ESPECIFICACIONES, DISEÑO Y DESARROLLO..............3
2.1 COMPARADOR...........................................................3
2.2 CODIFICADOR...........................................................11
2.3 CONTADOR................................................................16
2.4 MULTI­CONTADOR..................................................20
2.5 ASCENSOR.................................................................25
2.6 CALEFACCIÓN..........................................................29
2.7 PUERTA DE PARKING.............................................33
2.8 PASO A NIVEL DE UNA VIA..................................37
2.9 PASO A NIVEL DE DOS VIAS................................40
2.10 UNIDAD DE CONTROL.........................................43
3 REFERÉNCIAS......................................................................53
4 MANUAL TKGATE...............................................................54
5 INSTALAR TKGATE SOBRE CYGWIN..............................113
6 INSTALAR TKGATE SOBRE DEBIAN O KNOPPIX.........122
7 INSTALAR LOS NUEVOS MÓDULOS...............................125
8 COMO CREAR NUEVAS PUERTAS...................................131
1
índice
Adaptación de Tkgate a Computadores (GNU).
1 OBJECTIVOS DEL PROYECTO
El objetivo de este proyecto es adaptar las librerías que se utilizan en la assignatura de Computadores de la Ingeniería Informática de Sistemas y de Gestión a un programa de libre distribución como el TkGate. El problema con otros programas de simulación de circuitos, es la licencia. La mayoría de estos programas necesitan una licencia para ser usados, la Universidad cuenta con las licencias pero, si alguno de los alumnos de la asignatura quiere hacer practicas en casa o instalar estos programas en su portátil no es posible instalar el programa entero, solo una demo. Para ello, se intentará crear el mismo tipo de puertas lógicas existentes en el programa usado en la actualidad, implementadas en un proyecto anterior. Debido a que el TkGate no cuenta con ninguna puerta lógica que tenga animación, se deberá crear algun tipo de animaciones, ya que varios de los circuitos como el paso a nivel son requeridas las animaciones.
También se especificarán un tipo de ficheros de texto en los que se introducirán las transiciones y las salidas de una unidad de control, para facilitar la realización de prácticas sobre estos circuitos, como la maquina sencilla.
También se implementarán varios cicuitos básicos como el comparador, el codificador, el multi­contador, el contador.
2
índice
Adaptación de Tkgate a Computadores (GNU).
2 ESPECIFICACIONES, DISEÑO Y DESARROLLO
2.1 COMPARADOR
Descripción:
Un comparador es un circuito combinacional que se utiliza para comparar dos operandos (A y B) buscando una relacione entre ellos, como A<B, A=B, A B, etc. Una comparación entre dos operandos se requiere normalmente como parte de instrucciones de salto condicional o para determinar condiciones de salto en un microprograma o simplemente para operaciones aritméticas.
Entradas:
A y B: Las entradas A y B son señales que van de 1 bit hasta 32 bits. Estas entradas deben ser números enteros, independientemente de la codificación.
PS:
La entrada PS es una señal de un bit. Esta entrada indica si el circuito esta habilitado o no.
Salidas:
A<B, A=B, A>B: Las salidas A<B, A=B, A>B, son de solo un bit. Solo se activan si la condición entre los dos números se cumple, en caso contrario la salida será un cero lógico.
Definición de retrasos y su área:
Esta puerta tiene definidos seis tipos de retrasos, dependiendo de las entradas que cambian, y a las salidas que afectan:
3
índice
Adaptación de Tkgate a Computadores (GNU).
Para la tecnología “default” tenemos:
Desde
Hasta
Periodos
A y B
A>B
Número de bits de las entradas.
A=B
Número de bits de las entradas.
A<B
Número de bits de las entradas.
A>B
3
A=B
3
A<B
3
PS
El Área de la puerta es 3.
Para la tecnología “unit” tanto los retrasos como el área de la puerta son uno.
Errores de diseño:
La entrada PS es una entrada booleana, es decir, que solo necesitamos un bit para representarla. Si PS es 0 el circuito esta inhabilitado y si es 1 el circuito esta habilitado.
Las salidas son solo de un bit, por tanto, si intentamos modificar alguna de las salidas para poner otro tipo de circuito a la salida, obtendremos este error.
4
índice
Adaptación de Tkgate a Computadores (GNU).
Para comparar dos enteros es necesario que estos tengan el mismo ancho de bus, por eso no podremos comparar un número de 8 bits con otro de 32.
Las entradas tienen una representación interna de 32 bits por tanto, solo podremos comparar enteros de 1 a 32 bits.
Pruebas realizadas:
Primera prueba:
Se monta el siguiente circuito que realiza la comparación de dos enteros mediante dos interruptores dip:
Iniciamos la simulación, modificamos los valores de los interruptores dip y activamos la señal PS:
5
índice
Adaptación de Tkgate a Computadores (GNU).
Modificamos el valor del interruptor dip de la entrada A, haciendo que el valor de A sea mayor que el de B:
Modificamos los valores de los interruptores dip, ahora la entrada B es mayor que la entrada A:
Deshabilitando el circuito, es decir, poniendo a cero la entrada PS tendremos el siguiente resultado:
6
índice
Adaptación de Tkgate a Computadores (GNU).
Si añadimos al circuito puntas de prueba:
podremos observar la evolución de las señales en el tiempo:
7
índice
Adaptación de Tkgate a Computadores (GNU).
Segunda prueba:
El siguiente circuito es una unidad aritmético­lógica (ALU). Con este ejemplo comprobaremos el funcionamiento del comparador cuando tiene conectados como entradas y salidas otros tipos de circuitos.
La ALU tiene cuatro operaciones:
Código de operación Operación
0
A
1

A
2
A+B
3
A XOR B
Seleccionando el módulo y con la combinación de teclas “Shift+<” podremos ver el interior del módulo:
8
índice
Adaptación de Tkgate a Computadores (GNU).
Iniciamos la simulación dejando pasar el valor que hay en la entrada A:
Modificamos el valor del interruptor de la entrada A y hacemos que la ALU devuelva el valor negado:
Modificamos los valores de los interruptores dip de las entradas de datos y modificamos también el código de operación, indicando que queremos la suma de los dos operandos:
9
índice
Adaptación de Tkgate a Computadores (GNU).
Por último, seleccionamos la salida XOR, modificando también los valores de las entradas para que tengan el mismo valor:
10
índice
Adaptación de Tkgate a Computadores (GNU).
2.2 CODIFICADOR
Descripción:
Un codificador es un circuito combinacional con 2 n entradas y n salidas que se utiliza para presentar en la salida el código binario correspondiente a la entrada activada. Existen dos tipos de codificadores. Codificadores sin prioridad y codificadores con prioridad. Los primeros solo admiten una entrada activa, codificando en la salida el valor binario de la misma y cero cuando no existe ninguna activa. En los segundos puede haber más de una entrada activada, existiendo prioridad en aquella cuyo valor decimal es más alto. En este caso el codificador es con prioridad, la entrada de menor peso es la que hay más hacia la derecha y el número de entradas esta fijado a cuatro.
Entradas:
A,B,C,D: Las entradas A,B,C, y D son señales de un bit.
PE:
La entrada PE es una señal de un bit. Esta entrada indica si el circuito esta habilitado o no.
Salidas:
RES: La salida RES es de dos bits. Representará el código binario correspondiente a la entrada activada de mayor peso.
AE:
La salida AE es una señal de un bit. Esta entrada indica si en el circuito hay alguna entrada activa (A,B,C,D).
Definición de retrasos y su área:
Esta puerta tiene definidos cuatro tipos de retrasos fijos:
11
índice
Adaptación de Tkgate a Computadores (GNU).
Para la tecnología “default” tenemos:
Desde
Hasta
Periodos
A,B,C,D
RES
8
AE
4
RES
2
AE
1
PE
El Área de la puerta es 1.
Para la tecnología “unit” tanto los retrasos como el área de la puerta son uno.
Errores de diseño:
Las entradas A, B, C, y D son de tipo booleano, es decir, solo pueden tener los valores 0 o 1. Si tienen un 0 indicará que la entrada no está activa y si tienen un 1 indicará que esta activa.
Para representar si hay alguna entrada activa solo necesitamos un bit.
12
índice
Adaptación de Tkgate a Computadores (GNU).
La entrada PE es una entrada booleana, es decir, que solo necesitamos un bit para representarla. Si PS es 0 el circuito esta inhabilitado y si es 1 el circuito esta habilitado.
La salida representa el código binario de la entrada de mayor peso. Para representar este número la salida debe ser de tantos bits como indica el exponente del logaritmo en base dos del numero de entradas.
Pruebas realizadas:
Se monta el siguiente circuito que realiza la codificación de las entradas mediante cuatro conmutadores:
Iniciamos el circuito y lo habilitamos:
13
índice
Adaptación de Tkgate a Computadores (GNU).
Activamos la primera entrada, y se activa la señal AE:
Activamos la segunda entrada, y se modifica el valor de la salida:
14
índice
Adaptación de Tkgate a Computadores (GNU).
La entrada de la izquierda es más prioritaria que las demás que estan activas, su valor es codificado:
Deshabilitamos el circuito, y las señales de salida pasan a tener valor cero:
15
índice
Adaptación de Tkgate a Computadores (GNU).
2.3 CONTADOR
Descripción:
Un contador es un circuito secuencial capaz de realizar el cómputo de los impulsos que recibe en la entrada de reloj. Son circuitos lógicos secuenciales, normalmente construidos a partir de biestables D y puertas lógicas. Se pueden utilizar para contar pulsos de reloj, para almacenar datos, como divisores de frecuencia, direccionamiento secuencial y en algunos circuitos aritméticos. Entradas:
R: La entrada R es una señal de un bit. Cuando esta entrada este a nivel alto se reinicializa el contador, no hace nada en caso contrario.
PE:
La entrada PE es una señal de un bit. Esta entrada indica si el circuito esta habilitado o no.
CK: La entrada CK es una señal de un bit. Esta es la entrada de reloj, podremos conectar tanto relojes como otro tipo de circuitos como conmutadores.
Salidas:
OUT: La salida OUT, puede ser de 1 a 32 bits. Representará el valor interno del contador que se incrementará a cada flanco ascendente de reloj.
Definición de retrasos y su área:
16
índice
Adaptación de Tkgate a Computadores (GNU).
Esta puerta tiene definidos tres tipos de retrasos, dependiendo de las entradas que cambian, y a las salidas que afectan:
Para la tecnología “default” tenemos:
Desde
Hasta
Periodos
R
OUT
Número de bits de la salida.
PE
OUT
Número de bits de la salida.
CK
OUT
Número de bits de la salida.
El Área de la puerta es 16 por el número de bits de la salida.
Para la tecnología “unit” tanto los retrasos como el área de la puerta son uno.
Errores de diseño:
Las entradas PE y R son entradas booleanas, es decir, que solo necesitamos un bit para representarlas. La entrada CK es una entrada de reloj que siempre debe tener un bit.
El valor del contador tiene una representación interna de 32 bits, por tanto solo podremos hacer que la salida tenga como mucho 32 bits.
17
índice
Adaptación de Tkgate a Computadores (GNU).
Pruebas realizadas:
Montamos el siguiente circuito que implementa un cronómetro digital.
Mediante contadores de módulo 100 y contadores de módulo 60 anidados creamos el siguiente circuito:
18
índice
Adaptación de Tkgate a Computadores (GNU).
Iniciamos el simulador activando la señal de “start”, el circuito empieza a contar.
Activamos la señal de “reset” para reinicializar el circuito:
19
índice
Adaptación de Tkgate a Computadores (GNU).
2.4 MULTI­CONTADOR
Descripción:
Un multi­contador es un circuito secuencial. Es una extensión del contador ya que además de poder contar los impulsos, puede decrementar su valor interno a cada ciclo de reloj o cargar el valor de la entrada. Son circuitos lógicos secuenciales, normalmente construidos a partir de biestables D y puertas lógicas. Se suelen utilizar como contadores de programa al implementar las unidades de control.
Entradas:
R: La entrada R es una señal de un bit. Cuando esta entrada este a nivel alto se reinicializa el contador, no hace nada en caso contrario.
OP:
La entrada OP es una señal de dos bits. Esta entrada indica al multi­contador el código de operación. Las diferentes posibilidades son:
0 ­> El circuito no hace nada.
1 ­> Se incrementa el valor interno del multi­contador.
2 ­> Se decrementa el valor interno del multi­contador.
3 ­> Se carga el valor de la entrada.
CK: La entrada CK es una señal de un bit. Esta entrada indica si el circuito esta habilitado o no.
IN: La entrada IN, puede ser de 1 a 32 bits. Mediante esta entrada estableceremos el valor interno del multi­contador, desde donde empezar a contar.
Salidas:
OUT: Las salidas OUT, puede ser de 1 a 32 bits. Representará el valor interno del contador.
20
índice
Adaptación de Tkgate a Computadores (GNU).
Definición de retrasos y su área:
Esta puerta tiene definidos cuatro tipos de retrasos, dependiendo de las entradas que cambian, y a las salidas que afectan:
Para la tecnología “default” tenemos:
Desde
Hasta
Periodos
R
OUT
Número de bits de la salida.
PE
OUT
Número de bits de la salida.
CK
OUT
Número de bits de la salida.
IN
OUT
Número de bits de la salida.
El Área de la puerta es 32 por el número de bits de la salida.
Para la tecnología “unit” tanto los retrasos como el área de la puerta son uno.
Errores de diseño:
Las entradas CK y R son entradas booleanas, es decir, que solo necesitamos un bit para representarlas, solo pueden tomar el valor 0 o el 1 lógico.
21
índice
Adaptación de Tkgate a Computadores (GNU).
Como solo tenemos cuatro operaciones, necesitaremos solo 2 bits para representar los cuatro números.
El valor del multi­contador tiene una representación interna de 32 bits, por tanto solo podremos hacer que la entrada y salida tengan como mucho 32 bits.
Pruebas realizadas:
Para probar el funcionamiento del multi­contador, montamos un circuito simple con dos interruptores, dos conmutadores y un display:
22
índice
Adaptación de Tkgate a Computadores (GNU).
Modificamos el valor de la entrada, el código de operación, y generamos un flanco ascendente en la entrada del reloj. Se carga el valor de la entrada y se muestra en el display.
Cambiamos el código de operación para decrementar el valor del multi­contador, y generamos un flanco ascendente:
Cambiamos el código de operación para incrementar el valor del multi­contador, y generamos varios flancos ascendentes, el resultado será el siguiente:
23
índice
Adaptación de Tkgate a Computadores (GNU).
Cambiamos el código de operación a 0 para que el multi­contador no haga nada aunque reciba flancos ascendentes en la entrada de reloj, simplemente se mostrará el valor del contador en la salida:
Activamos la señal de “reset” para reinicializar el contador:
24
índice
Adaptación de Tkgate a Computadores (GNU).
2.5 ASCENSOR
Descripción:
El ascensor puede ser un circuito combinacional o secuencial dependiendo de una variable que podremos modificar en el modo de simulación. El ascensor dispone de un motor que nos permitirá hacerlo subir o bajar. Haciendo clic sobre el ascensor en modo simulación aparecerá un cuadro de dialogo como el siguiente:
En el caso de que queramos un circuito combinacional seleccionaremos los detectores. Si estamos subiendo, cuando la parte de arriba del ascensor pase por uno de los detectores, este se activará, y cuando el final del ascensor pase por el mismo detector, se apagará. Si estamos bajando, se encenderá cuando pase la parte de abajo del ascensor y se encenderá cuando pase la parte de arriba.
Si queremos un circuito secuencial seleccionaremos los indicadores. Los indicadores provocarán un flanco ascendente en la salida, cuando la parte de arriba pase por uno de los indicadores, tanto si estamos subiendo como bajando.
25
índice
Adaptación de Tkgate a Computadores (GNU).
Entradas:
UP: La entrada UP es una señal de un bit. Cuando la señal UP esta a nivel alto y la señal DOWN no esta a nivel alto hace que el ascensor suba.
DOWN: La entrada DOWN es una señal de un bit. Cuando la señal DOWN esta a nivel alto y la señal UP no esta a nivel alto hace que el ascensor suba.
Salidas:
PB, FIRST, SECOND, THIRD, FOURTH: Estas señales son todas de un bit. Nos serviran para controlar la posición del ascensor.
Definición de retrasos y su área:
A diferencia de las otras puertas, el ascensor no tiene definida el área ni los retrasos.
Para poder controlar la velocidad del ascensor para que a los circuitos de control les de tiempo de calcular las nuevas entradas del circuito, utilizaremos la variable “Velocidad”, que tenemos en el cuadro de dialogo que hemos visto antes. Cuanto más grande el número, menor velocidad tendra el ascensor y más tiempo tendremos para analizar las salidas.
Errores de diseño:
Las salidas indican cuando el ascensor pasa por alguna de ellas, por tanto, solo necesitaremos un bit para representarlas.
26
índice
Adaptación de Tkgate a Computadores (GNU).
Las entradas UP y DOWN son entradas booleanas, es decir, que solo necesitamos un bit para representarlas. Pruebas realizadas:
Iniciamos la simulación, se mostrará el ascensor parado:
Activamos la señal UP, y dejamos que el ascensor suba, a su paso va activando las salidas:
Si no paramos el ascensor, cuando llegue al limite superior, parará mostrando el siguiente mensaje de error:
27
índice
Adaptación de Tkgate a Computadores (GNU).
Desactivamos la señal UP, y activamos la señal DOWN. El ascensor empieza a bajar, activando a su paso los detectores:
Si intentamos hacer que el ascensor suba y baje al mismo tiempo, tendremos este error:
28
índice
Adaptación de Tkgate a Computadores (GNU).
2.6 CALEFACCIÓN
Descripción:
Este circuito simula el un recinto en el que se le aplica una fuente de calor. Este circuito depende de tres variables a parte de si la fuente esta activa o no. Estas variables las podremos modificar en el modo de simulación haciendo clic sobre la puerta. Aparecerá un cuadro de dialogo como el siguiente:
La Calefacción se iniciará con la temperatura exterior, cuando la encendamos, ira subiendo de temperatura hasta que llegue al limite. Este limite depende de el aislamiento térmico, por ejemplo si el aislamiento térmico es cero, la temperatura del recinto nunca llegará a la temperatura de la fuente, sin embargo si el aislamiento térmico es del cien por cien el circuito parará cuando la temperatura actual sea igual a la temperatura de la fuente.
Cuando apaguemos la calefacción la temperatura ira disminuyendo hasta llegar a un cierto limite. Este limite depende también del aislamiento térmico. Cuanto mayor aislamiento tengamos menor sera la disipación de calor. En el peor de los casos, en el que el aislamiento sea cero, la temperatura bajará hasta alcanzar la temperatura exterior.
29
índice
Adaptación de Tkgate a Computadores (GNU).
La temperatura de la fuente de calor puede variar entre 60 y 120 grados, si intentamos asignar un valor fuera de este rango obtendremos un mensaje de error como el siguiente:
La temperatura exterior puede variar entre ­60 y 40 grados, si intentamos asignar un valor fuera de este rango obtendremos un mensaje de error como el siguiente:
El porcentaje de aislamiento puede variar entre 0% y 100% , si intentamos asignar un valor fuera de este rango obtendremos un mensaje de error como el siguiente:
Entradas:
IN: 30
La entrada IN es una señal de un bit. Cuando la señal esta a nivel alto se enciende la calefacción y cuando esta a nivel bajo se apaga.
índice
Adaptación de Tkgate a Computadores (GNU).
Salidas:
OUT: Esta señales es de ocho bits. La codificación de los números será complemento a dos (CA2) ya que puede tomar valores entre ­60 y 120.
Definición de retrasos y su área:
A diferencia de las otras puertas, la calefacción no tiene definida el área ni los retrasos.
Para poder controlar la velocidad de la calefacción para que a los circuitos de control les de tiempo de calcular las nuevas entradas del circuito, utilizaremos la variable “Retraso”, que tenemos en el cuadro de dialogo que hemos visto antes. Cuanto más grande el número, menor velocidad tendra el ascensor y más tiempo tendremos para analizar las salidas.
Errores de diseño:
Para controlar si la fuente de calor esta encendida o apagada solamente nos hace falta un bit.
Debido a los rangos que hemos elegido para las temperaturas, la salida solo podrá tener ocho bits.
31
índice
Adaptación de Tkgate a Computadores (GNU).
Pruebas realizadas:
Por ahora no hay ningun circuito en el TkGate que pueda representar los números negativos, por tanto, usaremos un led decimal normal. En la calefacción los valores por defecto de las temperaturas son: Temperatura fuente 120º
Temperatura exterior ­10º
Aislamiento 50%
Iniciamos la simulación con la calefacción parada:
Al encender la calefacción, la temperatura del recinto ira subiendo progresivamente, como refleja el termómetro.
Cuando apaguemos la calefacción, la temperatura bajará dependiendo de el aislamiento:
32
índice
Adaptación de Tkgate a Computadores (GNU).
2.7 PUERTA DE PARKING
Descripción:
El circuito simula el comportamiento de una puerta automática por donde entra los coches a un parking. La puerta tiene un motor que nos permite abrir y cerrar la barrera. El sensor de la parte superior de la puerta indica si la puerta esta cerrada del todo o abierta del todo. El sensor del medio indica cuando un coche esta pasando por él. Y el sensor de la parte inferior simula un lector de tarjetas donde cada coche pasa una tarjeta que le valida para entrar en el parking. Hay cuatro diferentes tipos de coches dependiendo de su velocidad, que iran apareciendo aleatoriamente. Podemos hacer que aparezca un tipo determinado de coches mientras simulamos utilizando el cuadro de dialogo siguiente:
Si la barrera se esta cerrando o se esta abriendo los coches no podran pasar. Un coche podrá avanzar cuando la barrera este abierta por completo.
Entradas:
OPEN, CLOSE: Estas entradas deben ser de un bit. Cuando la señal OPEN esta a nivel alto y la señal CLOSE no esta a nivel alto hace que la barrera se abra. Cuando la señal CLOSE esta a nivel alto y la señal OPEN no esta a nivel alto hace que la barrera se cierre.
33
índice
Adaptación de Tkgate a Computadores (GNU).
Salidas:
S, C, P: Esta señales son de un bit. Definición de retrasos y su área:
A diferencia de las otras puertas, la puerta del parking no tiene definida el área ni los retrasos.
Para poder controlar la velocidad de la puerta del parking para que a los circuitos de control les de tiempo de calcular las nuevas entradas del circuito, utilizaremos la variable “Retraso”, que tenemos en el cuadro de dialogo que hemos visto antes. Cuanto más grande el número, menor velocidad tendra el ascensor y más tiempo tendremos para analizar las salidas.
Errores de diseño:
Las entradas OPEN y CLOSE son entradas booleanas, es decir, que solo necesitamos un bit para representarlas. Las salidas indican cuando el coche pasa por alguna de ellas o si la barrera esta abierta o cerrada, por tanto, solo necesitaremos un bit para representarlas.
34
índice
Adaptación de Tkgate a Computadores (GNU).
Pruebas realizadas:
Al iniciar la simulación la barrera estará cerrada, como indica el led superior. El primer coche entrara en la puerta “validándose para entrar en el parking”:
Abrimos la barrera:
Hasta que la barrera no esta completamente abierta el coche no empieza a avanzar. Se enciende el led central indicando que el coche esta pasando:
Si no paramos la barrera, tendremos el siguiente error:
35
índice
Adaptación de Tkgate a Computadores (GNU).
Al cerrar la puerta más de lo debido, tendremos el siguiente error:
Si intentamos abrir y cerrar la barrera al mismo tiempo tendremos el siguiente error:
36
índice
Adaptación de Tkgate a Computadores (GNU).
2.8 PASO A NIVEL DE UNA VIA
Descripción:
Este circuito simula el comportamiento de un tren y dos coches en un paso a nivel. Dispone de un motor que permite cerrar las barreras y dos sensores que indicaran la proximidad de un tren. El tren puede circular solo en una dirección o en las dos, según lo especifiquemos. Para modificar este parámetro deberemos entrar en modo simulación y hacer un clic sobre el circuito, así aparecerá el siguiente cuadro de dialogo:
Entradas:
BAR: Esta entrada debe ser de un bit. Cuando la señal esta a nivel bajo las barreras permanecerán cerradas y cuando este a nivel alto se abrirán.
Salidas:
S1, S2: Esta señales son de un bit. Se activan cuando la cabeza del tren pasa por encima y se desactivan cuando acaba de pasar todo el tren.
37
índice
Adaptación de Tkgate a Computadores (GNU).
Definición de retrasos y su área:
A diferencia de las otras puertas, el paso a nivel de una via no tiene definida el área ni los retrasos.
Para poder controlar la velocidad del tren y de los coches para que a los circuitos de control les de tiempo de calcular las nuevas entradas del circuito, utilizaremos las variables “Tren”, “Coche izquierdo” y “Coche derecho”, que tenemos en el cuadro de dialogo que hemos visto antes. Cuanto más grande el número, menor velocidad.
Errores de diseño:
Tanto las entradas como las salidas del circuito deben tener un bit, ya que para indicar si pasa o no pasa el tren o indicar si abrimos o cerramos las barreras solo es necesario un bit.
Pruebas realizadas:
Para probar el paso a nivel de una via montamos el siguiente circuito:
38
índice
Adaptación de Tkgate a Computadores (GNU).
Iniciamos la simulación, los dos coches entrarán y pararan cerca de las barreras, el tren ira avanzando encendiendo los leds a su paso:
Cuando no existe peligro de choque, podemos abrir las barreras para que pasen los coches:
En el caso de que abramos las barreras en el momento que pasa un tren, chocaran y finalizará la simulación:
39
índice
Adaptación de Tkgate a Computadores (GNU).
2.9 PASO A NIVEL DE DOS VIAS
Descripción:
Este circuito simula el comportamiento de dos trenes y dos coches en un paso a nivel. Dispone de un motor que permite cerrar las barreras y cuatro sensores que indicaran la proximidad de un tren. Los trenes pueden circular solo en una dirección o en las dos, según lo especifiquemos. Para modificar este parámetro deberemos entrar en modo simulación y hacer un clic sobre el circuito, así aparecerá el siguiente cuadro de dialogo:
Entradas:
BAR: Esta entrada debe ser de un bit. Cuando la señal esta a nivel bajo las barreras permanecerán cerradas y cuando este a nivel alto se abrirán.
40
índice
Adaptación de Tkgate a Computadores (GNU).
Salidas:
S1, S2, S3, S4: Esta señales son de un bit. Se activan cuando la cabeza del tren pasa por encima y se desactivan cuando acaba de pasar todo el tren.
Definición de retrasos y su área:
A diferencia de las otras puertas, el paso a nivel de dos vías no tiene definida el área ni los retrasos.
Para poder controlar la velocidad de los trenes y de los coches para que a los circuitos de control les de tiempo de calcular las nuevas entradas del circuito, utilizaremos las variables “Tren superior”, “Tren inferior”, “Coche izquierdo” y “Coche derecho”, que tenemos en el cuadro de dialogo que hemos visto antes. Cuanto más grande el número, menor velocidad.
Errores de diseño:
Tanto las entradas como las salidas del circuito deben tener un bit, ya que para indicar si pasa o no pasa el tren o indicar si abrimos o cerramos las barreras solo es necesario un bit.
41
índice
Adaptación de Tkgate a Computadores (GNU).
Pruebas realizadas:
Para probar el paso a nivel de una via montamos el siguiente circuito:
Iniciamos la simulación, los dos coches entrarán y pararan cerca de las barreras, los trenes iran avanzando encendiendo los leds a su paso:
Cuando no existe peligro de choque, podemos abrir las barreras para que pasen los coches:
En el caso de que abramos las barreras en el momento que pasa uno de los trenes, chocaran y finalizará la simulación:
42
índice
Adaptación de Tkgate a Computadores (GNU).
2.10 UNIDAD DE CONTROL
Descripción:
La unidad de control es un circuito secuencial. Es el cerebro de un circuito. Se encarga de activar o desactivar los diversos componentes del circuito en función de las entradas que tenga y en función también del estado en que se encuentre. Existen dos tipos de unidades de control, las cableadas, usadas generalmente en máquinas sencillas, y las microprogramadas, usadas generalmente en máquinas complejas. A esta unidad de control podemos añadirle entradas y salidas. Podemos tener múltiples entradas y salidas pero no pueden superar los 32 bits en la entrada o en la salida. Para añadir entradas pulse sobre la puerta con el boton derecho del ratón y seleccione la opción “Añadir entrada...” del menú emergente. Para añadir salidas entre en las propiedades de la puerta haciendo doble clic sobre la puerta y seleccione la página “Patilla”, y use el boton “Añadir”.
La unidad de control necesita saber en cada momento, según el estado en el que esta, y las entradas actuales, a que estado debe pasar. Estas transiciones se le asignaran mediante un fichero con el siguiente formato:
Estado_actual
Entrada
Estado_siguiente
Podemos tener lineas en blanco o comentarios, ya que se ignorarán. Podemos usar valores desconocidos en las entradas que denotaremos por el carácter “x”. El número de bits de la entrada de la unidad de control dependerá del tamaño de las entradas en el fichero de transiciones. Si el número de bits de la entrada requerido es, por ejemplo 3, no importa si utilizamos tres entradas de un bit o una entrada de tres bits. No importa el orden de las transiciones, ya que se ordenarán antes de mostrarlas. Si hubiera alguna entrada a la que le faltaran bits, se rellenaran con caracteres “x”. En una misma linea no importa el número de espacios entre el estado actual y la entrada o la entrada y el estado siguiente. Los números del fichero pueden estar en codificación hexadecimal. Si en el fichero hubieran transiciones repetidas, solo será valida la primera transición encontrada, las demás se eliminaran. Si en alguna de las transiciones, en la entrada, hay algun carácter que no es un digito o un carácter hexadecimal, este se sustituirá por un valor desconocido (“x”). Si en alguna de las transiciones, en alguno de los estados, hay algun carácter que no es un digito o un carácter hexadecimal, esta transición se ignorará. La unidad de control no es capaz de rellenar las transiciones incompletas o que se haya olvidado de introducir en el fichero.
43
índice
Adaptación de Tkgate a Computadores (GNU).
Para cargar estos fichero en la unidad de control, seleccione las propiedades de la puerta donde quiera cargar el fichero, y seleccione la página “Entradas”:
Puede buscar el fichero de transiciones con el boton “Visualizar...”.
También necesita saber según el estado en el que esta, cuales son las salidas. Estas salidas y los estados correspondientes se le asignaran mediante un fichero con el siguiente formato:
Estado
Salida
Podemos tener lineas en blanco o comentarios, ya que la unidad de control las ignorará. Podemos usar valores desconocidos en las salidas, pero no en los números de estado, que denotaremos por el carácter “x”. El número de bits de la salida de la unidad de control dependerá del tamaño de las salidas en el fichero de transiciones. Si el número de bits de la salida requerido es, por ejemplo 3, no importa si utilizamos tres salidas de un bit o una salida de tres bits. No importa el orden de los estados y sus salidas, ya que la unidad de control los ordenará antes de mostrarlos. Si hubiera alguna salida a la que le faltaran bits, se rellenarán con caracteres “x” a la izquierda. En una misma linea no importa el número de espacios entre el estado y la salida. Los números del fichero pueden estar en codificación hexadecimal. Si en el fichero hubieran estados repetidos, se interpretarán como un estado nuevo poniendo como salida un valor desconocido. Si en alguna de las salidas, hay algun carácter que no es un digito o un carácter hexadecimal, este se sustituirá por un valor desconocido (“x”). Si faltará alguno de los estados, o en alguna linea hay un estado que tiene 44
índice
Adaptación de Tkgate a Computadores (GNU).
algun carácter que no es un digito o un carácter hexadecimal, añadirá el estado a la lista poniendo como salida el valor desconocido. Para cargar estos fichero en la unidad de control, seleccione las propiedades de la puerta donde quiera cargar el fichero, y seleccione la página “Salidas”:
Puede buscar el fichero de salidas con el boton “Visualizar...”.
Definición de retrasos y su área:
Esta puerta tiene definidos seis tipos de retrasos, dependiendo de las entradas que cambian, y a las salidas que afectan:
Para la tecnología “default” tenemos:
45
Desde
Hasta
Periodos
IN
OUT
Número de bits de OUT + Número de bits de la entrada IN.
R
OUT
Número de bits de OUT+ 1.
índice
Adaptación de Tkgate a Computadores (GNU).
CK
OUT
Número de bits de OUT + 1.
IN
S
Número de bits de IN + 1.
R
S
Número de bits de S + 1.
CK
S
Número de bits de S + 1.
El Área de la puerta es
2 + Número de bits de S + Número de bits de IN + Número de bits de OUT.
Para la tecnología “unit” tanto los retrasos como el área de la puerta son uno.
Errores de diseño:
Dependiendo del número de estados que especifiquemos en el fichero, el numero de bits de la salida de estado es el exponente del logaritmo en base dos del número máximo a representar.
El número de bits de la salida vendrá especificado por el fichero de salidas.
46
índice
Adaptación de Tkgate a Computadores (GNU).
Las entradas CK y R son entradas booleanas, es decir, que solo necesitamos un bit para representarlas. El número de bits de la entrada vendrá especificado por el fichero de transiciones.
Pruebas realizadas:
Primera prueba:
Mediante la unidad de control queremos diseñar un semáforo con el siguiente grafo de estados:
No cam bio
VERD E
No cam bio
AM BAR
RO JO O FF
AM BAR O FF
VERDE O N
C am bio
No c am bio
C am b io
C am bio
RO JO
RO JO O N
AM BAR O FF
VERDE O FF
RO JO O FF
A M BAR O N
VERDE O FF
ERRO R
C am bio
N o cam b io
RO JO O FF
AM BA R ON
VERD E OFF
47
índice
Adaptación de Tkgate a Computadores (GNU).
Codificamos las entradas ,salidas y el estado, y obtenemos la siguiente tabla de transiciones:
ESTADO ENTRADAS
ESTADO
ACTUAL
C
SIGUIENTE
00
0
00
00
1
10
01
0
01
01
1
00
10
0
10
10
1
01
11
0
00
11
1
00
ESTADO SALIDA
ACTUAL
R V A
00
1 0 0
01
0 0 1
10
0 1 0
11
0 0 1
Montaremos el siguiente circuito:
Iniciamos la simulación:
48
índice
Adaptación de Tkgate a Computadores (GNU).
Avanzamos varias transiciones solicitando el cambio de color:
Segunda prueba:
Ampliamos la maquina sencilla para que tenga dos nuevas instrucciones para la implementación de bucles:
Nuevas instrucciones:
INIC n: Inicia un contador con el valor n.
LOOP d: Esta instrucción resta 1 al valor del contador. Si el resultado es diferente de 0, salta a ejecutar la instrucción que se encuentra en la dirección d. Sino la ejecución del programa continua en la siguiente instrucción.
Montaremos el siguiente circuito:
49
índice
Adaptación de Tkgate a Computadores (GNU).
Si seleccionamos el módulo “mem” y pulsamos la combinación de teclas “Shift+<” entraremos en el interior del módulo:
O en el módulo “ps_simp”:
Donde podemos ver el contenido del módulo ALU:
50
índice
Adaptación de Tkgate a Computadores (GNU).
Para volver al módulo principal podemos pulsar “<”.
Para el nuevo conjunto de instrucciones tendremos la siguiente tabla de transiciones:
0 XXX 1
1 0XX 2
1 1XX 3
1 2XX 2
1 302 9
1
310
6
1 3X1 7
1 X0X 0
2 0XX 4
2 2XX 5
3 XXX 0
4 XXX 0
5 XXX 0
6 XXX 0
7 XXX 8
8 XXX 0
9 3X2 A
A XXX B
B X0X 6
51
índice
Adaptación de Tkgate a Computadores (GNU).
B X1X 0
Y la siguiente tabla de salidas:
SPC
OPC
MUX
LIR
LA
LB
ALU
LFZ
L/E
0
0
X
0
1
0
0
X
0
0
1
1
1
4
0
1
0
X
0
0
2
0
X
6
0
0
1
X
0
0
3
0
X
6
0
0
0
2
1
1
4
0
X
6
0
0
0
0
1
1
5
0
X
X
0
0
0
1
1
0
6
1
3
X
0
0
0
X
0
0
7
0
X
3
0
0
1
X
0
0
8
0
X
2
0
0
0
4
1
1
9
0
X
2
0
0
1
X
0
0
A
0
X
2
0
0
0
3
1
1
B
0
X
X
0
0
0
X
0
0
En la memoria cargaremos el siguiente programa:
52
Dirección
Contenido
Descripción
0
D001
Ejecuta la instrucción INIC (M[127]:=1)
1
048A
Suma el valor de las posiciones 9 y 10 (ADD [9],[10])
2
E001
Ejecuta la instrucción LOOP.
3
860C
Ejecuta un CMP de la posición 12 de la memoria.
4
C003
Ejecuta la instrucción BEQ y vuelve a la posición 3.
5
0
...
0
9
1
10
1
...
0
12
0
20
0
40
0
índice
Adaptación de Tkgate a Computadores (GNU).
3 REFERÉNCIAS
•
TKGate User Documention
http://www.tkgate.org/1.8/index.html
•
Tcl/Tk 8.4 Manual
http://www.tcl.tk/man/tcl8.4/
•
Tutorial de Tcl/Tk
http://www.etsimo.uniovi.es/tcl/tutorial/
•
The Tcler's Wiki
http://wiki.tcl.tk/
•
Linux Docs
http://www.die.net/doc/linux/
•
A First Guide to PostScript
http://www.cs.indiana.edu/docproject/programming/postscript/postscript.html
•
PostScript Language Tutorial & Cookbook
http://www­cdf.fnal.gov/offline/PostScript/BLUEBOOK.PDF
53
índice
Adaptación de Tkgate a Computadores (GNU).
4 MANUAL TKGATE
Copyright © 1987­2003 por Jeffery P. Hansen.
Este programa es software libre; puede distribuirlo y/o modificarlo bajo los términos de la G.P.L. (GNU General Public License) como publica la Fundación para el Software Libre (F.S.F.); en cualquier versión 2 de la licencia, o (en su caso) alguna versión posterior.
Este programa es distribuido con el deseo que será útil, pero SIN NINGUNA GARANTIA; sin ni siquiera la aplicada garantía COMERCIAL o LA DISPOSICIÓN PARA UN PROPOSITO PARTICULAR. Mire la G.P.L. para más detalles.
Debe haber recibido una copia de la G.P.L. (General Public License) con este programa; sino, escriba a la Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Tkgate es un editor gráfico y simulador de eventos para circuitos digitales basado en una interfaz Tcl/Tk. Los elementos del circuitos aportados incluyen puertas básicas (Y, O, etc.), puertas de triple estado, sumadores, multiplicadores, registros, memorias y transistores mos. Permite también el diseño jerárquico con soporte para los módulos diseñados por el usuario. El modo de guardar los ficheros esta basado en las listas de conexiones del formato Verilog.
CONTENIDOS:
1 Prefacio e introducción.
1.1 Introducción al TkGate.
1.2 Opciones de la linea de comandos.
1.3 Historia del TkGate.
2 Usando el editor.
2.1 La interfaz del TkGate.
2.2 Cargando y guardando circuitos.
2.3 Opciones del TkGate.
2.4 Herramientas básicas de edición.
2.5 Creación de puertas.
2.5.1 Crear una puerta usando la barra de menús.
2.5.2 Crear una puerta usando los atajos de teclado.
54
índice
Adaptación de Tkgate a Computadores (GNU).
2.5.3 Crear una puerta usando los menús emergentes.
2.6 Conectar las puertas.
2.7 Mover las puertas y los cables.
2.8 Editando las propiedades de las puertas.
2.8.1 Propiedades Generales.
2.8.2 Propiedades de los puertos.
2.8.3 Propiedades detalladas.
2.8.4 Propiedades de los retrasos.
2.9 Editando la propiedades de los cables.
2.10 Usando los módulos.
2.10.1 Editando las implementaciones de los módulos.
2.10.2 Editando las interfaces de los módulos
2.11 Buscando puertas y cables.
2.12 Hiperenlaces.
2.13 Imprimir un esquema.
2.14 Opciones del circuito.
2.15 Menús emergentes.
2.16 Tipos de puertas.
2.17 Resumen del menú.
2.18 Resumen de la barra de herramientas (Modo edición).
3 Usando el Simulador/Analizador.
3.1 Iniciando el simulador.
3.2 Opciones del simulador.
3.3 Observando la salida.
3.4 Controlando la entrada.
3.4.1 Conmutadores e interruptores dip.
3.4.2 Terminales (ttys).
3.5 Establecer puntos de interrupción.
3.6 Inicializar memorias.
3.7 Guiones de simulación.
3.8 Usando el informe de errores.
3.9 Fichero de retrasos de una puerta.
3.10 Análisis del camino critico.
55
índice
Adaptación de Tkgate a Computadores (GNU).
1 Prefacio e introducción.
1.1 Introducción al TkGate.
TkGate es un editor y simulador de circuitos digitales con una interfaz basada en Tcl/Tk. TkGate incluye un extenso número de dispositivos incorporados, incluyendo puertas básicas, memorias, ttys, y módulos para el diseño jerarquico. El simulador puede ser controlado interactivamente o mediante un guión de simulación. Los contenidos de la memorias se pueden cargar desde ficheros, y se incluye un compilador de macrocódigo y microcódigo (gmac) para crear ficheros de memoria TkGate con un alto nivel de descripción. El simulador soporta la simulación continua, simulación paso a paso (por tiempo o por ciclos), y puntos de interrupción. Guarda los ficheros en un formato parecido al Verilog.
Un circuito TkGate esta dividido en uno o más módulos, con uno de los módulos siendo designado como el de más alto nivel o módulo “administrador”. Un módulo esta compuesto por cero o más “puertas” y cables conectados a las puertas. Utilizamos el termino “puerta” para referirnos a algún elemento del circuito. Las puertas especiales “comentario” se usan para poner texto en el circuito.
Crear una puerta en TkGate es simplemente cuestión de hacer clic con el cursor para establecer una posición, y seleccionar el tipo de puerta del menú. Desde que la mayoría de tipos de puerta tienen uno o dos caracteres de atajo, una vez ha aprendido los atajos puede realizar la edición con una mano en el teclado y la otra en el ratón. Mover las puertas es casi tan fácil como crearlas, simplemente seleccione una puerta (o puertas) y arrastrelas hasta la nueva posición, algunos cables conectados a las puertas se moverán y ajustarán para asegurarse que solo contienen elementos horizontales y verticales.
1.2 Opciones de la linea de comandos.
Uso: tkgate [­xqs][­X guión][­l fichero][­L lenguaje]
[­P impresora] [­p fichero] [ficheros ...]
TkGate soporta las siguientes opciones: ­X guión
Inicia automáticamente el simulador y ejecuta el guión de simulación especificado.
­l fichero Lee el fichero especificado como una librería. ­x Inicia automáticamente el simulador.
­q Suprime los mensajes de inicio.
56
índice
Adaptación de Tkgate a Computadores (GNU).
­s Se ejecuta con una conexión síncrona a un servidor X. Esta opción es básicamente para la depuración.
­P impresora Imprime el circuito especificado en una impresora sin iniciar la G.U.I. (Interfaz gráfica de usuario).
­p fichero
Imprime el circuito especificado en un fichero sin iniciar la G.U.I. (Interfaz gráfica de usuario).
­L lenguaje Especifica el lenguaje a utilitzar ("en" para Ingles, "es" para español). El TkGate tiene que haber sido compilado con soporte para múltiples lenguajes para poder usar esta opción.
1.3 Historia del TkGate.
TkGate nace como el proyecto de un estudiante de la Universidad Carnegie Mellon en 1987. En ese tiempo se llamaba simplemente “gate” y se ejecutaba bajo el gestor de ventanas “wm”, un sistema de ventanas desarrollado en la Universidad Carnegie Mellon antes que el X11 fuese el más utilizado. Esta versión fue utilizada por los estudiantes de la asignatura de arquitectura de computadores en la C.M.U. para desarrollar un microprocesador sencillo (traducido “The Bat Computer”). Después de mantenerlo inactivo durante varios años, en 1991 resucito y migro para correr bajo X11 con la API Xlib. Esta versión fue utilizada varias veces por los estudiantes de la asignatura de introducción a la lógica digital, pero después que el autor se graduara y dejara la C.M.U., se volvió a hivernar otra vez. Esta versión en Tcl/Tk empezo en 1998. Aunque hay ciertamente código obsoleto en algunos lugares de la implementación debido a las múltiples reencarnaciones, muchas de las nuevas características se han añadido desde las versiones anteriores de “wm” y X11, y la interfaz se ha hecho de un uso más fácil.
2 Usando el editor.
2.1 La interfaz del TkGate.
Los componentes principales de la ventana de edición del TkGate consisten en una barra de menús y una barra de botones en la parte de arriba, las listas de módulos, conexiones y puertos a la izquierda, una barra de estado en la parte de abajo, y el área de edición en el centro. Las barras de desplazamiento se utilizan para desplazar el circuito, la lista de módulos o la lista de conexiones. La lista de “Módulos” en la parte superior izquierda de la ventana, lista los módulos que forman parte del circuito que esta siendo editado. El módulo “administrador” se indica con un símbolo '+' después de su nombre.
57
índice
Adaptación de Tkgate a Computadores (GNU).
Por debajo de la lista de módulos esta la lista de conexiones del módulo actual. Las conexiones con múltiples bits se denotan con un rango de bits después del nombre. Los nombres de las conexiones pueden estar “ocultos” o “visibles” dependiendo si se visualizan en el circuito. Las conexiones ocultas se denotan en la lista de conexiones con un símbolo '@'. El símbolo 'X' en la ventana de edición es la marca actual. La marca se utiliza para indicar la posición de las nuevas puertas.
Puede acceder a los comandos más utilizados mediante la barra de botones. Está incluye comandos para abrir, guardar e imprimir ficheros de circuito, cambiar la herramienta de edición, abrir y cerrar módulos y controlar el simulador. Desde la barra de botones podemos seleccionar la tecnología por defecto para las nuevas puertas. Mire en “Editando las propiedades de las puertas” para más información sobre las tecnologías de las puertas.
La barra de estado en la parte de abajo indica el fichero que se esta editando, y el módulo actual que se esta visualizando.
Un símbolo '*' después del nombre del fichero indica que el buffer ha sido modificado desde la ultima vez que se salvo el fichero. Por debajo del nombre del fichero y del módulo hay una barra de mensajes donde el TkGate nos da información. Estos mensajes incluyen confirmaciones para circuitos guardados o cargados, o información sobre el cable o la puerta 58
índice
Adaptación de Tkgate a Computadores (GNU).
seleccionados.
En la parte inferior derecha de la interfaz esta el icono de modo. Los posibles iconos de modo son:
Modo Edición
Modo Simulación (simulador parado)
Modo Simulación (simulador activo)
Modo Análisis
Las “burbujas de ayuda” estan disponibles para muchos de los elementos de la interfaz. Para usar las burbujas de ayuda, simplemente mueva el ratón por encima de un elemento de la interfaz. Después de un segundo, se mostrará un mensaje de información hasta que el ratón se vuelva a mover. Por ejemplo, moviendo el cursor por encima de la etiqueta “Conexiones” en la ventana principal producirá una burbuja de ayuda como la mostrada abajo:
Las burbujas de ayuda estan también disponibles en la mayoría de los cuadros de dialogo, pasando el cursor sobre el texto en el cuadro de dialogo para una descripción más detallada.
59
índice
Adaptación de Tkgate a Computadores (GNU).
2.2 Cargando y guardando circuitos.
Abrir y guardar circuitos, como las operaciones de impresión de circuitos se hacen desde el menú “Fichero” en la ventana principal.
Para cargar el fichero en el TkGate, puede especificar un nombre de fichero en la linea de comandos o seleccionar “Abrir...” del menú “Fichero”. También puede utilizar los atajos de teclado Ctrl­X Ctrl­F. Cuando abrimos un nuevo fichero, todos los módulos existentes serán eliminados del buffer, y se cargarán los módulos existentes en el nuevo fichero.
TkGate guardara los ficheros con la extensión “.v” y con un formato parecido al Verilog. La mayor diferencia es que añaden comentarios de información como elementos del circuito y posiciones de cables. Las librerías se cargan usando la opción “Abrir librería...”. Los módulos de la librería se añadirán al circuito actual y se marcarán como módulos de librería. Sin embargo, algunos de los módulos que no estén vacíos y que no pertenezcan a la librería no se sobrecargaran. Además, algunos módulos marcados como módulos de librería no se guardarán cuando guardemos el circuito. Los módulos de librería se denotan en la lista de módulos con paréntesis, y se pueden convertir en módulos de usuario utilizando el comando “Módulo librería ­> Módulo usuario...” en el menú “Módulo”. Para guardar el circuito, selecciona “Salvar” para guardarlo en el fichero actual o “Salvar como...” para especificar un nombre de fichero donde guardarlo.
Todas las operaciones que abran o guarden un fichero utilizan un cuadro de dialogo como el siguiente:
para seleccionar los ficheros. Introduzca el nombre del fichero y pulse el boton de “Abrir” (o “Guardar”), o haga doble clic en el nombre del fichero. Solamente verá los ficheros con el tipo apropiado. Puede cambiar de directorio haciendo doble clic en un directorio para abrirlo, o usando el boton de la esquina superior derecha para subir a un nivel superior.
60
índice
Adaptación de Tkgate a Computadores (GNU).
2.3 Opciones del TkGate.
TkGate tiene varios parámetros configurables por el usuario que pueden ser establecidos seleccionando “Opciones...” del menú “Fichero”. Las opciones estan divididas en cuatro categorías principales. Estos parámetros se guardan en el fichero “.tkgate­preferences” en el directorio base del usuario, que se lee cada vez que se inicia el TkGate. Las opciones generales, las de impresión y las de color se describen abajo. Las opciones de simulación se describen en la sección “Opciones del simulador”.
Las opciones básicas son:
61
●
Nombre de la empresa: Indica el nombre de la organización donde esta la copia del TkGate instalada. Este string se utilizará en todos los informes generados por el TkGate.
●
Desplazamiento suave: Si esta opción esta activa, el desplazamiento en la ventana principal se realizará usando copias de mapas de bits más que refrescos de pantalla, mejorando significativamente la realización del desplazamiento. Si su servidor X tiene problemas con las copias de mapas de bits, puede desactivar esta característica.
●
Actualizar región: Controla el algoritmo de refresco de pantalla. Activando esta opción, los eventos de refresco solo refrescarán la parte de la pantalla que cambia mejor que la pantalla entera. Normalmente esta opción se deja activa, pero en servidores con implementaciones clipping (recorte de pantalla para que sea actualizada) pobres, activar esta característica dará como resultado un refresco de pantalla más lento.
●
Recuadro en desplazamiento de módulos: Esta opción se usa para reducir el tiempo de refresco en servidores muy lentos. Activando esta opción desactivaremos el refresco dinámico de las instancias de los módulos (y los cables conectados a ellas) mientras se índice
Adaptación de Tkgate a Computadores (GNU).
mueven. En lugar de mover solo el contorno de la instancia y mover los cables cuando la instancia este situada.
●
Habilitar globos de ayuda: Activando esta opción se mostrarán ciertos mensajes de ayuda cuando pasemos el ratón por ciertos elementos de la interfaz de usuario.
●
Habilitar depuración: Activa ciertas características útiles para depurar el TkGate.
●
Modo novato: Esta opción provoca que se cargue el circuito tutorial cuando se inicia el TkGate. El tutorial solo aparecerá solo si no se especifica un circuito en la linea de comandos. Deseleccionando esta opción desactivaremos la carga del circuito tutorial.
●
Realizar chequeo de puntos/frecuencia: Esta opción activa el chequeo periódico de ficheros no guardados. El fichero de chequeo tendra el mismo nombre que el fichero que se esta editando pero entre caracteres '#'. Se guardará en el directorio actual. La frecuencia especifica el intervalo de tiempo en segundos entre chequeos.
●
Nivel máximo deshacer: Esta opción especifica el número máximo de operaciones que se pueden deshacer con la característica deshacer/rehacer.
Las opciones de impresión son:
●
62
Comando de impresión: Si seleccionamos la impresión en una impresora, este campo indica el comando utilizado para imprimir el fichero. El comando se abre como una tubería y se escribe código postscript en su entrada estándar. índice
Adaptación de Tkgate a Computadores (GNU).
●
Tamaño del papel: Indica el tamaño del papel del documento. Si su impresora tiene varias bandejas, se selecciona la apropiada. Podemos elegir entre varias medidas de papel de E.U, Europeas y Asiáticas.
●
Orientación: Indica la orientación del diagrama en la página. Si selecciona “Vertical” la imagen se imprimira de modo que el lado largo del papel esta en vertical. Si selecciona “Apaisada” la imagen se imprimirá de modo que el lado corto del papel esta en vertical.
●
Imprimir a doble cara: Indica que las imágenes se imprimiran en las dos caras del papel. Esta opción solamente es valida en impresoras con capacidad para imprimir a doble cara.
●
Escalar los módulos hasta completar la página: Los módulos que no puedan ajustarse a una página, serán reducidos para que puedan ajustarse.
●
Dividir módulos grandes en varias páginas: Los módulos que no se ajusten en una página, se dividirán en múltiples páginas. En la esquina inferior derecha de la página se imprimira una clave indicando que porción de página representa.
●
Incluye índice: Imprime una página donde se listan todos los módulos ordenados por orden alfabético y las páginas donde estan.
●
Incluye gráfico de jerarquia: Imprime un gráfico de jerarquia, tomando como raíz el módulo de más alto nivel, mostrando las relaciones entre módulos padre e hijos.
●
Imprimir cuatro módulos pequeños por página: Se imprimen en la misma página los módulos que puedan ser ajustados en un cuadrante.
Las opciones de color son:
63
índice
Adaptación de Tkgate a Computadores (GNU).
●
Instancias: Establece el color usado para las puertas primitivas y sus etiquetas.
●
Módulos: Establece el color usado para los módulos, excepto para los nombres de los puertos.
●
Puertos de módulos: Establece el color usado para los nombres de los puertos en los módulos.
●
Marcos: Establece el color usado para los marcos.
●
Comentarios: Establece el color para los comentarios normales.
●
Hiperenlaces: Establece el color para los comentarios de tipo hiperenlace.
●
Cables simples (1 bit): Establece el color para los cables de un solo bit y sus etiquetas.
●
Buses: Establece el color usado para los cables de más de un bit y sus etiquetas.
●
Herramientas de puerta: Establece el color para los objetos que no sean cursores usados por el TkGate (ej. puntas de prueba).
●
Rejilla de ámbito: Establece el color para la rejilla en la ventana de ámbito.
●
Lógica '1': Establece el color para los valores lógicos deterministas, que no sean cero, en el ámbito lógico.
●
Lógica '0': Establece el color para los valores lógicos cero en el ámbito lógico.
●
Conflicto desconocido: Establece el color para los valores lógicos desconocidos, incluyendo el nivel “bajo” y el nivel “alto”, en el ámbito lógico.
●
LED apagado: Establece el color para los LEDs que