Вы находитесь на странице: 1из 8

Departamento de Tecnologa Electrnica Ejercicio 14.

Sumador/restador

Diseo digital con esquematicos y FPGA. v1.6 - 09/05/2008 63
14. Sumador/restador
Queremos hacer un circuito que reste, para ello podramos hacer un circuito restador de un bit a partir de la
tabla de verdad de la resta. Esto se hara de manera similar a como se hace el semi-sumador y el sumador
completo (ver figuras 13.1 y 13.2). Y aunque esto es un buen ejercicio que conviene que sepas hacer, en esta
prctica vamos a aprovechar los conocimientos de representacin numrica que vimos en el tema 2. En aquel
tema vimos que usando el complemento a 2 (Ca2) podamos realizar una resta sumando. As que nos
ahorramos realizar un nuevo bloque restador y lo que haremos ser calcular el complemento a dos del
sustraendo y sumarlo al minuendo.
14.1. Especificaciones
Sumador/restador de dos nmeros de 4 bits. El circuito debe sumar o restar dos nmeros codificados en
complemento a 2 con 4 bits (OPA y OPB) y cuyos valores estarn determinados por la posicin de los
interruptores de la placa. El circuito mostrar en el display de la derecha el resultado de la suma o la resta.
Los operandos vendrn dados por los interruptores. El minuendo (o uno de los sumandos: OPA) se codificar
mediante los 4 interruptores de la derecha (de SW0 a SW3), y el sustraendo (o el otro sumando: OPB) con los
cuatro interruptores de la izquierda (de SW4 a SW7). Recuerda que los nmeros vienen codificados en
complemento a 2.
EL pulsador BTN0 indicar qu operacin se realiza. Cuando est pulsador se har la resta, mientras que
cuando no est pulsado se efectuar la suma.
El resultado de la operacin (suma o resta) se mostrar por el primer display de 7 segmentos. El resultado se
deber mostrar en el display en signo magnitud (para que lo podamos entender los humanos). Para mostrar
el signo negativo se utilizar el punto decimal, es decir, si el punto decimal est luciendo significa que el
resultado es el nmero mostrado pero negativo.
En caso de que haya desbordamiento (overflow) el display mostrar la letra E.
Adems los cuatro LED de la derecha (de LD0 a LD3) mostrarn el resultado directo (en complemento a 2).
El resultado se dar por el display de siete segmentos de la derecha. Se usar LD7 para el acarreo de salida y
LD6 para el desbordamiento en la resta. El pulsador BTN0 se usar para indicar que se realiza la suma o la
resta. Cuando BTN0 est pulsado se mostrar la suma, cuando no est pulsado se mostrar la resta.
14.2. Diagrama de bloques
Primero vamos a realizar el bloque sumador/restador y posteriormente estudiaremos cmo implementamos
la parte de la visualizacin por el display. Esto es comn en el diseo de circuitos digitales, cuando un
problema es grande es conveniente dividirlo y abordar cada una de sus partes de manera separada.
Posteriormente se une cada uno de los bloques. Incluso, para diseos muy grandes, cada parte la realizan
personas o grupos diferentes y luego otros se encargan de unirlo todo y de comprobar que funciona bien.
As que lo primero que hacemos es un esquema preliminar que seguramente no sea definitivo y que al ir
realizando cada bloque puede que necesitemos realizar alguna modificacin. El esquema mostrado en la
figura 14.1 puede ser un ejemplo de esto. En l hay un bloque que se encarga de realizar las operaciones de
suma o resta, y otro bloque de mostrar el resultado de la operacin en el display de siete segmentos.
OPB(3:0)
+ , -
SUMADOR/RESTADOR
RES_SUM
OPA(3:0)
4
4
4
RESUL(3:0)
VISUALIZACION
8
A
G
D
B
C
F
E
C
OV
LEDS
Indica si se
suma o se resta
acarreo
desbordamiento
SUMA: RES_SUM='1'
RESTA: RES_SUM='0'
OPB(3:0)
+ , -
SUMADOR/RESTADOR
RES_SUM
OPA(3:0)
4
4
4
RESUL(3:0)
VISUALIZACION
8
A
G
D
B
C
F
E
A
G
D
B
C
F
E
C
OV
LEDS
Indica si se
suma o se resta
acarreo
desbordamiento
SUMA: RES_SUM='1'
RESTA: RES_SUM='0'

Figura 14.1. Esquema inicial del sumador restador con visuali:acion


Departamento de Tecnologa Electrnica Ejercicio 14. Sumador/restador

Diseo digital con esquematicos y FPGA. v1.6 - 09/05/2008 64
En los siguientes subapartados iremos refinando el diseo.
14.2.1. Bloque sumador/restador
Conceptualmente, lo que tenemos que hacer es seleccionar la entrada del sustraendo o segundo sumando
(OPB), de modo que cuando tengamos que restar, la entrada B del sumador tenga el complemento a 2 de OPB;
mientras que cuando tengamos que sumar, entre directamente el nmero OPB. Esto se muestra en la figura
14.2, en donde tenemos el mdulo CA2 que transforma la seal OPB en su complemento a dos. Y tenemos un
multiplexor que selecciona la seal B complementada o no, segn si hay que restar o sumar: si RES_SUM=0 se
resta, si RES_SUM=1 es suma.
OPA(3:0)
SUM4BITS
S(3:0)
CO
CI
4
4
4
0
1
RES_SUM
A(3:0)
B(3:0)
S(3:0)
OPB(3:0)
4
4
CA2
Ca2(B)
OPA(3:0)
SUM4BITS
S(3:0)
CO
CI
4
4
4
0
1
RES_SUM
A(3:0)
B(3:0)
S(3:0)
OPB(3:0)
4
4
CA2
Ca2(B)

Figura 14.2. Esquema inicial del modulo sumador/restador (sin visuali:acion)
Se podra realizar el diseo as, sin embargo los diseadores digitales han tendido siempre a minimizar el
nmero de bloques y puertas del diseo. En este caso se puede hacer una versin ms compacta. Esto
ocurra sobre todo hace unos aos, cuando tenan que hacer el diseo en componentes discretos o con
dispositivos programables con poco espacio. Ahora esto no es tan crtico, an as, a continuacin veremos
cmo hacer el circuito ms compacto.
El complemento a dos de un nmero se realiza complementando cada bit y aadindole 1 al resultado. Y
podramos realizarlo como se muestra en la figura 14.3, utilizando el sumador de cuatro bits para aadir 1.
SUM4BITS
S(3:0)
CO
CI
4
4 A(3:0)
B(3:0)
S(3:0)
OPB(3:0)
VCC
4
complementar
cada bit
Acarreo de entrada '1' :
sumamos 1
Ca2(B)
El resultado es el
complemento a 2 de B
El otro sumando
vale '0'
tambien se podia poner el
acarreo de entrada a cero
y poner un uno en A(0)
SUM4BITS
S(3:0)
CO
CI
4
4 A(3:0)
B(3:0)
S(3:0)
OPB(3:0)
VCC
4
complementar
cada bit
Acarreo de entrada '1' :
sumamos 1
Ca2(B)
El resultado es el
complemento a 2 de B
El otro sumando
vale '0'
tambien se podia poner el
acarreo de entrada a cero
y poner un uno en A(0)

Figura 14.3. Circuito que calcula el complemento a 2 de un numero de cuatro bits
Pero si nos fijamos en las figuras 14.2 y 14.3, vemos que ambas utilizan un sumador de 4 bits, y que, por un
lado la figura 14.2 no utiliza el acarreo de entrada CI (est a tierra), mientras que la figura 14.3 no utiliza la
entrada A. As que podemos utilizar el mismo sumador para las dos operaciones. Cuando queramos hacer la
resta, por la entrada B del sumador entrar el complemento de cada bit de OPB, y pondremos el acarreo de
entrada a 1 (CI='1'). Cuando queramos hacer la suma, por B entrar directamente la seal OPB, y pondremos
el acarreo de entrada a 0 (CI='0'). Entonces el circuito quedara como muestra la figura 14.4.


Departamento de Tecnologa Electrnica Ejercicio 14. Sumador/restador

Diseo digital con esquematicos y FPGA. v1.6 - 09/05/2008 65
OPA(3:0)
SUM4BITS
S(3:0)
CO
CI
4
4
4
0
1
RES_SUM
A(3:0)
B(3:0)
S(3:0)
OPB(3:0)
4
4
SUMA: RES_SUM='1' CI='0'
RESTA: RES_SUM='0' CI='1'
OPA(3:0)
SUM4BITS
S(3:0)
CO
CI
4
4
4
0
1
RES_SUM
A(3:0)
B(3:0)
S(3:0)
OPB(3:0)
4
4
SUMA: RES_SUM='1' CI='0'
RESTA: RES_SUM='0' CI='1'

Figura 14.4. Otra version del circuito sumador/restador (sin visuali:acion)
Pero esto todava no es el circuito final, ya que los inversores y el multiplexor an se pueden sustituir por
algo ms pequeo. Con el multiplexor estamos eligiendo la seal OPB complementada o no segn el valor de
RES_SUM. Esto es equivalente a utilizar una XNOR, ya que segn el valor de una entrada deja pasar la otra tal
cual o complementada (ver figura 14.5).
0
1
Sel
B
S
Sel B S
0 0 1
0 1 0
1 0 0
1 1 1
Sel0 SB
Sel1 SB
B
S
Sel
equivalente a XNOR
0
1
Sel
B
S
Sel B S
0 0 1
0 1 0
1 0 0
1 1 1
Sel0 SB
Sel1 SB
B
S
Sel
B
S
Sel
equivalente a XNOR

Figura 14.5. Equivalencia entre el circuito con multiplexor v el circuito con puerta XNOR
Quiz te sorprenda que se utilice una XNOR y no una XOR, ya que eso es lo que vimos en teora. Esto se
debe a que la seal de sumar/restar (RES_SUM) est complementada. En este ejercicio se suma cuando
RES_SUM=1, mientras que en la teora se suma cuando vale cero. Es por esto que sale una XNOR, ya que la
XNOR es equivalente a una XOR con una de las entradas negadas. Esta entrada negada es la seal RES_SUM.
En la figura 14.6 se muestra esta equivalencia.
B
S
Sel
B
S
Sel
equivoIenfe equivoIenfe
B
S
Sel
B
S
Sel
B
S
Sel
B
S
Sel
B
S
Sel
B
S
Sel
equivoIenfe equivoIenfe
B
S
Sel
B
S
Sel

Figura 14.6. Equivalencia entre puertas XNOR v XOR
As que cambiamos los multiplexores e inversores por las puertas XOR, y nos queda el circuito de la figura
14.7.
OPA(3:0)
SUM4BITS
S(3:0)
CO
CI
4
4
A(3:0)
B(3:0)
S(3:0)
4
SUMA: RES_SUM='1' CI='0'
RESTA: RES_SUM='0' CI='1'
OPB(3)
OPB(2)
OPB(1)
OPB(0)
RES_SUM
OPA(3:0)
SUM4BITS
S(3:0)
CO
CI
4
4
A(3:0)
B(3:0)
S(3:0)
4
SUMA: RES_SUM='1' CI='0'
RESTA: RES_SUM='0' CI='1'
OPB(3)
OPB(2)
OPB(1)
OPB(0)
RES_SUM

Figura 14.7. Penultima version del circuito sumador/restador (sin visuali:acion)
Bueno, quizs podamos pensar que la figura 14.7 corresponde el diseo definitivo, pero no es as, ya que
tenemos que ocuparnos del acarreo de salida y el desbordamiento. El acarreo de salida se deja como est,
para as poder conectar varios sumadores/restadores en cascada.
Pero el desbordamiento hay que analizarlo. Como estamos trabajando en complemento a dos, el
desbordamiento funciona de manera diferente. Cundo se desbordaba la suma en complemento a dos?


Departamento de Tecnologa Electrnica Ejercicio 14. Sumador/restador

Diseo digital con esquematicos y FPGA. v1.6 - 09/05/2008 66
cuando los sumandos tienen el mismo signo y el resultado tenga el signo contrario. Si no te acuerdas de esto
repasa los ejercicios propuestos del tema 2. De todos modos en la figura 14.8 se muestra un ejemplo para
refrescarte la memoria.
0011
+0101
1000
3
+5
8
al estar en Ca2
representa a
-8
Cambio de signodesbordamiento
No es representable
en Ca2 de 4 bits
distintos
00110101 0011+Ca2(0101)
Ca2(0101)=1011
0011
+1011
1110
3
10
-5
10
-2
10
-2
10
Es representable
en Ca2 de 4 bits
iguales
signos diIerentes: no hay desbordamiento
0011+0101
suma resta
este es OPB y por ser suma
coincide con B
este es B
este es OPB
0011
+0101
1000
3
+5
8
al estar en Ca2
representa a
-8
Cambio de signodesbordamiento
No es representable
en Ca2 de 4 bits
distintos
0011
+0101
1000
3
+5
8
al estar en Ca2
representa a
-8
Cambio de signodesbordamiento
No es representable
en Ca2 de 4 bits
distintos
00110101 0011+Ca2(0101)
Ca2(0101)=1011
0011
+1011
1110
3
10
-5
10
-2
10
-2
10
Es representable
en Ca2 de 4 bits
iguales
signos diIerentes: no hay desbordamiento
0011
+1011
1110
3
10
-5
10
-2
10
-2
10
Es representable
en Ca2 de 4 bits
iguales
signos diIerentes: no hay desbordamiento
0011+0101
suma resta
este es OPB y por ser suma
coincide con B
este es B
este es OPB

Figura 14.8. Desbordamiento en sumas en complemento a dos
As que lo que tenemos que hacer es comprobar el cambio de signo entre los operandos y el resultado,
siempre que los operandos tengan el mismo signo. Para ello podramos hacer la tabla de verdad y calcular la
funcin lgica del desbordamiento (overflow). Eso ya sabes como se hace (figura 14.9).
B(3)
A3 B3 S3 OV
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 0
A(3)
S(3)
OV
B(3)
A3 B3 S3 OV
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 0
A(3)
S(3)
OV

Figura 14.9. Tabla de verdad v circuito que calcula el desbordamiento en complemento a 2
Por ltimo, decir que el desbordamiento todava se puede calcular de manera ms simplificada, haciendo la
XOR del acarreo de salida, con el penltimo acarreo. Esto se muestra en la figura 14.10, en la que se ha
dibujado el sumador/restador con los bloques sumadores de un bit.
A B
CI CO
S
A B
CI CO
S
A B
CI CO
S
A B
CI CO
S
A3
B3
A2
B2
A1 A0
S3 S2 S1 S0
CO
C0 C1 C2 RES_SUM
Desbordamiento
B1 B0
DE
A B
CI CO
S
A B
CI CO
S
A B
CI CO
S
A B
CI CO
S
A3
B3
A2
B2
A1 A0
S3 S2 S1 S0
CO
C0 C1 C2 RES_SUM
Desbordamiento
B1 B0
DE

Figura 14.10. Otra alternativa para calcular el desbordamiento en complemento a 2
14.2.2. Bloque de visualizacin
El bloque de visualizacin recibe un nmero en complemento a 2 de cuatro bits, una seal de
desbordamiento (OV), y debe mostrar en un display de 7 segmentos el nmero resultante en signo y
magnitud. En caso de que el nmero fuese negativo, mostrar el correspondiente nmero positivo y el signo
menos se indicar encendiendo el punto decimal del display. Cuando haya desbordamiento se mostrar la
letra E.
Lo primero que podemos hacer es analizar el rango de datos que vamos a mostrar. Como son nmeros en
complemento a dos de 4 bits, el menor nmero ser -8 y el mayor 7. As que para estos nmeros nuestro
convertidos de 7 segmentos funciona, adems podemos mostrar la letra E, sin que se preste a confusin, ya
que el nmero 14 en hexadecimal (E: 1110
2
) nunca se mostrar (por ser el rango menor).
Tenemos tres casos:
Siempre que OV='1' entonces mostraremos la letra E
Si OV='0' y S(3)='0', significar que tenemos un nmero positivo, por lo tanto lo mostramos tal cual


Departamento de Tecnologa Electrnica Ejercicio 14. Sumador/restador

Diseo digital con esquematicos y FPGA. v1.6 - 09/05/2008 67
Si OV='0' y S(3)='1', significar que tenemos un nmero negativo, y por lo tanto tendremos que calcular su
complemento a 2 y encender el punto decimal.
Cuando tenemos condiciones de tipo "Si.... entonces", stas se pueden implementar fcilmente con un
multiplexor. En la figura 14.11 se muestra esta "traduccin".
7
A
G
D
B
C
F
E
1 0 OV
I(3:0)
HEX7SEG
SEG(6:0)
4
1110
El numero 14
muestra la E
Ca2
1 0 S(3)
4
S(3:0)
SEG_DT S(3)
7
A
G
D
B
C
F
E
A
G
D
B
C
F
E
1 0 OV
I(3:0)
HEX7SEG
SEG(6:0)
4
1110
El numero 14
muestra la E
Ca2
1 0 S(3)
4
S(3:0)
SEG_DT S(3) SEG_DT S(3)

Figura 14.11. Diagrama de bloques del modulo de visuali:acion
En esta figura ya tenemos hechos los multiplexores y el convertidor a 7 segmentos (HEX7SEG). Nos faltara por
hacer el mdulo que se encarga de calcular el complemento a dos de la seal S(3:0), ste ya lo vimos en la
figura 14.3.
Antes de comenzar a disear, acurdate que la representacin en complemento a 2 no era simtrica, y por
tanto, haba un nmero negativo ms que positivo. En nuestro ejemplo, para cuatro bits, existe el -8 pero no
el +8. Por tanto, si se calcula el complemento a 2 de -8 (S=1000) resulta el mismo nmero (1000). Qu
sucedera en este caso? Qu pasa si queremos representar el nmero -8? Si pones los valores en el circuito
para este caso (ver figura 14.12), obtenemos el -8 en el display a pesar de que el complemento a dos no se
puede calcular. Pero como la representacin sale bien, lo realizaremos as.
7
A
G
D
B
C
F
E
1 0 OV
I(3:0)
HEX7SEG
SEG(6:0)
4
1110
Ca2
1 0 S(3)
4
S(3:0)
SEG_DT S(3)
1
1000
1000 1000
1000
0
0
1000
Se muestra un 8
1 encendera el punto:
signo
7
A
G
D
B
C
F
E
A
G
D
B
C
F
E
1 0 OV
I(3:0)
HEX7SEG
SEG(6:0)
4
1110
Ca2
1 0 S(3)
4
S(3:0)
SEG_DT S(3) SEG_DT S(3)
1
1000
1000 1000
1000
0
0
1000
Se muestra un 8 Se muestra un 8
1 encendera el punto:
signo

Figura 14.12. Diagrama de bloques v valores para cuando el resultado sea -8


Departamento de Tecnologa Electrnica Ejercicio 14. Sumador/restador

Diseo digital con esquematicos y FPGA. v1.6 - 09/05/2008 68
14.3. Diseo
Creamos un nuevo proyecto llamado addsub. Aadimos una copia de las siguientes fuentes del ejercicio 13
(el sumador)
decod4_16.sch
hex7seg.sch
ha.sch
fa.sch
sum4bits.sch
Y del ejercicio del multiplexor (ejercicio 12), aadimos una copia de:
mux2_4bit.sch
Crea un smbolo para el sumador, convertidor de siete segmentos y el multiplexor de dos entradas con 4 bits.
Primero vamos a crear el bloque sumador/restador (recuerda la figura 14.1 y el apartado 14.2.1). Para ello,
vamos a crear un nuevo fichero de tipo esquemtico para crear el bloque sumador/restador, lo llamamos
addsub.sch y en l implementamos el diseo de la figura 14.7 con el aadido de la parte del desbordamiento
(figura 14.9). Aunque el resultado final se muestra en la figura 14.13, intenta no copiarlo, sino hacerlo t solo,
y si acaso comprobarlo luego. Al terminar crea un smbolo.

Figura 14.13. Esquematico del sumador/restador de 4 bits
Ahora procederemos a crear el bloque de visualizacin (recuerda la figura 14.1 y el apartado 14.2.2). Antes
de hacer la unidad de visualizacin, tenemos que crear el bloque que calcula el complemento a dos de un
nmero de 4 bits (mira este bloque en la figura 14.11). Creamos una nueva fuente llamada ca2.sch, y en ella
creamos el diseo de la figura 14.3. En la figura 14.14 se muestra el esquemtico de este diseo, de l tendrs
que crear un smbolo.

Figura 14.14. Esquematico del circuito Ca2 que calcula el complemento a 2 de un numero
Ahora creamos un nuevo fichero para la unidad de visualizacin, lo vamos a llamar visualiza.sch. En l
implementamos el circuito de la figura 14.11, resultando el esquemtico mostrado en la figura 14.15. Al
terminar, comprueba el esquemtico y crea un smbolo de este circuito.


Departamento de Tecnologa Electrnica Ejercicio 14. Sumador/restador

Diseo digital con esquematicos y FPGA. v1.6 - 09/05/2008 69

Figura 14.15. Esquematico del circuito Jisuali:a, que se encarga de mostrar el resultado por el displav de siete
segmentos
Y ya slo falta crear la unidad de ms alto nivel llamada top_addsub.sch, que se encargar de unir los
bloques sumador/restador y visualiza. El diagrama de bloques se mostr en la figura 14.1 y su realizacin en
el ISE se muestra a continuacin (figura 14.16).

Figura 14.16. Esquematico de la unidad de mas alto nivel del diseo
En la figura 14.16 estn tambin los puertos AN_0, AN_1, AN_2 y AN_3 que eran con los que se controlaban los
displays que iban a lucir (en este caso slo el de la derecha).
Como siempre, una vez que lo hayas terminado, guardas el diseo, lo compruebas, y asignas los pines.
Luego lo implementas en la FPGA.
14.4. Comprobacin del diseo
Buf, este ha sido un diseo con cierta complejidad, as que enhorabuena si has llegado hasta aqu! De todos
modos, an no est todo hecho. Ahora hay que comprobar que el diseo funciona bien. Esto adems nos
valdr para repasar los nmeros en complemento a 2, y sus sumas y restas.
Podemos seguir este esquema para comprobar primero que el display representa bien los nmeros, y luego
las operaciones.
Ponemos todos los interruptores a 0: debe salir un 0 en el display. Ya que estamos haciendo 0-0=0. Todos los
LED van a estar apagados excepto LD7, que estar luciendo. ste es el acarreo de salida, pero como estamos
restando, no se utiliza. Si pulsamos BTN0, veremos que se apaga, ya que al pulsar estamos sumando 0+0.
Recuerda que los cuatro interruptores de la derecha (seal OPA: de SW0 a SW3) codifican el minuendo si estamos
en la resta (BTN0 sin pulsar), as que mantenemos los cuatro interruptores del sustraendo (OPB: de SW4 a SW7) a
cero, y vamos codificando todos los nmeros de OPA. As que:


Departamento de Tecnologa Electrnica Ejercicio 14. Sumador/restador

Diseo digital con esquematicos y FPGA. v1.6 - 09/05/2008 70
Si SW7=SW6=SW5=SW4=SW3=SW2=SW1='0' y SW0='1'. Estamos codificando OPA="0001" y OPB="0000". As
que estamos haciendo 1-0=1. Por tanto el display mostrar un 1, as como los LEDs. Recuerda que LD7,
cambia segn sea resta o suma. El punto decimal deber estar apagado, ya que en nuestro sistema, el
punto representa el signo negativo.
Si SW7=SW6=SW5=SW4=SW3=SW2=SW0='0' y SW1='1'. Estamos codificando OPA="0010" y OPB="0000". As que
estamos haciendo 2-0=2. Por tanto el display mostrar un 2, as como los LEDs.
Si SW7=SW6=SW5=SW4=SW3=SW2='0' y SW1=SW0='1'. Estamos codificando OPA="0011" y OPB="0000". As que
estamos haciendo 3-0=3. Por tanto el display mostrar un 3, as como los LEDs.
Continuamos probando todas las combinaciones de OPA, hasta que SW7=SW6=SW5=SW4=SW3='0' y
SW2=SW1=SW0='1'. Estamos codificando OPA="0111" y OPB="0000". As que estamos haciendo 7-0=7. Por
tanto el display mostrar un 7, as como los LEDs.
Ahora toca codificar hacer que OPA="1000" y OPB="0000". Como las entradas estn en complemento a
dos. estamos haciendo -8-0=-8. Por tanto el display mostrar un -8, con el punto decimal encendido, ya
que representa el signo negativo.
Continuamos variando SW0, SW1 y SW2, de modo que consigamos todos los nmeros negativos desde
-8 hasta -1. Por ejemplo si OPA="1011" y OPB="0000", estamos haciendo -5-0=-5. Por tanto el display
mostrar un -5, con el punto decimal encendido, ya que representa el signo negativo.
Ahora vamos a mantener OPA="0000" y variaremos OPB.
Si OPA="0000" y OPB="0001", y no pulsamos BTN0 (BTN0='0'), entonces estamos haciendo 0-1=-1. Y por
tanto tendremos un -1 en el display (el signo menos lo indica el punto decimal). Los cuatro LED de la
derecha lucirn, ya que -1 en complemento a dos es "1111".
Si pulsamos BTN0 se mostrar un +1, ya que estamos haciendo 0+1=1. Los 4 LED de la derecha se
apagarn.
Podemos continuar haciendo esto hasta OPB="0111" entonces estamos haciendo 0-7=-7. Y por tanto
tendremos un -7 en el display (el signo menos lo indica el punto decimal). En los cuatro LED de la
derecha vendr codificado el nmero "1001", ya que -1 en complemento a dos es 1111.
Si pulsamos BTN0 se mostrar un +7, ya que estamos haciendo 0+7=1. En los 4 LED de la derecha se
codificar 7, esto es "0111".
Pero cuando hacemos que OPB="1000" entonces aparece E. Por qu? estamos haciendo 0-(-8)=+8. Y en
complemento a dos con 4 bits, el +8 no se puede representar. Fjate que luce LD6, que representa el
desbordamiento de la resta.
Sin embargo, si pulsamos BTN0, estamos haciendo 0+(-8)=-8, lo que s se puede representar, y debe
salir el 8, con el punto decimal. Fjate tambin que se apaga LD6.
El resto de combinaciones de OPB son representables, por ejemplo, si OPB="1001" entonces estamos
haciendo 0-(-7)=7, que s se puede representar, y debe salir un 7 en el display, sin punto decimal, y en
los LED de la derecha "0111", y LD6 apagado.
Pulsando BTN0 obtenemos -7, ya que hacemos 0+(-7)=-7.
Ahora prueba cualquier otra combinacin de nmeros, entiende qu estas representando y qu operacin
haces, y comprueba que est bien.
Si, has comprobado que sale todo bien, ya sabes hacer una pequea calculadora! aunque sea un poco
rudimentaria y con slo dos operaciones.

Вам также может понравиться