Sei sulla pagina 1di 18

APLICACIN DE ANALIZADORES LGICOS EN EXPERIENCIAS

DE LABORATORIO.

TUTORIAL PARA EL USO DEL ANALIZADOR LGICO

Resumen: El presente documento tiene como objetivo explicar qu es un analizador lgico, en que
tipo de aplicaciones se utiliza y servir de tutorial para el usuario. Se espera que este material sea
utilizado por alumnos que ya cursaron el laboratorio de sistemas digitales y que estn cursando el
laboratorio de estructura de computadores. Esto debido a que todos los comentarios y ejemplos
introducidos en este apunte, pretenden ser un aporte a estos laboratorios y se desarrollaron
utilizando las mismas herramientas de trabajo que se utilizan es ellos.

1.1 Introduccin.

El analizador lgico es un instrumento que permite capturar y desplegar un


gran nmero de seales digitales al mismo tiempo. La mayora de los usuarios de
instrumentos de medicin, elegira un osciloscopio para analizar un sistema. Sin
embargo, este instrumento presenta limitaciones en muchas aplicaciones. Por esto,
es importante conocer las ventajas de los analizadores lgicos y saber en que tipo
de aplicacin es mejor utilizar uno u otro instrumento. A continuacin se presentan
algunas lneas generales para poder realizar esta discriminacin.

1.2 Diferencias de uso entre un osciloscopio y un analizador


lgico.

Un osciloscopio se utiliza cuando se desea medir una pequea excursin en


la seal observada.

figura 1: un osciloscopio se utiliza para medir pequeas


excursiones en la seal observada.

Tambin se utiliza cuando se necesita obtener informacin paramtrica


como por ejemplo el tiempo entre dos puntos del canto de subida de un pulso.

1
figura 2: un osciloscopio se utiliza para medir este tiempo.

En general, el osciloscopio se utilizar cuando se necesitan mediciones de


voltaje o tiempo de gran precisin en seales analgicas.

Un analizador lgico en cambio, se utiliza cuando se necesitan analizar


muchas seales digitales al mismo tiempo, debido a que estos instrumentos
permiten organizar y desplegar las seales de manera fcil y ordenada.
Tambin se utiliza cuando se necesitan ver las seales de un circuito de la
misma manera que lo hace el sistema. Esto permite saber cuando ocurren
transiciones en un bus, relativo a las transiciones en otros buses. Otra aplicacin
muy frecuente del analizador es cuando se necesita activar el disparo del
instrumento con un patrn especifico de un bus en particular.

1.3 Vista general de un analizador lgico.

La figura 3 muestra un diagrama general del instrumento estudiado.

figura 3: diagrama general del analizador lgico.

2
El analizador temporal: es como un osciloscopio, pero con un bit de
resolucin, es decir, slo se pueden desplegar dos estados (alto y bajo). Cualquier
seal que se quiera muestrear que est debajo del umbral especificado (threshold)
ser desplegada como un cero. Si la seal est por sobre este umbral, ser
desplegada como un uno. Esta parte del analizador muestrea seales de manera
asincrnica y se utiliza por ejemplo para buscar relaciones temporales entre varias
seales de entrada.
Cuando el analizador temporal muestrea una seal de entrada y una muestra
resulta estar en el estado alto o bajo y la siguiente muestra est en el estado
opuesto, el analizador sabr que se produjo el cambio en algn instante entre la
toma de una muestra y la otra. Sin embargo, como no se sabe en que instante se
produjo el cambio, este se representar en el instante en que se produce el
muestreo. Esto acarrear un cierto grado de incerteza sobre el instante preciso en
que se produce el cambio.

figura 4 : se observa claramente la incerteza producida por el muestreo del analizador temporal.

A mayor frecuencia de muestreo mayor ser la resolucin de la medicin.


Claramente existe un compromiso de diseo entre la resolucin y la cantidad de
informacin que se puede almacenar ya que cada punto muestreado ocupa un
espacio en memoria.
En algn punto de la medicin, el analizador lgico debe comenzar a
capturar o grabar los datos que sern almacenados en su memoria. Este punto es
llamado trigger point o punto de disparo. Una manera de disparar la toma de
datos se logra configurando el analizador para que ste comience la toma de datos
al encontrar un patrn predeterminado en un grupo de seales. Otra manera es
programar el analizador para que ste se dispare al encontrar un canto de subida o
bajada de una seal en particular. La configuracin avanzada del trigger ser
discutida ms adelante.

El analizador de estados: utiliza una seal de reloj del sistema que se


est analizando. Este dispositivo muestrea los datos de manera sincrnica con
respecto al reloj que sincroniza los eventos del sistema estudiado. Por lo anterior
podemos decir que la principal diferencia entre un analizador temporal y un
analizador de estados, es que el primero tiene un reloj interno para controlar el

3
muestreo, de tal manera que muestrea el sistema estudiado de manera asincrnica.
Por otro lado el analizador de estados utiliza un reloj que provee el sistema
estudiado, como reloj de muestreo, lo que hace que sea un muestreo sincrnico.
Esta caracterstica del instrumento, lo transforma en un elemento muy
usado en el mundo de los microcontroladores debido a que muy probablemente se
tendrn datos y direcciones en el mismo bus. Para tomar los datos de inters
correctamente, el analizador lgico deber restringir la toma de datos a los
tiempos en que slo los datos de inters son validos y aparecen en el bus. Esto se
hace tomando datos del mismo canal, pero con seales de reloj distintas. En la
figura 5 observamos que para capturar las direcciones (VALID ADRESS), el
analizador debe tomar muestras cuando la seal MREQ cambia a cero. Para
capturar datos (VALID DATA), el analizador debe tomar muestras cuando la seal
RD cambia a cero o cuando la seal WR cambia a cero.

figura 5: diagrama de seales de un microprocesador.

De este pequeo anlisis podemos deducir que se utiliza un analizador de estados


cuando se desea saber qu ocurre en un bus de datos del sistema, y se utiliza un
analizador temporal cuando se desea saber cundo ocurre algo en un bus de
nuestro sistema.

4
2.1 Configuracin del analizador lgico en modo analizador de
estados (muestreo sincrnico)

Este punto se desarrollar en base a un ejemplo. Se espera que el lector a


travs de ste, comprenda el funcionamiento bsico del analizador lgico en modo
analizador de estados. Luego le ser fcil extender sus conocimientos para manejar
el instrumento con aplicaciones ms complejas.

Se desarroll una mquina secuencial que produce una salida alta cada vez
que se detecta la secuencia 0101 en la entrada; y salida cero en el resto de los casos.

1/0

0/0
1/0 0/0
A B
B C D
0/0 1/0
1/1
0/0
figura 6: Mquina de estados reconocedora de secuencia.

La siguiente secuencia de entrada produce las siguientes secuencias de


salida y de transiciones de estados.

Entrada 0 1 0 1 1 0 0 1 1 ....
Salida 0 0 0 1 0 0 0 0 0 ....
Estado B C D C A B B C A .
tabla 1: secuencia de salidas y de transiciones de estados.

La mquina secuencial se program en ABEL y se carg en una CPLD


implantada en una tarjeta de desarrollo estndar. El siguiente mdulo describe el
diagrama de estados.

MODULE estado1

TITLE 'Diagrama de Estados. Modelo de Mealy'


"Declaraciones
q1, q0, zs, x pin 17,23,19,18 istype 'reg'; "Estado, Salida y entrada para la mq de estados Registrada
clock, enab, reset pin 9,50,48; "Entradas
z pin istype 'com'; "Salida Combinacional.

sreg = [q1,q0];
"Valores de los estados
A= 0; B= 1; C= 2; D= 3;

equations
[q1,q0,zs,x].clk= clock;

when (x==0) then x:=1;


when (x==1) then x:=0;

5
[q1,q0,zs].oe = !enab;
[q1,q0,zs,x].ar = reset; "Con reset va a [0, 0](el estado A).

state_diagram sreg;
State A:
zs := 0;
if (!x) then B with z = 0; else A with z = 0;

State B:
if (!x) then B with z = 0; else C with z = 0;
State C:
if (!x) then D with z = 0; else A with z = 0;
State D:
if (!x) then B with z = 0; else C with {z = 1; zs := 1;}

test_vectors ( [clock,enab,reset, x]->[sreg,zs])


[.c. , 0 , 1 , 0 ]->[A ,0];
[.c. , 0 , 0 , 1 ]->[A ,0];
[.c. , 0 , 0 , 0 ]->[B ,0];
[.c. , 0 , 0 , 1 ]->[C ,0];
[.c. , 0 , 0 , 0 ]->[D ,0];
[.c. , 0 , 0 , 1 ]->[C ,1];
[.c. , 0 , 0 , 1 ]->[A ,0];
[.c. , 0 , 0 , 0 ]->[B ,0];
[.c. , 0 , 0 , 0 ]->[B ,0];
[.c. , 0 , 0 , 1 ]->[C ,0];
[.c. , 0 , 0 , 1 ]->[A ,0];

END

Cdigo Abel de la mquina de estados de la figura 4.

Del anlisis del cdigo se desprende que la mquina de estados, despus de


un tranciente, se quedar oscilando entre el estado C y D. Si sincronizamos
debidamente el osciloscopio con las seales de inters obtendremos lo siguiente.

figura 7: seales obtenidas de la oscilacin de la mquina de estados.

6
Punta del oscil. seal
D0 q0
D1 q1
D2 X
D3 zs
D4 clock
D6 z
tabla 2 : relacin entre las seales del sistema estudiado
y las puntas del osciloscopio.

Lo anterior pretende ilustrar lo difcil que resulta capturar los estado por los
que pasa una mquina secuencial con un osciloscopio. En este caso particular se
debe utilizar el analizador lgico para poder visualizar claramente el paso de la
mquina secuencial por todos los estados. En la figura 7, slo se observa como la
mquina pasa del estado 2 al 3, o bien del C al D.

A continuacin se ilustran los pasos que se deben seguir para lograr


desplegar en el analizador lgico todos los estados por los que pasa la mquina.

1. Se deben conectar las puntas de prueba a las seales del dispositivo que se
desea estudiar.
2. A continuacin se debe especificar al analizador, que seales de prueba
sern utilizadas y cmo se quieren agrupar en el analizador. Para esto, en la
barra de men se debe ir a Setup>Buses/Signals.

figura 8: creacin de buses y asignacin de seales a cada uno de ellos.

La figura 8 ilustra las seales utilizadas en nuestro ejemplo y como fueron


agrupadas. En la tabla 3 se presentan las seales que se asociaron a las
puntas del analizador lgico.

7
Seal del
Punta del sistema
analizador. estudiado.
Pod1 0 q0
Pod1 1 q1
Pod1 2 zs
Pod13 x
Pod1 5 Z
tabla 3 : relacin entre las seales de la mquina de
estados y las puntas de la mq. de estados.

3. Luego se debe setear el analizador en modo analizador de estados. Esto se


logra haciendo clic en el recuadro Sampling de la figura 8, o bien desde la
barra men yendo a Setup>Timing/State (Sampling).

figura 9: configuracin del analizador lgico en modo analizador de estados.

Luego se debe marcar la casilla que corresponde al modo State.


Por defecto el modo del reloj est seteado en Master. Este es el mtodo que
se utiliza en el ejemplo que discutimos. Esto significa que slo existe un reloj
para muestrear las seales de inters. Cuando ocurre un canto de reloj se
capturan los datos y se guardan como una muestra del analizador lgico.
Existe otra manera de capturar datos, el modo Master/Slave/Demux . En
este modo se pueden salvar datos en la memoria muestreados por distintos
relojes.

8
figura 10 : esquema Master/Slave/Demux

Como se muestra en la figura 10, cuando se produce un canto en el reloj


slave los datos capturados por este reloj se guardan en un slave latch.
Luego cuando se produce un canto en el reloj master, tanto la informacin
capturada por el Pod (se refiere a uno de los ramilletes de canales de
entrada que tiene el intrumento) que utiliza el slave clock, como la
informacin capturada por el Pod que utiliza el master clock es guardada
en memoria.
Si se producen varios cantos del reloj slave, antes del prximo canto del reloj
master, slo la ltima informacin capturada por el Pod del reloj slave es
guardada en memoria.
En caso de que se quiera demultiplexar informacin, primero se debe setear
el analizador lgico en modo analizador de estados (State-Synchronous
Sampling). Luego, en este mismo cuadro de dilogo se debe configurar el
reloj (Clock Mode) en Master/Slave/Demux. A continuacin se deben
conectar correctamente los buses de los Pod 1 y 2 a las seales que se
desean demultiplexar. Luego se deben elegir las seales que se utilizarn
como relojes master y slave. La figura 10 entrega un diagrama de las
conexiones. Despus se debe ir al cuadro de configuracin Buses/Signals y
hacer click en el botn de reloj (clock) que est debajo del encabezado de
cada Pod.
Para demultiplexar se debe poner el reloj en modo Demultiplex. Por
ejemplo, si Ud. elige el Pod 1 para ser demultipexado, el Pod 2 desaparece
y se ver una segunda columna del Pod 1. La primera columna ser Pod 1
Master Clock, y la segunda Pod 1 Slave Clock.

En la figura 9 se puede observar que el reloj utilizado en nuestro ejemplo se


seteo en modo master. La punta del analizador lgico perteneciente a la Pod
1 rotulada como clock debe conectarse al reloj de la tarjeta de desarrollo
para controlar sincrnicamente la toma de muestras.

4. Para obtener las formas de onda de inters del ejemplo que se est
analizando, nos falta solamente configurar el disparo (trigger) de manera
adecuada. Existen tres maneras de realizar esta accin. La primera y ms
simple, es utilizando el panel de configuracin del trigger simple. Otra
forma, es utilizando un trigger externo, sin embargo el mtodo que ms se
utiliza cuando el analizador est en modo analizador de estados, es el trigger
avanzado (advanced trigger). Para esto, en la barra de men se debe ir a
Setup>Advanced Trigger. Haciendo esto se acceder a un cuadro de
dialogo diseado para configurar el trigger, ste requiere que se cumplan

9
varias condiciones para que ocurra el disparo. La gran ventaja que presenta
este modo de disparo es que ofrece una enorme cantidad de combinaciones
y funciones prediseadas para ser aplicadas en sistemas con distintas
caractersticas. Adems todas estas funciones son modificables, se les puede
agregar o quitar partes e incluso conjugar o mezclar unas con otras.
Cada modo de adquisicin (temporal o estado) tienen su propia batera de
funciones. Cada una de ellas est representada en cuadros azules que se
arrastran hacia el cuadro de secuencias en el orden que se quiere que se
ejecuten.

figura 11 : cuadro de dialogo del trigger avanzado. La funcin del recuadro al lado
izquierdo de la figura se toma y se arrastra al cuadro de secuencia.

Cada funcin agregada a la secuencia de disparo conforma un trigger step.


Cuando se cumple la condicin programada en un step, se pasa al siguiente.
El disparo ocurrir cuado se halla cumplido completa la secuencia
programada por el usuario.
Cuando el analizador lgico est en modo analizador de estados se
distinguen dos tipos de almacenamiento: default storage y sequense step
storage .

figura 12 : default storage y squense sep storage.

Default storage define lo que debe almacenarse mientras no se cumpla la


condicin programada en sequense step storage , es decir, es lo que se
almacena antes del disparo. Si no se cumple nunca la condicin de disparo y
se acaba la memoria, el analizador desplegar lo almacenado por defecto. Si
se cumple la secuencia de disparo se almacenarn en memoria nuevas
muestras que sobre escribirn lo almacenado por default storage.

10
La figura 13 ilustra como deben configurarse las acciones que componen la
secuencia de disparo.

figura 13 : recuadros para configurar las secuencias de trigger.

La figura 14 ilustra como agregar acciones o eventos a la secuencia de


disparo. Los eventos se utilizan para definir que datos deben ser analizados y
las acciones son utilizadas par comenzar procesos.

figura 14 : recuadros para agregar acciones o eventos.

Ahora que se ha introducido al lector en la configuracin del modo de


disparo avanzado, podemos explicar como se configur ste para lograr
visualizar todos los estados por los que pasa la mquina secuencial del
ejemplo propuesto.

Se agruparon las seales que definen el estado en que est la mquina


secuencial (q0 y q1) en un bus llamado estados. Sabemos que ste tendr el
valor 0 (cero) al comenzar la ejecucin de la mquina de estado y luego
tomar el valor 1. Se busc en las funciones de disparo del modo analizador
de estados una funcin que accione el disparo del analizador cuando un
cierto patrn (1) definido por el usuario sea seguido por otro patrn (2)
tambin definido por el usuario. Esta funcin se llama Too few states
between Pattern1 and Pattern2 y se encuentra en uno de los cuadros azules

11
del cuadro de dialogo del modo disparo avanzado. Para que fuese ms fcil
adecuar esta funcin a nuestras necesidades se cambi la funcin al modo
if/then como se ilustra en la figura 15.

figura 15 : Cambio de la funcin al modo if/then.

Los resultados de este cambio se encuentran en la figura 16, a partir de esta


figura resulta simple comprender la funcin en cuestin. Se observa
claramente que la condicin de disparo permanecer en el Step 1 hasta que
no ocurra la condicin especificada. Al ocurrir esta condicin se pasar al
Step 2, luego si se presenta el patrn esperado se producir el disparo y se
tomarn los datos esperados.

12
figura 16 : Cambio de la funcin al modo if/then.
Se procedi a programar la funcin para que se produzca el disparo al
cambiar el valor del bus estados de 0 a 1. El bus estados est constituido por
los bits 0 y 1 del bus completo de seales. El resultado de lo anterior se
presenta en la figura 17.

figura 17 : funcin configurada.

13
En la figura 17 se puede observar que debido a la configuracin del campo
default storage, si no se produce nunca el disparo, al detenerse la toma de
muestras se desplegar todo lo capturado. En este caso se desplegarn todas
la seales del sistema estudiado en cero. Lo anterior debido a que al
comenzar a medir, el sistema estar reseteado, es decir, todas las seales
estarn es cero. Luego se cumplir la condicin impuesta al step 1 y se
pasar al step 2. En el step 2 se espera que se pase al estado 1, es decir que el
bit 1 se ponga en alto. Al sacar el reset del sistema, como la ltima entrada
haba sido un 0 (cero), se pasar al estado 1 cumplindose la condicin del
step 2. Esto traer como consecuencia que se produzca el disparo.
Las seales capturadas se muestran en la figura 18.

figura 18 : formas de ondas de la mquina de estados.

Nombre
asociado a cada Seal del
punta del sistema
analizador. estudiado
Bus completo 0 q0
Bus completo 1 q1
Bus completo 2 zs
Bus completo 3 x
Bus completo 5 Z

tabla 4 : relacin entre las seales de la mquina de estados y las


seales desplegadas por el analizador.

14
2.2 Configuracin del analizador lgico en modo temporal (muestreo
asincrnico)

Despus de leer el punto 2.1 de este tutorial se espera que el lector ya est
familiarizado con el equipo. La configuracin del analizador lgico en modo
temporal es bastante similar a la configuracin del analizador lgico en el modo
analizador de estados.

Este punto se desarrollar en base a un ejemplo. Se espera que el lector a


travs de ste, comprenda el funcionamiento bsico del analizador lgico en modo
temporal.

Se quieren generar las siguientes formas de onda:

figura 19 : formas de ondas que sern generadas.

Se dise en Abel un mdulo que cumpla con generar las 6 seales dadas en el
esquema anterior.

MODULE gensenal
TITLE 'Generador de Formas de Ondas'
"Constantes
C,X = .c.,.x.;
"Entradas
reloj pin 9 ; "Reloj activo con cantos de subida
RST pin 74;
reset_uc pin 45;
"Salidas
Q4,Q3,Q2,Q1,Q0 pin 15,14,57,1,32 istype 'reg, buffer';
sec1..sec6 pin 72,58,56,54,55,53 istype 'com';
"Declaraciones de conjuntos
Cuenta = [Q4,Q3,Q2,Q1,Q0];

15
Equations
reset_uc=1;
Cuenta := (Cuenta + 1); "Cuenta ascendentemente en mdulo 16
Cuenta.AR = RST;
Cuenta.C = reloj;
when (Cuenta==30) then RST=1;

Truth_table( Cuenta -> [sec1,sec2,sec3,sec4,sec5,sec6])


0-> [0,0,0,1,1,1]; 1-> [0,0,0,1,1,1]; 2-> [1,0,0,1,1,1]; 3-> [1,0,0,1,1,1];
4-> [0,0,0,1,0,1]; 5-> [0,1,0,1,1,0]; 6-> [0,0,0,1,1,1]; 7-> [0,0,0,1,1,0];
8-> [1,0,0,1,1,0]; 9-> [1,0,0,1,0,1]; 10-> [0,0,0,1,1,0]; 11-> [0,0,0,1,1,0];
12-> [1,0,0,1,1,1]; 13-> [1,0,0,0,1,0]; 14-> [0,0,0,1,0,1]; 15-> [0,0,0,1,1,1];
16-> [1,0,0,1,1,1]; 17-> [1,0,0,1,1,1]; 18-> [0,0,0,1,1,1]; 19-> [0,0,0,1,0,1];
20-> [0,0,0,1,1,0]; 21-> [0,0,0,1,1,0]; 22-> [0,0,0,1,1,0]; 23-> [0,0,0,1,1,0];
24-> [0,0,1,1,0,1]; 25-> [0,0,0,1,1,1]; 26-> [1,0,0,1,1,1]; 27-> [1,0,0,1,1,1];
28-> [0,0,0,1,1,0]; 29-> [0,0,0,1,0,1];

END

Cdigo Abel del diseo que genera las seales de la figura 17.
Se implement el diseo en la tarjeta de desarrollo (CPLD). Para cumplir
con el perodo de 3 [s] debemos seter el clock de la tarjeta en 10 [MHz].
Para capturar las formas de onda con el analizador temporal se debe
proceder de la siguiente manera.

1. Se deben conectar las puntas de prueba a las seales del dispositivo que se
desea estudiar.
2. A continuacin se debe especificar al analizador, qu seales de prueba
sern utilizadas y cmo se quieren agrupar en el analizador. Para esto, en la
barra de men se debe ir a Setup>Buses/Signals. La figura 20 muestra
como se asignaron las seales.

figura 20: asignacin de seales .

3. Luego se debe setear el analizador en modo analizador temporal. Esto se


logra haciendo clic en el recuadro Sampling de la figura 20, o bien desde la
barra men yendo a Setup>Timing/State (Sampling). Luego se debe
marcar la casilla que corresponde al modo temporal.
A continuacin se debe configurar la tasa de muestreo, lo cual es importante
hacerlo en forma adecuada para aprovechar al mximo la memoria con que
cuenta el equipo.

16
Primero se debe elegir la opcin de muestreo (sample options) . Cada una de
estas opciones ofrece distintas alternativas para la tasa de muestreo y
cantidad de memoria destinada a cada canal.

figura 21: eleccin de la opcin de muestreo.

En nuestro caso nos sirven las tres alternativas que se presentan, sin
embargo elegiremos la primera porque sta permite elegir cmodamente el
perodo de muestreo y ofrece ms memoria por canal que la tercera opcin .
En la figura 21 se ilustra la manera de optar una de estas alternativas.

Al observar la figura 19 con detencin, es posible darse cuenta que no se


necesita gran resolucin para capturar correctamente todas las seales. Las
transiciones ms rpidas se producen a una velocidad de 100 [ns], luego
bastar con configurar la tasa de muestreo a esta velocidad (una muestra
cada 100 [ns]) para capturar los pulsos ms rpidos de la seales
correctamente. Como se tienen 512 Kbit de memoria para cada canal y cada
muestra se utiliza 1 bit se podrn almacenar aproximadamente 51 [ms].

figura 22: configuracin del analizador lgico en modo analizador


de estados y seteo de la tasa de muestreo.

17
En el laboratorio ser posible experimentar ms profundamente con las
opciones de muestreo, lo cual ser sin lugar a dudas enriquecedor para el
usuario.

4. Para obtener las formas de onda buscadas, nos falta solamente configurar el
disparo (trigger) de manera adecuada. En la figura 19 se puede observar
claramente que las seales ms lentas son la 2 y la 3, ambas de perodo
3[us]. Luego bastar con activar el disparo del instrumento con el canto de
subida de una de estas seales. Esto se logra de manera muy sencilla en el
cuadro de dialogo simple trigger que se despliega en la interfase principal
instrumento.

En la figura 23 se despliegan las seales obtenidas con la configuracin


explicada.

figura 23: seales pedidas.

3.1 Comentario final.

A finalizar la lectura de este documento se espera que el lector est


capacitado para realizar mediciones con el analizador lgico en modo temporal y
analizador de estados. Adems a partir de los conocimientos adquiridos el usuario
podr explorar sin dificultad configuraciones ms avanzadas del equipo para
utilizarlo en aplicaciones ms complicadas.

18

Potrebbero piacerti anche