Solución Quiz 2 Miércoles Laboratorio de Sistemas Digitales 01/2003 Considere el siguiente esquema: CLK Q0 Q1 Q2 Q3 se c c trl 1 [us] a) Utilizando la tarjeta de desarrollo genere dichas formas de onda, a partir de una señal de reloj externo (es decir el pin 9). 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'; ctrl pin 41 istype 'com'; cuenta=[q3..q0]; C=.C.; X=.X.; equations cuenta.clk=!reloj; cuenta.ar=reset; when (cuenta==9) then cuenta:=0; else cuenta:=cuenta+1; when ((cuenta==3) # (cuenta==6) # (cuenta==9)) then sec=1; else sec=0; when (cuenta==5) then ctrl=1; else ctrl=0; test_vectors ([reloj, reset ] -> [cuenta, sec, ctrl]) [ 0 , 0 ] -> [ X , X, X ]; [ C , 1 ] -> [ 0 , 0, 0 ]; [ C , 0 ] -> [ 1 , 0, 0 ]; [ C , 0 ] -> [ 2 , 0, 0 ]; [ C , 0 ] -> [ 3 , 1, 0 ]; [ C , 0 ] -> [ 4 , 0, 0 ]; [ C , 0 ] -> [ 5 , 0, 1 ]; [ C , 0 ] -> [ 6 , 1, 0 ]; [ C , 0 ] -> [ 7 , 0, 0 ]; [ C , 0 ] -> [ 8 , 0, 0 ]; [ C , 0 ] -> [ 9 , 1, 0 ]; 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 500 [ns], que corresponde a una frecuencia de 2 [MHz], por lo que el divisor del reloj de la tarjeta debe ser 50. 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 419.97us Trigger Pattern 1 XX 2 D15 XXXX XXXX XXXL LLLX D0 Time Time Ref Main S/div Delay Main Center 1.00us/ 4.76us 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 la señal ctrl para habiliar y deshabilitar la función de un registro de desplazamiento. Es decir, cuando ctrl esté en 1 el registro se cargará con el valor constante 0x68, y su salida serial debe estar en 1; y cuando ctrl esté en 0 el registro se encuentra desplazándose, de manera que su salida serial es el contenido del mismo. Alimente el reloj de dicho registro con la señal clk. 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 pin 80; q3..q0 pin 77,76,25,12 istype 'reg'; sec pin 24 istype 'com'; ctrl 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=!reloj; when (cuenta==9) then cuenta:=0; else cuenta:=cuenta+1; when ((cuenta==3) # (cuenta==6) # (cuenta==9)) then sec=1; else sec=0; when (cuenta==5) then ctrl=1; else ctrl=0; when (ctrl==1) then { registro:=^h68; 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. Nótese que no se hace incapié en los vectores de prueba. Al implementar el diseño en la tarjeta de desarrollo se obtiene las siguientes formas de onda: 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 419.97us Trigger Pattern 1 XX 2 D15 XXXX XXXX XXXL LLLX D0 Time Time Ref Main S/div Delay Main Center 1.00us/ 4.62us Acquisition Realtime Vectors Infinite Persistence Normal Off On Off Se puede apreciar en la figura anterior que la palabra hexadecimal 0x68 sale en forma serial en el canal D7, siguiendo el orden : 01100H001, donde H corresponde a la salida serial en alto cuando la señal ctrl está en alto (D6). Una secuencia completa aparece marcada entre los cursores.