Академический Документы
Профессиональный Документы
Культура Документы
Multiplicador Binario
La multiplicación de dos números binarios se hace con papel y lápiz por sumas sucesivas y
corrimientos. Este proceso se ilustra de mejor manera con un ejemplo numérico. Vamos a
multiplicar los dos números binarios 11011 y 10110
27 11011 multiplicando
22 10110 multiplicador
._____.
00000
11011
11011
00000
11011
.____________
594 1001010010
El proceso consiste en observar los bits sucesivos del multiplicador, empezando con el bit menos
significativo. Si tal bit es 1 el multiplicando se copia abajo. En caso contrario los 0s se copian
abajo. Los números que se copian abajo se corren una posición a la izquierda del número previo.
Al final, los números se adicionan y sus sumas forman el producto, como se hace para el caso
decimal que aprendimos desde la infancia. Obsérvese, que el producto de dos números binarios
de n bits puede ser hasta 2n bits de largo.
Se desea usar una GAL para multiplicar dos números de tres bits cada uno. El primer número al
que designamos con A sólo puede tomar los valores de 0 a 5, mientras que el segundo número
varía entre 0 y 7. La salida será de seis bits, pues el producto máximo es 35, que requiere de seis
bits para su representación.
Se empleará una tabla de verdad con condiciones “no importa”, misma que se define de manera
compacta, según ilustra la figura 1. El diseño es puramente combinatorio.
[ 0, 1, 1, 0, 0, 1]->[ 0, 0, 0, 0, 1, 1];
[ 0, 1, 1, 0, 1, 0]->[ 0, 0, 0, 1, 1, 0];
[ 0, 1, 1, 0, 1, 1]->[ 0, 0, 1, 0, 0, 1];
[ 0, 1, 1, 1, 0, 0]->[ 0, 0, 1, 1, 0, 0];
[ 0, 1, 1, 1, 0, 1]->[ 0, 0, 1, 1, 1, 1];
[ 0, 1, 1, 1, 1, 0]->[ 0, 1, 0, 0, 1, 0];
[ 0, 1, 1, 1, 1, 1]->[ 0, 1, 0, 1, 0, 1]; “ 3x7 = 21
[ 1, 0, 0, 0, 0, 1]->[ 0, 0, 0, 1, 0, 0];
[ 1, 0, 0, 0, 1, 0]->[ 0, 0, 1, 0, 0, 0];
[ 1, 0, 0, 0, 1, 1]->[ 0, 0, 1, 1, 0, 0];
[ 1, 0, 0, 1, 0, 0]->[ 0, 1, 0, 0, 0, 0];
[ 1, 0, 0, 1, 0, 1]->[ 0, 1, 0, 1, 0, 0];
[ 1, 0, 0, 1, 1, 0]->[ 0, 1, 1, 0, 0, 0];
[ 1, 0, 0, 1, 1, 1]->[ 0, 1, 1, 1, 0, 0];
[ 1, 0, 1, 0, 0, 1]->[ 0, 0, 0, 1, 0, 1];
[ 1, 0, 1, 0, 1, 0]->[ 0, 0, 1, 0, 1, 0];
[ 1, 0, 1, 0, 1, 1]->[ 0, 0, 1, 1, 1, 1]; “ 5x3 = 15
[ 1, 0, 1, 1, 0, 0]->[ 0, 1, 0, 1, 0, 0];
[ 1, 0, 1, 1, 0, 1]->[ 0, 1, 1, 0, 0, 1];
[ 1, 0, 1, 1, 1, 0]->[ 0, 1, 1, 1, 1, 0];
[ 1, 0, 1, 1, 1, 1]->[ 1, 0, 0, 0, 1, 1];
Figura 1 Listado del módulo para el multiplicador (parte inicial)
END
Figura 2 Vectores de prueba para la simulación (parte final del archivo fuente)
Asignación de Pines
La figura 3 exhibe como el software de desarrollo de Lattice asigna las patitas del integrado.
La figura 4 ilustra el diagrama temporal de aplicar los vectores de prueba en el JEDEC grabado.
Para el diseño secuencial de un producto ver el libro Diseño Digital de Morris Mano; ed.
Prentice-Hall, 1987, pp 337-340.