Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Cómputo Bello Muñoz Edgar Alejandro Fundamentos de Diseño Digital Profesor: Fernando Aguilar Sánchez Práctica 8 Multiplicador binario Fecha de entrega: 9 de mayo de 2021 Introducción Un multiplicador binario es un circuito electrónico utilizado en electrónica digital, como una computadora, para multiplicar dos números binarios. Está construido usando sumadores binarios. Se puede utilizar una variedad de técnicas aritméticas por computadora para implementar un multiplicador digital. La mayoría de las técnicas implican calcular un conjunto de productos parciales y luego sumar los productos parciales. Este proceso, que es similar al método que se enseña en la escuela para realizar multiplicaciones largas en números enteros de base 10, aplica el mismo principio al realizarse de manera combinacional, pero con la diferencia de que su realización se adapta a un sistema base 2. Una computadora binaria hace exactamente la misma multiplicación que los números decimales, pero con números binarios. En la codificación binaria, cada dígito del multiplicando se multiplica por uno del multiplicador, siendo esto mucho más fácil que en decimal, ya que el producto por 0 o 1 es solo 0 o el mismo número. Por lo tanto, la multiplicación de dos números binarios se reduce a calcular productos parciales (que son 0 o el primer número), por lo que es posible realizar esta operación y obtener estos productos parciales utilizando simplemente compuertas AND, desplazarlos a la izquierda y luego sumarlos realizando una adición binaria, por lo que el diseño de un multiplicador binario utilizando este método requiere del uso de sumadores binarios. Este método es matemáticamente correcto y tiene la ventaja de que una pequeña CPU puede realizar la multiplicación usando el cambio y agregar características de su unidad aritmética lógica en lugar de un circuito especializado. Sin embargo, el método es lento, ya que implica muchas adiciones intermedias. Una desventaja de utilizar este método es que las sumas parciales requieren mucho tiempo. Se pueden diseñar multiplicadores más rápidos para hacer menos adiciones; un procesador moderno puede multiplicar dos números de 64 bits con 6 adiciones (en lugar de 64) y puede realizar varios pasos en paralelo. El segundo problema es que el método escolar básico maneja el signo utilizando regla de signos. Las computadoras modernas incrustan el signo del número en el número mismo, generalmente en la representación del complemento a dos. Eso obliga a que el proceso de multiplicación se adapte para manejar números en complemento a dos, y eso complica un poco más el proceso. De manera similar, los procesadores que utilizan el complemento de unos , el signo y la magnitud , IEEE-754 u otras representaciones binarias requieren ajustes específicos al proceso de multiplicación. Desarrollo Multiplicador 2x2 Tabla de verdad # A1 A0 B1 B0 P3 P2 P1 P0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 2 0 0 1 0 0 0 0 0 3 0 0 1 1 0 0 0 0 4 0 1 0 0 0 0 0 0 5 0 1 0 1 0 0 0 1 6 0 1 1 0 0 0 1 0 7 0 1 1 1 0 0 1 1 8 1 0 0 0 0 0 0 0 9 1 0 0 1 0 0 1 0 10 1 0 1 0 0 1 0 0 11 1 0 1 1 0 1 1 0 12 1 1 0 0 0 0 0 0 13 1 1 0 1 0 0 1 1 14 1 1 1 0 0 1 1 0 15 1 1 1 1 1 0 0 1 Funciones lógicas 𝑃3 = 𝐴1 𝐴0 𝐵1 𝐵0 𝑃2 = 𝐴1 𝐴0̅̅ ̅ 𝐵1 + 𝐴1 𝐵1 𝐵0̅̅ ̅ 𝑃1 = 𝐴1̅̅ ̅ 𝐴0 𝐵1 + 𝐴0 𝐵1 𝐵0̅̅ ̅ + 𝐴1 𝐴0̅̅ ̅ 𝐵0 + 𝐴1 𝐵1̅̅ ̅ 𝐵0 𝑃0 = 𝐴0 𝐵0 Circuito a bloques Simulación de circuito utilizando compuertas lógicas Código VDHL Conclusiones La realización de esta práctica fue adecuada para comprender la operación de la multiplicación con números binarios, pero no solamente eso sino que también su implementación utilizando circuitos lógicos y lenguaje de descripción de hardware (VHDL), teniendo potencial para su utilización en circuitos combinacionales más complejos con una mayor cantidad de funcionalidades. Sin embargo, aunque es un circuito que resulta efectivo, el método empleado no es el más eficaz, puesto que requiere de la realización de múltiples sumas binarias, por lo que se necesita la implementación de varios sumadores también. Referencias • Floyd, T. (2010). Fundamentos de Sistemas Digitales. México: Pearson Educación. • Morris, M. (2007). Diseño digital. Cuarta Edición. México: Pearson library ieee; use ieee.std_logic_1164.all; entity multiplicacion is port(A1,A0,B1,B0: in std_logic; P3,P2,P1,P0, P1Cout: out std_logic); end multiplicacion; architecture arqmulti of multiplicacion is signal C: std_logic_vector(2 downto 0); ATTRIBUTE synthesis_off OF C: SIGNAL IS true: begin P0<= A0 and B0; P1<=(A1 and B0) xor (A0 and B1); P1Cout<=(A1 and B0) and (A0 and B1); P2<=(A1 and B1) xor P1Cout; P3<=(A1 and B1) and P1Cout; end arqmulti; • Educación.Quiroga, P. (2010). Arquitectura de Computadoras. México: Alfaomega.
Compartir