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

📄 sbox.vhd

📁 DES加密算法的VHDL实现,采用流水线技术实现
💻 VHD
📖 第 1 页 / 共 2 页
字号:
						"0111"		when "111101" ,--7
						"0010"		when "111110" ,--2
						"1110"		when "111111" ,--14
						null		when others ;
						
--s-box5
with rs( 23 ) & rs( 18 ) & rs( 22 downto 19 ) select
	--s-box5,line 0
	so(15 downto 12) <= "0010"		when "000000" ,--2
						"1100"		when "000001" ,--12
						"0100"		when "000010" ,--4
						"0001"		when "000011" ,--1
						"0111"		when "000100" ,--7
						"1010"		when "000101" ,--10
						"1011"		when "000110" ,--11
						"0110"		when "000111" ,--6
						"1000"		when "001000" ,--8
						"0101"		when "001001" ,--5
						"0011"		when "001010" ,--3
						"1111"		when "001011" ,--15
						"1101"		when "001100" ,--13
						"0000"		when "001101" ,--0
						"1110"		when "001110" ,--14
						"1001"		when "001111" ,--9
	--s-box5,line 1
						"1110"		when "010000" ,--14
						"1011"		when "010001" ,--11
						"0010"		when "010010" ,--2
						"1100"		when "010011" ,--12
						"0100"		when "010100" ,--4
						"0111"		when "010101" ,--7
						"1101"		when "010110" ,--13
						"0001"		when "010111" ,--1
						"0101"		when "011000" ,--5
						"0000"		when "011001" ,--0
						"1111"		when "011010" ,--15
						"1010"		when "011011" ,--10
						"0011"		when "011100" ,--3
						"1001"		when "011101" ,--9
						"1000"		when "011110" ,--8
						"0110"		when "011111" ,--6
	--s-box5,line 2
						"0100"		when "100000" ,--4
						"0010"		when "100001" ,--2
						"0001"		when "100010" ,--1
						"1011"		when "100011" ,--11
						"1010"		when "100100" ,--10
						"1101"		when "100101" ,--13
						"0111"		when "100110" ,--7
						"1000"		when "100111" ,--8
						"1111"		when "101000" ,--15
						"1001"		when "101001" ,--9
						"1100"		when "101010" ,--12
						"0101"		when "101011" ,--5
						"0110"		when "101100" ,--6
						"0011"		when "101101" ,--3
						"0000"		when "101110" ,--0
						"1110"		when "101111" ,--14
	--s-box5,line 3
						"1011"		when "110000" ,--11
						"1000"		when "110001" ,--8
						"1100"		when "110010" ,--12
						"0111"		when "110011" ,--7
						"0001"		when "110100" ,--1
						"1110"		when "110101" ,--14
						"0010"		when "110110" ,--2
						"1101"		when "110111" ,--13
						"0110"		when "111000" ,--6
						"1111"		when "111001" ,--15
						"0000"		when "111010" ,--0
						"1001"		when "111011" ,--9
						"1010"		when "111100" ,--10
						"0100"		when "111101" ,--4
						"0101"		when "111110" ,--5
						"0011"		when "111111" ,--3
						null		when others ;
							
--s-box6
with rs( 17 ) & rs( 12 ) & rs( 16 downto 13 ) select
	--s-box6,line 0
	so(11 downto 8) <=  "1100"		when "000000" ,--12
					    "0001"		when "000001" ,--1
						"1010"		when "000010" ,--10
						"1111"		when "000011" ,--15
						"1001"		when "000100" ,--9
						"0010"		when "000101" ,--2
						"0110"		when "000110" ,--6
						"1000"		when "000111" ,--8
						"0000"		when "001000" ,--0
						"1101"		when "001001" ,--13
						"0011"		when "001010" ,--3
						"0100"		when "001011" ,--4
						"1110"		when "001100" ,--14
						"0111"		when "001101" ,--7
						"0101"		when "001110" ,--5
						"1011"		when "001111" ,--11
	--s-box6,line 1
						"1010"		when "010000" ,--10
						"1111"		when "010001" ,--15
						"0100"		when "010010" ,--4
						"0010"		when "010011" ,--2
						"0111"		when "010100" ,--7
						"1100"		when "010101" ,--12
						"1001"		when "010110" ,--9
						"0101"		when "010111" ,--5
						"0110"		when "011000" ,--6
						"0001"		when "011001" ,--1
						"1101"		when "011010" ,--13
						"1110"		when "011011" ,--14
						"0000"		when "011100" ,--0
						"1011"		when "011101" ,--11
						"0011"		when "011110" ,--3
						"1000"		when "011111" ,--8
	--s-box6,line 2
						"1001"		when "100000" ,--9
						"1110"		when "100001" ,--14
						"1111"		when "100010" ,--15
						"0101"		when "100011" ,--5
						"0010"		when "100100" ,--2
						"1000"		when "100101" ,--8
						"1100"		when "100110" ,--12
						"0011"		when "100111" ,--3
						"0111"		when "101000" ,--7
						"0000"		when "101001" ,--0
						"0100"		when "101010" ,--4
						"1010"		when "101011" ,--10
						"0001"		when "101100" ,--1
						"1101"		when "101101" ,--13
						"1011"		when "101110" ,--11
						"0110"		when "101111" ,--6
	--s-box6,line 3
						"0100"		when "110000" ,--4
						"0011"		when "110001" ,--3
						"0010"		when "110010" ,--2
						"1100"		when "110011" ,--12
						"1001"		when "110100" ,--9
						"0101"		when "110101" ,--5
						"1111"		when "110110" ,--15
						"1010"		when "110111" ,--10
						"1011"		when "111000" ,--11
						"1110"		when "111001" ,--14
						"0001"		when "111010" ,--1
						"0111"		when "111011" ,--7
						"0110"		when "111100" ,--6
						"0000"		when "111101" ,--0
						"1000"		when "111110" ,--8
						"1101"		when "111111" ,--13
						null		when others ;
							
--s-box7
with rs( 11 ) & rs( 6 ) & rs( 10 downto 7 ) select
	--s-box7,line 0
	so(7 downto 4) <=   "0100"		when "000000" ,--4
						"1011"		when "000001" ,--11
						"0010"		when "000010" ,--2
						"1110"		when "000011" ,--14
						"1111"		when "000100" ,--15
						"0000"		when "000101" ,--0
						"1000"		when "000110" ,--8
						"1101"		when "000111" ,--13
						"0011"		when "001000" ,--3
						"1100"		when "001001" ,--12
						"1001"		when "001010" ,--9
						"0111"		when "001011" ,--7
						"0101"		when "001100" ,--5
						"1010"		when "001101" ,--10
						"0110"		when "001110" ,--6
						"0001"		when "001111" ,--1
	--s-box7,line 1
						"1101"		when "010000" ,--13
						"0000"		when "010001" ,--0
						"1011"		when "010010" ,--11
						"0111"		when "010011" ,--7
						"0100"		when "010100" ,--4
						"1001"		when "010101" ,--9
						"0001"		when "010110" ,--1
						"1010"		when "010111" ,--10
						"1110"		when "011000" ,--14
						"0011"		when "011001" ,--3
						"0101"		when "011010" ,--5
						"1100"		when "011011" ,--12
						"0010"		when "011100" ,--2
						"1111"		when "011101" ,--15
						"1000"		when "011110" ,--8
						"0110"		when "011111" ,--6
	--s-box7,line 2
						"0001"		when "100000" ,--1
						"0100"		when "100001" ,--4
						"1011"		when "100010" ,--11
						"1101"		when "100011" ,--13
						"1100"		when "100100" ,--12
						"0011"		when "100101" ,--3
						"0111"		when "100110" ,--7
						"1110"		when "100111" ,--14
						"1010"		when "101000" ,--10
						"1111"		when "101001" ,--15
						"0110"		when "101010" ,--6
						"1000"		when "101011" ,--8
						"0000"		when "101100" ,--0
						"0101"		when "101101" ,--5
						"1001"		when "101110" ,--9
						"0010"		when "101111" ,--2
	--s-box7,line 3
						"0110"		when "110000" ,--6
						"1011"		when "110001" ,--11
						"1101"		when "110010" ,--13
						"1000"		when "110011" ,--8
						"0001"		when "110100" ,--1
						"0100"		when "110101" ,--4
						"1010"		when "110110" ,--10
						"0111"		when "110111" ,--7
						"1001"		when "111000" ,--9
						"0101"		when "111001" ,--5
						"0000"		when "111010" ,--0
						"1111"		when "111011" ,--15
						"1110"		when "111100" ,--14
						"0010"		when "111101" ,--2
						"0011"		when "111110" ,--3
						"1100"		when "111111" ,--12
						null		when others ;
							
--s-box8
with rs( 5 ) & rs( 0 ) & rs( 4 downto 1 ) select
	--s-box8,line 0
	so(3 downto 0) <=   "1101"		when "000000" ,--13
						"0010"		when "000001" ,--2
						"1000"		when "000010" ,--8
						"0100"		when "000011" ,--4
						"0110"		when "000100" ,--6
						"1111"		when "000101" ,--15
						"1011"		when "000110" ,--11
						"0001"		when "000111" ,--1
						"1010"		when "001000" ,--10
						"1001"		when "001001" ,--9
						"0011"		when "001010" ,--3
						"1110"		when "001011" ,--14
						"0101"		when "001100" ,--5
						"0000"		when "001101" ,--0
						"1100"		when "001110" ,--12
						"0111"		when "001111" ,--7
	--s-box8,line 1
						"0001"		when "010000" ,--1
						"1111"		when "010001" ,--15
						"1101"		when "010010" ,--13
						"1000"		when "010011" ,--8
						"1010"		when "010100" ,--10
						"0011"		when "010101" ,--3
						"0111"		when "010110" ,--7
						"0100"		when "010111" ,--4
						"1100"		when "011000" ,--12
						"0101"		when "011001" ,--5
						"0110"		when "011010" ,--6
						"1011"		when "011011" ,--11
						"0000"		when "011100" ,--0
						"1110"		when "011101" ,--14
						"1001"		when "011110" ,--9
						"0010"		when "011111" ,--2
	--s-box8,line 2
						"0111"		when "100000" ,--7
						"1011"		when "100001" ,--11
						"0100"		when "100010" ,--4
						"0001"		when "100011" ,--1
						"1001"		when "100100" ,--9
						"1100"		when "100101" ,--12
						"1110"		when "100110" ,--14
						"0010"		when "100111" ,--2
						"0000"		when "101000" ,--0
						"0110"		when "101001" ,--6
						"1010"		when "101010" ,--10
						"1101"		when "101011" ,--13
						"1111"		when "101100" ,--15
						"0011"		when "101101" ,--3
						"0101"		when "101110" ,--5
						"1000"		when "101111" ,--8
	--s-box8,line 3
						"0010"		when "110000" ,--2
						"0001"		when "110001" ,--1
						"1110"		when "110010" ,--14
						"0111"		when "110011" ,--7
						"0100"		when "110100" ,--4
						"1010"		when "110101" ,--10
						"1000"		when "110110" ,--8
						"1101"		when "110111" ,--13
						"1111"		when "111000" ,--15
						"1100"		when "111001" ,--12
						"1001"		when "111010" ,--9
						"0000"		when "111011" ,--0
						"0011"		when "111100" ,--3
						"0101"		when "111101" ,--5
						"0110"		when "111110" ,--6
						"1011"		when "111111" ,--11
						null		when others ;
							


end architecture arch_sbox ;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -