⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 leftrotate.vhd

📁 完成基本左移功能。aXORb<<b,然后aXORb<<a,也就是说a,b都是dependent data
💻 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 + -