Professional Documents
Culture Documents
2
10 ms 10... 100! Anlisis de sistemas digitales bsicos
INTRODUCCIN
Uno de los componentes principales de un procesador es la unidad aritmtico/lgica; en ella se ejecutan, entre otras, las operaciones aritmticas y lgicas bsicas. En esta prctica vamos a analizar las ms sencillas: las operaciones lgicas NOT, AND y OR, y la operacin aritmtica ms simple, la suma de nmeros naturales. amos a construir dichas operaciones en un circuito programable, tras lo cual comprobaremos su funcionamiento. Utilizaremos para ello una tarjeta para prototipos de sistemas digitales, la misma que utilizan las alumnas y alumnos de la facultad, y un software estndar de diseo de amplio uso en la industria.
DESCRIPCIN
El procesador de un computador es un sistema que procesa informacin digital. Para representar la informacin o los datos se utilizan cdigos binarios, en los que cada "dgito" o "bit" slo puede tomar uno de dos valores: 0 o 1. Esos valores se conocen con el nombre de valores lgicos; a menudo, tambin se conocen como verdadero (1) y falso (0).
IF- EHU
Los computadores estn compuestos por circuitos digitales, que procesan cdigos en binario. Algunos circuitos realizan operaciones muy simples, y otros, en cambio, operaciones muy complejas. En esta prctica en el laboratorio vamos a analizar algunos de los circuitos digitales ms sencillos: 1. 2. primeramente, los circuitos que realizan las tres operaciones lgicas bsicas: NOT (negacin lgica), OR (suma lgica) y AND (producto lgico). y, a continuacin, un circuito que efecta la operacin aritmtica bsica, la suma; en este caso, un sumador de dos nmeros naturales de 4 bits.
Para analizar el comportamiento de esos circuitos vamos a utilizar una herramienta de diseo de sistemas digitales bastante compleja: Quartus II, de la casa Altera. Se trata de una herramienta software muy conocida y utilizada tanto en la industria como en la universidad. Con esa herramienta podemos definir y dibujar el circuito, especificar sus entradas (la informacin que procesa) y sus salidas (los resultados que produce), y, finalmente, integrar el sistema lgico en un chip programable. Junto con ese programa, utilizaremos una tarjeta de desarrollo de prototipos, denominada DE2. Esta tarjeta se utiliza para el diseo y verificacin de prototipos antes de su fabricacin; junto con el chip programable, la tarjeta incluye un conjunto de elementos de ayuda para la verificacin del diseo: interruptores (para indicar entradas binarias, 1/0), diodos LED y dgitos (para visualizar datos), una pequea pantalla LCD, etc. La figura 1 muestra la tarjeta de prototipos. Hacia el centro se encuentra el dispositivo programable de tipo FPGA (el chip EP2C35F672C6N de la familia Cyclone II) en el que programaremos nuestros diseos; en la parte inferior estn los interruptores (en ingles, switch) que vamos a utilizar para introducir datos y los diodos LED; en la izquierda, la pantalla LCD y los dgitos "7 segmentos".
IF - EHU
1. Abre el proyecto ateak.qpf (se abrir una ventana del programa QuartusII); a
continuacin, abre el fichero ateak.bdf. Aparecer en la pantalla el siguiente esquema lgico:
SW[17]
INPUT VCC
NOT
notA
OUTPUT
LEDR[17]
inst
SW[16] SW[15]
B C
AND2
BandC inst1
OUTPUT
LEDR[16]
SW[14] SW[13]
D E
OR2
DorE inst2
OUTPUT
LEDR[15]
Figura 2. Las tres puertas lgicas bsicas: puerta NOT, puerta AND y puerta OR. sos son lo smbolos lgicos que se utilizan para indicar cada una de las tres puertas lgicas.
2. Ahora bien, dibujar el circuito no es suficiente. Ahora hay que programar el circuito en el
chip FPGA de la tarjeta de pruebas, para lo que previamente hay que completar el diseo con la informacin sobre qu componentes de la tarjeta (switches, LEDs...) se asocian a las entradas y salidas de nuestro circuito. Para hacer las pruebas ms rpido, ya hemos aadido esa informacin al esquema lgico; en concreto, vamos a utilizar los siguientes interruptores (switches) y diodos LED de la tarjeta:
IF- EHU
Ya tenemos el sistema digital listo para programarlo en el chip FPGA. El proceso es sencillo; sigue las instrucciones del profesor. Listo! Has diseado tu primer circuito digital. Ahora, querrs comprobar cmo funciona no? Para ello basta con aplicar a las entradas de los circuitos alguno de los dos valores 0 o 1 mediante los interruptores correspondientes y visualizar el resultado mediante un diodo LED. Recuerda: si el diodo se ilumina, el resultado es 1, y si no se ilumina, el resultado es 0. Anota los resultados que obtengas en las tablas siguientes teniendo en cuenta que has de comprobar todas las combinaciones posibles de las entradas. > Comportamiento lgico de la puerta NOT (una entrada y una salida) A A not A 0 1 not A
> Comportamiento lgico de la puerta AND (dos entradas y una salida) B B C B and C C B and C
Las tablas que acabas de rellenar se conocen como tablas de verdad, y suelen utilizarse para especificar el comportamiento de los circuitos lgicos ms sencillos.
IF - EHU
adder
A[3..0]
dataa[3..0]
B[3..0]
A A+B datab[3..0] B
inst
result[3..0]
A+B[3..0]
overflow
OVF
Figura 3. Sumador (en ingls, adder) bsico de dos nmeros de 4 bits, A y B. Como resultado, el sistema ofrece la suma, A+B, y la seal OVF (llevada).
1. Antes que nada, Cuntos nmeros naturales pueden codificarse con 4 bits? Qu cdigo
corresponde a esos nmeros? Recuerda que los procesadores operan siempre con datos en base 2 y no en base 10. Repasemos los cdigos binarios. Completa para ello la tabla siguiente:
Nmero natural 0 1 2 Cdigo binario (4 bits) 0000 0001 0010 Nmero natural Cdigo binario (4 bits)
IF- EHU
2. Abre el proyecto batugailua.qpf (se abrir una ventana del programa QuartusII), y,
a continuacin, el fichero con el esquema del sumador batugailua.bdf. En la figura siguiente se representa el esquema que contiene dicho fichero:
adder
A[3..0]
dataa[3..0] datab[3..0]
inst
dec7seg
B[3..0]
A A+B B
result[3..0]
HEX0[6..0]
overflow
LEDR[8]
Figura 4. Sumador y descodificador 7 segmentos. En la figura se observa que adems del circuito sumador se ha aadido otro mdulo: un descodificador. Este componente, que se conoce como descodificador 7 segmentos, nos permite visualizar el resultado de la suma, que est en binario, de manera ms cmoda, mediante un dgito de "7 segmentos".
IF - EHU
4. Ahora repite los pasos del ejercicio anterior para programar el circuito.
A continuacin, hay que verificar cmo funciona el circuito, haciendo diferentes pruebas. Por ejemplo, prueba los casos que aparecen en la siguiente tabla y rellnala con los resultados que obtengas.
A
decimal 0 4 1 8 11 9 binario decimal 3 5 6 2 2 8
B
binario decimal
A+B
binario
OVF
Se ha activado la seal de overflow en algn caso? Por qu? Propn otro caso que genere tambin llevada u overflow.
Has finalizado el trabajo asignado a esta prctica. Los circuitos que has analizado son tpicos en cualquier sistema digital que procesa seales binarias. Por ejemplo, el circuito que realiza la suma de nmeros naturales es el elemento bsico de la unidad aritmtico/lgica, que es un subsistema imprescindible en todo procesador. Naturalmente, ese subsistema suele ser mucho ms complejo que el hemos analizado, ya que se disea para realizar un conjunto amplio de operaciones: sumas, restas, multiplicaciones, divisiones... y, adems, los datos suelen admitir diferentes formatos de representacin. Estas cuestiones y otras muchas ms se estudian en las asignaturas que puedes cursar si te animas a estudiar con nosotros.
IF- EHU
>
>
>
>
>
IF - EHU
1.
Teniendo en cuenta el comportamiento de las tres puertas lgicas que has analizado en esta prctica, Cul ser la respuesta de estos circuitos para las diferentes combinaciones de los valores (1 / 0) de las entradas?
B A
A 0
B 0
B A C
A
Y
B 0
C 0
IF- EHU
2.
Cul es el mximo nmero entero que se puede codificar con 32 bits? y con 64 bits?
Cuntos bits se necesitan para codificar el nmero natural 777, y qu cdigo le corresponde?
3.
Para las sumas que se indican en binario, en las que los datos y el resultado son de 6 bits, cul es el resultado en binario de cada suma? en qu caso(s) se producir desbordamiento en la suma? (a) 011001 + 110110 (b) 000001 + 100000 (c) 101100 + 010011
10