Solución Quiz 2 Martes Laboratorio de Sistemas Digitales 01/2003 Considere el siguiente esquema: CLK Q0 Q1 Q2 Q3 sec ckr 30 [us] a) Utilizando la tarjeta de desarrollo genere dichas formas de onda, a partir de una señal de reloj externo (la única entrada es CLK). Genere los vectores de prueba correspondientes. El siguiente es el código ABEL, con los vectores de prueba incluídos, que genera las formas de onda del esquema, con la señal clk como entrada: module quiz2a; reloj pin 9; reset pin 80; q3..q0 pin 77,76,25,12 istype 'reg'; sec pin 24 istype 'com'; ckr pin 41 istype 'com'; cuenta=[q3..q0]; C=.C.; X=.X.; equations cuenta.clk=!reloj; cuenta.ar=reset; when (cuenta==11) then cuenta:=0; else cuenta:=cuenta+1; when ((cuenta==1) # (cuenta==2) # (cuenta==3) # (cuenta==5) # (cuenta==7) # (cuenta==11)) then sec=0; else sec=1; when ((cuenta==5) # (cuenta==11)) then ckr=1; ckr=0; test_vectors ([reloj, reset ] -> [cuenta, sec, ckr]) [ 0 , 0 ] -> [ X , X, X ]; [ C , 1 ] -> [ 0 , 1, 0 ]; [ C , 0 ] -> [ 1 , 0, 0 ]; [ C , 0 ] -> [ 2 , 0, 0 ]; [ C , 0 ] -> [ 3 , 0, 0 ]; [ C , 0 ] -> [ 4 , 1, 0 ]; [ C , 0 ] -> [ 5 , 0, 1 ]; [ C , 0 ] -> [ 6 , 1, 0 ]; [ C , 0 ] -> [ 7 , 0, 0 ]; [ C , 0 ] -> [ 8 , 1, 0 ]; [ C , 0 ] -> [ 9 , 1, 0 ]; [ C , 0 ] -> [ 10 , 1, 0 ]; [ C , 0 ] -> [ 11 , 0, 1 ]; end; Código 1. Descripción en ABEL del diseño que cumple con el esquema dado. Como se implementaron los vectores de prueba, se pueden obtener las siguientes formas de onda: Figura 1. Formas de onda obtenidas del diseño implementado por el código 1. Se puede apreciar entonces que el diseño cumple con las especificaciones dadas por el esquema. b) Muestre, empleando el osciloscopio mixto las señales anteriores. Explique claramente la forma de disparo utilizada. Para realizar la implementación en la tarjeta de desarrollo se utiliza el ambiente Xilinx Webpack 4.1 (que próximamente tendrá la posibilidad de realizar las simulaciones temporales con los vectores de prueba, de manera de utilizar sólo un ambiente de trabajo). El reloj de la tarjeta debe tener un período de 10 [us], que corresponde a una frecuencia de 100 [kHz], por lo que el divisor del reloj de la tarjeta debe ser 1000. La siguiente es la imagen capturada del osciloscopio mixto que muestra la implementación hecha: Figura 2. Imagen capturada del osciloscopio mixto. Esta imagen fue capturada con los siguientes seteos en el osciloscopio: Digital Threshold D0-D7: TTL (1.4V) Trigger Mode Coupling Noise Rej Holdoff Pattern Normal DC Off 448.00us Trigger Pattern 1 XX 2 D15 XXXX XXXX XXXL LLLX D0 Time Time Ref Main S/div Delay Main Center 20.0us/ 86.0us Acquisition Realtime Vectors Infinite Persistence Normal Off On Off Se puede apreciar la sincronización por patrón con los canales D1 al D4 en la cuenta inicial. c) Utilice el pin 81 como señal de control para mostrar en forma serial el contenido constante de un registro (0x54) (es decir, cuando esté en 1 se muestra en forma serial y cuando esté en 0 se carga con el valor 0x54). Alimente el reloj de dicho registro con la señal ckr. Sincronice de manera de obtener en el osciloscopio las anteriores formas de onda más el contenido del registro en forma serial. El código ABEL anterior puede ser modificado de manera de colocar un registro que realice la tarea de desplazarse sobre si mismo, en forma cíclica, para enviar su contenido en forma serial. Esta modificación es: module quiz2a; reloj pin 9; reset,control pin 80,81; q3..q0 pin 77,76,25,12 istype 'reg'; sec pin 24 istype 'com'; ckr pin 41 istype 'com'; registro7..registro0 node istype 'reg'; serial pin 40 istype 'com'; registro=[registro7..registro0]; cuenta=[q3..q0]; C=.C.; X=.X.; equations cuenta.clk=!reloj; cuenta.ar=reset; registro.clk=ckr; when (cuenta==11) then cuenta:=0; else cuenta:=cuenta+1; when ((cuenta==1) # (cuenta==2) # (cuenta==3) # (cuenta==5) # (cuenta==7) # (cuenta==11)) then sec=0; else sec=1; when ((cuenta==5) # (cuenta==11)) then ckr=1; else ckr=0; when (control==0) then { registro:=^h54; serial=1;} else{ registro:=[registro0,registro7..registro1]; serial=registro1;} test_vectors “sin variación... end; Código 2. Descripción en ABEL del diseño, más la salida en forma serial, que cumple con el esquema dado. Se ha agregado el control del pin 81, sin hacer mucho incapié en los vectores de prueba. Al implementar el diseño en la tarjeta de desarrollo se obtiene las siguientes formas de onda. Nótese que debe ajustarse la base de tiempo parar poder visualizar el contenido del registro, pero el osciloscopio se encuentra perfectamente sincronizado: Figura 3. Imagen capturada del osciloscopio mixto, considerando la salida serial. Esta imagen fue capturada con los siguientes seteos en el osciloscopio: Digital Threshold D0-D7: TTL (1.4V) Trigger Mode Coupling Noise Rej Holdoff Pattern Normal DC Off 448.00us Trigger Pattern 1 XX 2 D15 XXXX XXXX LLXL LLLX D0 Time Time Ref Main S/div Delay Main Center 100us/ 440us Acquisition Realtime Vectors Infinite Persistence Normal Off On Off Nótese que se ha agregado a la sincronización por patrón los canales D6 y D7 en nivel bajo (L), que corresponden: D6 a la señal ckr y D7 a la salida serial del registro con contenido 0x54. La palabra hexadecimal 0x54 está marcada entre los cursores en la figura 3. Para estabilizar el disparo se utiliza el holdoff en 448 [us].