Tengo un sumador con entradas A y B en std_logic_vector(data_width-1) downto 0 y salida de suma std_logic_vector(data_width) downto 0. Estoy tratando de usar una declaración de IF para evitar el bit de transporte y agréguelo a la suma

Solo necesito ayuda con la sintaxis, la idea es que si el MSB de Carry es 1, agrega 1 a la respuesta (sum)

architecture v1 of adding is
begin
adding : process (A, B) is
    variable CI :  std_logic_vector((DATA_WIDTH) downto 0);
    variable SUMMER :  std_logic_vector((DATA_WIDTH) downto 0);
begin   
            SUMMER := A xor B;
            CI := A and B;
            CI_msb <= CI(CI'left);
            if CI_msb =  '1' then
                SUMMER = SUMMER + 1;
            end if;

Estoy recibiendo errores de sintaxis con respecto a (summer = summer + 1;) No estoy lo suficientemente familiar para saber qué se necesita.

-1
rory 14 jul. 2019 a las 16:49

1 respuesta

La mejor respuesta

Para asignar un valor a una variable, debe usar :=, por lo que el código se convierte en SUMMER := SUMMER + 1;.

0
Giampietro Seu 14 jul. 2019 a las 14:45