Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Mediciones Digitales
Departamento de Electrónica, Universidad Técnica Federico Santa Marı́a, Av. España 1680
Resumen
En este laboratorio se familizarán con sistemas digitales combinacionales, una introducción a sistemas secuencia-
les, su descripción usando Verilog y el uso de un osciloscopio de señal mixta como instrumento de medición. Como
bibliografı́a para este laboratorio, se recomienda consultar el tutorial del osciloscopio (elaborado para ELO-212) que
utilizaremos (publicado en el aula virtual) y la bibliografı́a relativa a Verilog previamente publicada en la experiencia
anterior.
Palabras clave: Mediciones digitales, osciloscopio de señal mixta, Verilog, sistemas digitales, FPGA, HDL.
1
UNIVERSIDAD TÉCNICA FEDERICO SANTA MARÍA
DEPARTAMENTO DE ELECTRÓNICA
ELO212 - Laboratorio de Sistemas Digitales
Primer Semestre 2015
1. Objetivos
Los objetivos técnicos para este laboratorio son los siguientes:
Pág. 2 de 12
UNIVERSIDAD TÉCNICA FEDERICO SANTA MARÍA
DEPARTAMENTO DE ELECTRÓNICA
ELO212 - Laboratorio de Sistemas Digitales
Primer Semestre 2015
seteado). Este tiempo de espera, consiste en el perı́odo durante el cual el osciloscopio no puede desplegar ninguna
imagen en pantalla, debido a que: a) debe refrescar la misma; b) existe un tiempo de ajuste necesario asociado a la
espera hasta que se de vuelvan a dar las condiciones de disparo (el nivel de tensión) nuevamente.
Ejemplo: Para poder visualizar las formas de ondas que se indican en la Fig. 2, considerando la señal superior en
el canal 1 y la inferior en el canal 2, se debe escoger como fuente de disparo la señal del canal 2, (con acoplamiento
CC, modo de disparo normal, sin que importe la pendiente), pero con un nivel de tensión de disparo que no supere al
máximo nivel entre ambas señales. Si por el contrario, disparamos el osciloscopio con la señal de mayor frecuencia,
no alcanzarı́amos ver la señal de menor frecuencia en forma estable en la pantalla (dado el redisparo).
Pág. 3 de 12
UNIVERSIDAD TÉCNICA FEDERICO SANTA MARÍA
DEPARTAMENTO DE ELECTRÓNICA
ELO212 - Laboratorio de Sistemas Digitales
Primer Semestre 2015
A B
F D
S
Figura 3: Esquemático de una ALU.
En la Fig. 3, A y B son dos operandos de entrada (generalmente de 32 bits, a menos que se diga lo contrario); F
es la entrada de control (selecciona la operación a realizar por la ALU); D es una salida de banderas (que no se verán
en esta asignatura), mientras que S es la salida de la operación realizada por la ALU. Hay que tener en cuenta que S
es de las mismas dimensiones de A o B. Siempre de trabaja con operandos de la misma dimensión. Las operaciones
Pág. 4 de 12
UNIVERSIDAD TÉCNICA FEDERICO SANTA MARÍA
DEPARTAMENTO DE ELECTRÓNICA
ELO212 - Laboratorio de Sistemas Digitales
Primer Semestre 2015
Suma (entre operandos con signo). Esta operación siempre se realiza en complemento a 2.
Desplazamiento de bits a la izquierda (se desplazan n bits a la izquierda, rellenando con ceros por la derecha).
Desplazamiento de bits a la derecha (sin signo: se desplazan n bits a la derecha, rellenando con ceros por
la izquierda; con signo: se desplazan n bits a la derecha, rellenando de bits por la izquierda, cuyos valores
coinciden con el valor del bit más significativo del operando).
Las funcionalidades antes mencionadas son comandadas a través de la señal de control F . Sin embargo, hay que
tener en cuenta que una ALU hace mucho más de lo que acabamos de describir. Información sobre el funcionamiento
de una ALU puede ser encontrada en las siguientes referencias:
1. http://www.windowsnetworking.com/articles_tutorials/arithmetic-logic-unit.html
2. http://library.thinkquest.org/25111/alu.shtml
3. http://www.cs.iupui.edu/˜durresi/CSC3501_07/7_3501_07_2.pdf
4. http://courses.cs.vt.edu/˜cs1104/BuildingBlocks/divide.010.html
5. http://en.wikibooks.org/wiki/Microprocessor_Design/ALU
Pág. 5 de 12
UNIVERSIDAD TÉCNICA FEDERICO SANTA MARÍA
DEPARTAMENTO DE ELECTRÓNICA
ELO212 - Laboratorio de Sistemas Digitales
Primer Semestre 2015
Si quisiéramos tener una ALU básica de dos bits, tal como se muestra en la Tabla 1, deberı́amos considerar que la
señal de control F tiene que ser capaz de indicar qué operaciones realizar entre A y B.
module a l u 2 ( S , A, B , F ) ;
i n p u t [ 1 : 0 ] A, B ;
input [2:0] F;
output reg [1 : 0 ] S ;
a l w a y s @( ∗ )
begin
case (F)
3 ’ d0 : S = A & B ;
3 ’ d1 : S = A | B ;
3 ’ d2 : S = A ˆ B ;
3 ’ d3 : S = A + B ;
3 ’ d4 : S = A − B ;
d e f a u l t : S = A & B;
endcase
end
en d m o d u le
Pág. 6 de 12
UNIVERSIDAD TÉCNICA FEDERICO SANTA MARÍA
DEPARTAMENTO DE ELECTRÓNICA
ELO212 - Laboratorio de Sistemas Digitales
Primer Semestre 2015
4. Actividades Previas
Esta sección describe aquellas actividades que cada grupo deberá realizar para responder las preguntas de la Parte
Previa a ser publicada en el Aula Virtual.
Compuertas OR 7432.
Inversor 7404.
Flip-flop JK 7473.
Todos los datasheets están en el aula virtual. Lea además el tutorial del osciloscopio desarrollado para el Labora-
torio.
4.1.1. Flip-flop JK
Estudie el funcionamiento del flip-flop JK. Este flip-flop, puede ser utilizado para la construcción de contadores,
los cuales son de suma utilidad en los circuitos digitales. Por ejemplo, la Tabla 2 muestra la tabla de verdad para un
flip-flop JK, cuyas entradas son ∼ CLR (es la señal del CLR o clear, negada), la señal de reloj (CLK) y las entradas
J y K. Las salidas del flip-flop son Q y ∼ Q.
Es interesante observar que un flip-flop tipo JK (un simple flip-flop) se puede comportar como un contador de un
bit. Supongamos lo siguiente: primero ∼ CLR = 0, luego Qk+1 = 0 (hemos seteado la condición inicial de salida de
Pág. 7 de 12
UNIVERSIDAD TÉCNICA FEDERICO SANTA MARÍA
DEPARTAMENTO DE ELECTRÓNICA
ELO212 - Laboratorio de Sistemas Digitales
Primer Semestre 2015
nuestro flip-flop). Ahora, conectemos las entradas J y K a un uno lógico permanente (ese valor, para ambas entradas,
no debe variar). Lo que nos dice la tabla de verdad Tab. 2 es que, ante cada canto (o flanco) positivo de nuestro reloj
(CLK), se aplica la última fila de nuestra tabla de verdad, es decir Qk+1 =∼ Qk . Dicho de otra manera, si Q vale
inicialmente cero, al siguiente canto positivo del reloj, pasará a valer un uno lógico. Al siguiente canto, se producirá
un overflow, y pasará a valer cero nuevamente.
La gran ventaja de este tipo de flip-flops es que podemos conectarlos en cadena y ası́ contar hasta n–bits, en vez
del único bit que contamos en el párrafo anterior. La tabla de verdad para un contador de dos bits se muestra en Tab. 3.
En la Tabla 3, se puede ver como dos flip-flops en cadena pueden generar un contador de 0 a 3 (dos bits). Un
esquema de representación de este pequeño contador lo podemos ver en la Fig. 4.
Uno Q0 Q1
Lógico
J Q J Q
CLK
K ~Q K ~Q
CLR
Uno
Lógico
Pág. 8 de 12
UNIVERSIDAD TÉCNICA FEDERICO SANTA MARÍA
DEPARTAMENTO DE ELECTRÓNICA
ELO212 - Laboratorio de Sistemas Digitales
Primer Semestre 2015
4.2. ALU
Estudie el funcionamiento de una ALU en cualquiera de las referencias indicadas en el punto 3 de la presente guı́a.
Sus entradas son los operandos A y B que se muestran en la Fig. 3. Sus entradas deben ser de hasta 32 bits (el
número de bits debe ser fijado como parámetro).
La salida de la ALU, es S (debe tener la misma cantidad de bits que cualquiera de sus entradas).
1. A&B.
2. A|B.
3. A ∧ B.
4. A + B.
5. A − B.
6. sll(A, B): Desplaza B bits de A hacia la izquierda, rellenando con ceros por la derecha.
7. srl(A, B): Desplaza B bits de A hacia la derecha, rellenando con ceros por la izquierda.
8. sra(A, B): Desplaza B bits de A hacia la derecha, pero rellenando por la izquierda con bits con valor
igual al bit más significativo de A.
Por ejemplo, para la operación ssl, si los operandos son de ocho bits, A = 10001110 y B = 00000011, entonces
sll(A, B) = 01110000; a su vez, para las siguientes operaciones, considerando B = 00000010 entonces srl(A, B) =
00100011 y sra(A, B) = 11100011. El mismo concepto se aplica cuando el operador es de 32 bits.
Prepare un código de prueba (Verilog Test Fixture) fijando el parámetro de bits de los operandos en 3. Procure
que el test que demuestre la correcta operación con algunos ejemplos, incluyendo casos extremos y posibles puntos de
falla, pero no necesariamente exhaustivo, para probar el funcionamiento de la ALU.
Pág. 9 de 12
UNIVERSIDAD TÉCNICA FEDERICO SANTA MARÍA
DEPARTAMENTO DE ELECTRÓNICA
ELO212 - Laboratorio de Sistemas Digitales
Primer Semestre 2015
NOTA: De ahora en más, cada vez que se le solicite alguna descripción en Verilog, la misma debe venir acompañada
de su correspondiente testbench, en donde sean puestas a prueba todas las funcionalidades de su hardware. De esta
manera, la implementación de un testbench ya no será explı́cita en los enunciados de los laboratorios siguientes, pero
sı́ será evaluada.
Diseñe un circuito que permita identificar con un bit de salida en alto si la palabra de entrada (e) de 3 bits corres-
ponde a un número primo, en caso contrario deberá presentar la salida en bajo.
Ejemplo:
001 -> 0
010 -> 1
module p r i m o s ( s , e ) ;
input [2:0] e ;
output s ;
/ / Co m p lete s e g u n c o r r e s p o n d a
en d m o d u le
Verifique el funcionamiento del circuito diseñado mediante la implementación de un testbench. ¿Cuántos vectores
de prueba se deben generar para hacer un test exhaustivo del hardware propuesto?
Genere el proyecto con parámetros para CPLD (indicando la “Familia”: “XC9500 CPLDs” y el “Modelo”: “Au-
tomatic xc9500”) para poder obtener las Ecuaciones Reducidas, las que podrá encontrar en el “Design Summar-
y/Reports”, en la sección “Equations”. En función de dichas ecuaciones, genere un Esquema Funcional (con las
compuertas, pastillas, números de los pines, voltajes y conexiones correspondientes).
Pág. 10 de 12
UNIVERSIDAD TÉCNICA FEDERICO SANTA MARÍA
DEPARTAMENTO DE ELECTRÓNICA
ELO212 - Laboratorio de Sistemas Digitales
Primer Semestre 2015
5. En el Laboratorio
5.1. ALU
Mostrar al profesor o ayudante la implementación y simulación de la ALU requerida en el punto 4.2 de la Parte
Previa. ¿Cuántas combinaciones se requieren para realizar un test exhaustivo? ¿Qué tipo(s) de test implementó? ¿Es
exhaustivo? ¿Por qué?
¿Cómo se refleja el aumento de operaciones en la implementación? ¿Hubo alguna modificación en la cantidad de
bits de entrada o de salida al aumentar las operaciones? ¿Hay diferencias en la implementación de las operaciones en
Verilog si los operandos son de 4, 8, 16 o 32 bits?
5.2. Mediciones
Arme en una protoboard una configuración básica de un flip-flop JK (7473) en modo toggle, y un inversor 7404
(sı́rvase como ayuda la Fig. 4). Use un generador de pulsos como entrada del reloj para el caso del flip-flop, antes
de conectar valide que el generador esté configurado y operando como corresponde (utilice puntas BNC-Caimán para
ver la señal análoga en el osciloscopio). ¿Cuál es la amplitud de la señal que debe utilizar? ¿Debe tener componente
continua? ¿Por qué?
Usando el osciloscopio (previa lectura del manual/tutorial del mismo), mida el tiempo de subida del generador
de señales. Aplique esa señal a la entrada del flip-flop y del inversor. Mida el retardo de propagación para cada
componente observando en el osciloscopio ambas mediciones en forma simultánea. Compare con lo indicado por el
fabricante, ¿cuál es la diferencia? ¿es una diferencia aceptable? ¿por qué?
Luego, mida los umbrales de los niveles lógicos de cada componente (flip-flop e inversor). Para ello, utilice un
tester (y/o puntas BNC-Caimán para ver la señal análoga en el osciloscopio) y un potenciómetro multivueltas para
variar el voltaje de entrada de ambas componentes. Compare con la definición del fabricante tanto el umbral inferior
para el “1”-lógico y el umbral superior para el “0”-lógico.¿Son los valores aceptables? ¿Por qué?
NOTA: Cada vez que se le solicite realizar una medición deberá considerar que se refiere a realizar al menos 10
mediciones distintas (o más si es que alguna de ellas es descartada), tabular, obtener promedios y calcular el porcentaje
de error respecto al valor esperado (valor propuesto por el fabricante, valor nominal o teórico).
Pág. 11 de 12
UNIVERSIDAD TÉCNICA FEDERICO SANTA MARÍA
DEPARTAMENTO DE ELECTRÓNICA
ELO212 - Laboratorio de Sistemas Digitales
Primer Semestre 2015
Implemente el circuito según el Esquema Funcional que realizó para el punto 4.3 de esta guı́a. Identifique las
etapas del circuito, mida los retardos de cada etapa y el retardo total del circuito. Realice diversas pruebas estáticas
para validar el comportamiento. ¿Cuáles son los valores teóricos de retardo de cada etapa? ¿Corresponden los valores
medidos a los valores esperados? ¿Por qué?
Diseñe un módulo que tenga como entrada (e) una palabra de 16 bits, y como salida (s) una de 32 bits. Adicional-
mente, debe tener una señal de entrada (ctl) de 2 bits que permitirá elegir entre 4 distintas operaciones a realizar por el
módulo y que se describen a continuación.
Cuando ctl = 0, deberá agrupar los 1’s de la entrada para que aparezcan al centro de la palabra de salida. Si
el número de unos es impar, el lado derecho de la salida tendrá que tener un uno más que el de la izquierda.
Ejemplo:
Cuando ctl = 1, deberá tomar los 1’s de la entrada e intercalarlos con 0’s a la salida. El primer uno a escribir en
la salida debe estar en la posición menos significativa. Ejemplo:
Cuando ctl = 2, deberá tomar los 1’s e intercalarlos como en el punto anterior, pero empezando con el bit menos
significativo igual a 0. Ejemplo:
Cuando ctl = 3 se deberá hacer el xor entre la salida del caso 1 (los unos intercalados) y una palabra de 32
bits cuyos 16 bits menos significativos corresponden a una palabra formada por la repetición de los 8 bits menos
significativos de la entrada; y los siguientes 16 bits más significativos corresponden a los 8 bits más significativos
de la entrada repetidos. Ejemplo:
Pág. 12 de 12