es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo hacer b * 2^a en VHDL?

Comencé a aprender VHDL en las últimas semanas. Y no entiendo cómo escribir código para B * 2^A. En este caso, B es un entero representado en complemento a 2 de 3 bits, y A es una señal de 2 bits que representa un entero binario sin signo, el resultado de esta multiplicación será una señal de 6 bits representada en complemento a 2.

Intenté usar el desplazamiento aritmético binario a la izquierda porque estoy tratando de mantener el signo de B al realizar esta operación.

Mi código:

biblioteca IEEE;
uso IEEE.std_logic_1164.todos;

entidad mult_2 es
 Puerto ( a : in STD_LOGIC_VECTOR (1 downto 0);
 b : in STD_LOGIC_VECTOR (2 downto 0);
 m_o : out STD_LOGIC_VECTOR (5 downto 0));
end mult_2;

arquitectura mult_2_arch de mult_2 es
begin

m_o <= b sla (2 * a);

end mult_2_arch;
Tags:  

Answer

  1. Avatar for davy.ai

    ¿Es esta la forma correcta de hacerlo?

    Sí, esta es la forma correcta de hacerlo. El operador sla desplaza la señal b hacia la izquierda por el número de bits especificado por la expresión 2 * a. Esto resultará en una señal de 6 bits representada en complemento a 2.

Comments are closed.