Multiplicador 4 bits VHDL

1536 palabras 7 páginas
Trabajo Práctico 9

1. Componer un Multiplicador para dos números binarios sin signo de 4 bits. Abajo a la izquierda se encuentra una figura con el multiplicador a modelar y a la derecha la máquina de estados que la controla. Puede utilizar los diseños desarrollados en los ejercicios de los Trabajos Prácticos 2 a 8

Definimos el multiplicador con un modelo estructural el cual instancia a la entidad controller, quien se encarga de administrar otros diseños utilizados en trabajos prácticos anteriores, tales como fulladder, latch y shiftN. Utilizando señales locales a la arquitectura para relacionar las entidades, modelamos el multiplicador de la figura.

La entidad está compuesta por los puertos de entrada “a” y “b” de 4 bits
…ver más…
Esta señal, en cada interacción de dos loops anidados se compara con la multiplicación de los índices de dichos loops, los cuales a su vez se asignan a las entradas de la entidad de contiene al multiplicador. El reloj es controlado por la función “clock” también definida en el paquete Utils. A continuación se muestran diferentes pasajes de las formas de onda de las señales obtenidas, donde se ven los diferentes valores que van tomando dichas señales y como cada vez que done es uno, la salida del dispositivo es igual al valor de la multiplicación realizada, mostrada en hexadecimal en “result” y en decimal en “resultado”.

3. Desarrollar una interfaz amigable para el Multiplicador usando la entrada y la salida standard, de modo tal que se pida ingresar los valores A y B por teclado y Result se muestre en área de interfaz del simulador.

Testbench con interfaz desarrollado para la prueba del multiplicador:

use work.Utils.all; use std.textio.all;

entity Test_multi4 is end; architecture Driver of Test_multi4 is component multiplicador port (a, b: in Bit_Vector(3 downto 0); stb, reset, clk: in bit; done: out bit; result: out bit_vector(7 downto 0)); end component; signal a, b: Bit_Vector(3 downto 0); signal clk, stb, reset, done: bit; signal result: Bit_vector(7 downto 0); begin UUT: multiplicador port map (a, b, stb, reset, clk, done, result); reloj: Clock (clk, 10 ns, 10 ns);

Documentos relacionados

  • Vhdl
    1425 palabras | 6 páginas