📄 leftrotate.vhd
字号:
library IEEE;
use IEEE.std_logic_1164.all;
entity leftrotate is
port (
A, B : in std_logic_vector(31 downto 0);
O : out std_logic_vector(31 downto 0));
end leftrotate;
architecture do_it of leftrotate is
signal ab_xor : std_logic_vector(31 downto 0);
begin
ab_xor <= A xor B;
with B(4 downto 0) select
O<= ab_xor(30 DOWNTO 0) & ab_xor(31) WHEN "00001",
ab_xor(29 DOWNTO 0) & ab_xor(31 DOWNTO 30) WHEN "00010",
ab_xor(28 DOWNTO 0) & ab_xor(31 DOWNTO 29) WHEN "00011",
ab_xor(27 DOWNTO 0) & ab_xor(31 DOWNTO 28) WHEN "00100",
ab_xor(26 DOWNTO 0) & ab_xor(31 DOWNTO 27) WHEN "00101",
ab_xor(25 DOWNTO 0) & ab_xor(31 DOWNTO 26) WHEN "00110",
ab_xor(24 DOWNTO 0) & ab_xor(31 DOWNTO 25) WHEN "00111",
ab_xor(23 DOWNTO 0) & ab_xor(31 DOWNTO 24) WHEN "01000",
ab_xor(22 DOWNTO 0) & ab_xor(31 DOWNTO 23) WHEN "01001",
ab_xor(21 DOWNTO 0) & ab_xor(31 DOWNTO 22) WHEN "01010",
ab_xor(20 DOWNTO 0) & ab_xor(31 DOWNTO 21) WHEN "01011",
ab_xor(19 DOWNTO 0) & ab_xor(31 DOWNTO 20) WHEN "01100",
ab_xor(18 DOWNTO 0) & ab_xor(31 DOWNTO 19) WHEN "01101",
ab_xor(17 DOWNTO 0) & ab_xor(31 DOWNTO 18) WHEN "01110",
ab_xor(16 DOWNTO 0) & ab_xor(31 DOWNTO 17) WHEN "01111",
ab_xor(15 DOWNTO 0) & ab_xor(31 DOWNTO 16) WHEN "10000",
ab_xor(14 DOWNTO 0) & ab_xor(31 DOWNTO 15) WHEN "10001",
ab_xor(13 DOWNTO 0) & ab_xor(31 DOWNTO 14) WHEN "10010",
ab_xor(12 DOWNTO 0) & ab_xor(31 DOWNTO 13) WHEN "10011",
ab_xor(11 DOWNTO 0) & ab_xor(31 DOWNTO 12) WHEN "10100",
ab_xor(10 DOWNTO 0) & ab_xor(31 DOWNTO 11) WHEN "10101",
ab_xor(9 DOWNTO 0) & ab_xor(31 DOWNTO 10) WHEN "10110",
ab_xor(8 DOWNTO 0) & ab_xor(31 DOWNTO 9) WHEN "10111",
ab_xor(7 DOWNTO 0) & ab_xor(31 DOWNTO 8) WHEN "11000",
ab_xor(6 DOWNTO 0) & ab_xor(31 DOWNTO 7) WHEN "11001",
ab_xor(5 DOWNTO 0) & ab_xor(31 DOWNTO 6) WHEN "11010",
ab_xor(4 DOWNTO 0) & ab_xor(31 DOWNTO 5) WHEN "11011",
ab_xor(3 DOWNTO 0) & ab_xor(31 DOWNTO 4) WHEN "11100",
ab_xor(2 DOWNTO 0) & ab_xor(31 DOWNTO 3) WHEN "11101",
ab_xor(1 DOWNTO 0) & ab_xor(31 DOWNTO 2) WHEN "11110",
ab_xor(0) & ab_xor(31 DOWNTO 1) WHEN "11111",
ab_xor WHEN OTHERS;
end do_it;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -