aboutsummaryrefslogtreecommitdiff
path: root/computer-organization-experiment/alu.vhdl
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2021-12-24 19:36:03 +0800
committercrupest <crupest@outlook.com>2021-12-24 19:36:03 +0800
commit0bc9c308d694e1f1152ed55878c89b137695a62c (patch)
treeade5289adff84227b1663e1cb60e228da65c4db8 /computer-organization-experiment/alu.vhdl
parent700da23188ef4059c15b4b71786c32c7bfbbfa73 (diff)
downloadlife-0bc9c308d694e1f1152ed55878c89b137695a62c.tar.gz
life-0bc9c308d694e1f1152ed55878c89b137695a62c.tar.bz2
life-0bc9c308d694e1f1152ed55878c89b137695a62c.zip
...
Diffstat (limited to 'computer-organization-experiment/alu.vhdl')
-rw-r--r--computer-organization-experiment/alu.vhdl25
1 files changed, 0 insertions, 25 deletions
diff --git a/computer-organization-experiment/alu.vhdl b/computer-organization-experiment/alu.vhdl
deleted file mode 100644
index 5eed3df..0000000
--- a/computer-organization-experiment/alu.vhdl
+++ /dev/null
@@ -1,25 +0,0 @@
-LIBRARY IEEE;
-USE IEEE.STD_LOGIC_1164.ALL;
-use ieee.numeric_std.all;
-
-entity alu is
- port (
- A, B: in std_logic_vector(31 downto 0);
- ALUC: in std_logic_vector(3 downto 0);
- S: out std_logic_vector(31 downto 0);
- Z: out std_logic);
-end entity;
-
-architecture Behavioral of alu is
-begin
- S <= A + B when ALUC(2 downto 0) = B"000"
- else A - B when ALUC(2 downto 0) ?= B"001"
- else A and B when ALUC(2 downto 0) ?= B"100"
- else A or B when ALUC(2 downto 0) ?= B"101"
- else A xor B when ALUC(2 downto 0) ?= B"010"
- else std_logic_vector(signed(A) sll 16) and H"FFFF0000" when ALUC(2 downto 0) ?= B"110"
- else std_logic_vector(signed(A) sll to_integer(unsigned(B))) when ALUC ?= B"0011"
- else std_logic_vector(signed(A) srl to_integer(unsigned(B))) when ALUC ?= B"0111"
- else std_logic_vector(signed(A) sra to_integer(unsigned(B))) when ALUC ?= B"1111";
- Z <= S ?= H"00000000";
-end architecture;