Estoy intentando implementar un multiplicador de cambio a la derecha y se supone que esa es la ruta de datos. ¿Por qué este código genera este error ?:
Declaración secuencial ilegal.
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_signed.all;
entity data_path_module is
port (
a_in : In std_logic_vector(3 downto 0);
b_in : In std_logic_vector(3 downto 0);
rst_n : In std_logic;
p_in : In std_logic_vector(3 downto 0);
a_out : Out std_logic_vector(3 downto 0);
b_out : Out std_logic_vector(3 downto 0);
valid_out : Out std_logic;
p_out : Out std_logic_vector(3 downto 0)
);
end entity data_path_module;
architecture data_path_module_df of data_path_module is
signal tmp : std_logic_vector(3 downto 0);
begin
P1 : process (a_in, b_in, rst_n, p_in)
begin
p_out <= p_in + b_in when (a_in(0) = '1') else p_in;
a_out <= b_in(0) & a_in(2 downto 0);
b_out <= '0' & b_in(2 downto 0);
valid_out <= '1';
end process P1;
end architecture data_path_module_df;