Std::Código fuente de la función
El código fuente para la multiplicación de Booth es:
Biblioteca IEEE
Utilice IEEE. STD_LOGIC_1164. Todos;
Utiliza IEEE. STD_LOGIC_ARITH. Todos;
Utiliza IEEE. STD_LOGIC_UNSIGNED all;
- Si crea una instancia, descomente las siguientes declaraciones de biblioteca
- Cualquier primitiva de Xilinx en este código.
-Biblioteca UNISIM
-Usar UNISIM. VComponents.all
La entidad mp es
port(ai:en STD _ logic _ vector(7 hasta 0);
bi:en vector lógico estándar Medio (7 a 0)
done:out STD _ logic
clk: in std_logic;
op:out STD _ logic _ vector (15 hasta 0);
Finalizar MP;
El comportamiento arquitectónico de MP es
Iniciar
Proceso (ai, bi, clk )
Variables a, b, m: STD_logic_vector (7 hasta 0);
Variable CP: STD_logic_vector (1 hasta 0); /p>
Variable t: STD _ logic;
Contador de variable: entero;
Inicio
Si clk evento y clk='1 'Entonces
Contador:= 0;
t:= ' 0 ';
a:= ai;
b:= bi;
m:= " 00000000 ";
CP:= b(0)&'0';
Completo<='0 ';
contador while y bucle lt8
caso cp es
cuando " 10" = >m:= m-a;
cuando " 01" = > cuando; m:= m+a;
cuando otros = & gtm:= m;
fin de caso;
t:= b(0);
b:= m(0)&b(7 baja a 1);
m:= m(7)&m( 7 baja a 1);
CP:= b(0)&t;
Contador:=Contador+1;
Fin del bucle;
op & lt= m & ampb;
Completar& lt='1';
Finalizar si;
Finalizar proceso;
Finalizar comportamiento;
Este es un multiplicador de 8 bits, puedes modificarlo ligeramente.