TU-VHDL/11_MinArith/design.vhd
2025-02-10 20:28:13 +01:00

25 lines
895 B
VHDL

library IEEE;
use IEEE.std_logic_1164.all;
use ieee.numeric_std.all;
entity minArith is
port (a_i : in std_logic_vector (7 downto 0);
b_i : in std_logic_vector (7 downto 0);
ssum_o : out std_logic_vector (7 downto 0);
sdiff_o : out std_logic_vector (7 downto 0);
usum_o : out std_logic_vector (7 downto 0);
udiff_o : out std_logic_vector (7 downto 0);
ainc_o : out std_logic_vector (7 downto 0));
end minArith;
-- behavioral description of the halfadder given by two gates
architecture behavior of minArith is
begin
ssum_o <= std_logic_vector(signed(a_i) + signed(b_i));
sdiff_o <= std_logic_vector(signed(a_i) - signed(b_i));
usum_o <= std_logic_vector(unsigned(a_i) + unsigned(b_i));
udiff_o <= std_logic_vector(unsigned(a_i) - unsigned(b_i));
ainc_o <= std_logic_vector(unsigned(a_i) + "00000001");
end behavior;