Академический Документы
Профессиональный Документы
Культура Документы
El diseo que ahora explicamos consiste en sumar o restar dos nmeros de cuatro bits cada
uno, en representacin en complemento a 2. Se usa la extensin de signo para poder sumar (o
restar) sin errores, arrojando un resultado tambin en complemento a 2, pero de cinco bits de ancho.
La figura 1 exhibe el file esquemtico de ABEL-HDL que consta de cinco sumadores completos y
cinco compuertas bsicas, todos ellos elementos de la biblioteca de ispLEVEL starter de Lattice.
Notar que la seal A3 se replica en el ltimo sumador completo, mientras que B3 tambin es
replicada en dicho sumador. Eso se hace para cambiar internamente la representacin de cuatro a
cinco bits, pues ahora el bit MSB (el de signo) es el quinto bit para ambos nmeros, sin cambiar el
valor original. Esta propiedad interesante de los nmeros en complemento a 2 se le llama extensin
de signo. Al hacerlo as, si se sumas dos positivos el resultado ser positivo, al sumar dos negativos
tal resultado ser negativo; tambin: al restar un negativo a un positivo el resultado ser positivo,
como debe ser, y si restamos un positivo de un negativo el resultado ser negativo.
Prof.. S. Saucedo
ICE/2007
La seal Co no tiene ningn uso, pero se enva a terminales para que no existan errores en la
compilacin. La figura 2 muestra la distribucin de los pines hecha por el software de desarrollo.
La siguiente tabla ilustra el valor de cada combinacin de bits para cuatro y cinco bits.
Positivos 4b
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
Negativos 4b
1 0 0 0 -8
1 0 0 1 -7
1 0 1 0 -6
1 0 1 1 -5
1 1 0 0 -4
1 1 0 1 -3
1 1 1 0 -2
1 1 1 1 -1
Positivos 5b
00000 0
00001 1
00010 2
00011 3
00100 4
00101 5
00110 6
00111 7
Positivos 5b
01000
8
01001
9
0 1 0 1 0 10
0 1 0 1 1 11
0 1 1 0 0 12
0 1 1 0 1 13
0 1 1 1 0 14
0 1 1 1 1 15
Negativos 5b
1 0 0 0 0 -16
1 0 0 0 1 -15
1 0 0 1 0 -14
1 0 0 1 1 -13
1 0 1 0 0 -12
1 0 1 0 1 -11
1 0 1 1 0 -10
1 0 1 1 1 -9
Negativos 5b
11000
-8
11001
-7
1 1 0 1 0 -6
1 1 0 1 1 -5
1 1 1 0 0 -4
1 1 1 0 1 -3
1 1 1 1 0 -2
1 1 1 1 1 -1
ICE/2007
" salidas
S4..S0, Co pin istype 'com';
A = [A3..A0];
B = [B3..B0];
S = [S4..S0]; " Numero con
test_vectors
([A, B, R] -> [S, Co])
[0, 0, 0] -> [0, X];
[5, 5, 0] -> [10,X];
[8, 5, 0] -> [X, X]; " -8 +
[10, 5, 1] -> [21,X]; " -6 [12, 5, 1] -> [23,X]; " -4 [15, 5, 1] -> [26,X]; " -1 -
signo de 5 bits
5
5
5
5
=
=
=
=
-3
-11
-9
-6
[15,15,
[15, 5,
[5, 12,
[12,14,
[1, 5,
0]
0]
1]
1]
1]
->
->
->
->
->
[30,X];
[4, X];
[9, X]; " 5 - (-4) = 9
[30,X]; " -4 - (-2) = -2
[X, X]; " 1 - 5 = -4
[3, 9,
[8, 7,
[4, 11,
[12, 5,
0]
0]
1]
1]
->
->
->
->
[28,X];
[31,X]; " -8 + 7 = -1
[9, X]; " 4 - (-5) = 9
[X, X]; " -4 - 5 = -9
END
Figura 3 Listado fuente de los vectores de prueba propuestos para simular.
En la figura 4 se muestran la respuesta en el tiempo para diferentes entradas, cada una de las
cuales es un vector dado en el file de texto tipo .ABV.
Prof.. S. Saucedo
ICE/2007
Prof.. S. Saucedo
ICE/2007