📄 decode16.vhd
字号:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity decode16 is
port(
clk:in std_logic;
Z_in:in std_logic_vector(31 downto 0);
Z_out:out std_logic_vector(31 downto 0)
);
end entity decode16;
architecture one of decode16 is
type ff is array(31 downto 0)of integer range 0 to 31;
begin
process(clk)
variable Ht:std_logic_vector(15 downto 0);
variable S:std_logic_vector(15 downto 0);
variable H:std_logic_vector(31 downto 0);
variable Z:std_logic_vector(31 downto 0);
variable max,t:integer;
variable dr:integer:=1;
variable ss:std_logic;
variable f:ff:=(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
variable g:ff;
begin
Z:=Z_in;
for i in 1 to 10 loop
H:="10011101010101101000000000000000";
S(15):=(H(31) and Z(31)) xor (H(30) and Z(30)) xor (H(29) and Z(29)) xor (H(28) and Z(28)) xor (H(27) and Z(27)) xor (H(26) and Z(26)) xor (H(25) and Z(25)) xor (H(24) and Z(24)) xor (H(23) and Z(23)) xor (H(22) and Z(22)) xor (H(21) and Z(21)) xor (H(20) and Z(20)) xor (H(19) and Z(19)) xor (H(18) and Z(18)) xor (H(17) and Z(17)) xor (H(16) and Z(16)) xor (H(15) and Z(15)) xor (H(14) and Z(14)) xor (H(13) and Z(13)) xor (H(12) and Z(12)) xor (H(11) and Z(11)) xor (H(10) and Z(10)) xor (H(9) and Z(9)) xor (H(8) and Z(8)) xor (H(7) and Z(7)) xor (H(6) and Z(6)) xor (H(5) and Z(5)) xor (H(4) and Z(4)) xor (H(3) and Z(3)) xor (H(2) and Z(2)) xor (H(1) and Z(1)) xor (H(0) and Z(0));
H:="00111001011011100100000000000000";
S(14):=(H(31) and Z(31)) xor (H(30) and Z(30)) xor (H(29) and Z(29)) xor (H(28) and Z(28)) xor (H(27) and Z(27)) xor (H(26) and Z(26)) xor (H(25) and Z(25)) xor (H(24) and Z(24)) xor (H(23) and Z(23)) xor (H(22) and Z(22)) xor (H(21) and Z(21)) xor (H(20) and Z(20)) xor (H(19) and Z(19)) xor (H(18) and Z(18)) xor (H(17) and Z(17)) xor (H(16) and Z(16)) xor (H(15) and Z(15)) xor (H(14) and Z(14)) xor (H(13) and Z(13)) xor (H(12) and Z(12)) xor (H(11) and Z(11)) xor (H(10) and Z(10)) xor (H(9) and Z(9)) xor (H(8) and Z(8)) xor (H(7) and Z(7)) xor (H(6) and Z(6)) xor (H(5) and Z(5)) xor (H(4) and Z(4)) xor (H(3) and Z(3)) xor (H(2) and Z(2)) xor (H(1) and Z(1)) xor (H(0) and Z(0));
H:="11010110001000000010000000000000";
S(13):=(H(31) and Z(31)) xor (H(30) and Z(30)) xor (H(29) and Z(29)) xor (H(28) and Z(28)) xor (H(27) and Z(27)) xor (H(26) and Z(26)) xor (H(25) and Z(25)) xor (H(24) and Z(24)) xor (H(23) and Z(23)) xor (H(22) and Z(22)) xor (H(21) and Z(21)) xor (H(20) and Z(20)) xor (H(19) and Z(19)) xor (H(18) and Z(18)) xor (H(17) and Z(17)) xor (H(16) and Z(16)) xor (H(15) and Z(15)) xor (H(14) and Z(14)) xor (H(13) and Z(13)) xor (H(12) and Z(12)) xor (H(11) and Z(11)) xor (H(10) and Z(10)) xor (H(9) and Z(9)) xor (H(8) and Z(8)) xor (H(7) and Z(7)) xor (H(6) and Z(6)) xor (H(5) and Z(5)) xor (H(4) and Z(4)) xor (H(3) and Z(3)) xor (H(2) and Z(2)) xor (H(1) and Z(1)) xor (H(0) and Z(0));
H:="01110100010100010001000000000000";
S(12):=(H(31) and Z(31)) xor (H(30) and Z(30)) xor (H(29) and Z(29)) xor (H(28) and Z(28)) xor (H(27) and Z(27)) xor (H(26) and Z(26)) xor (H(25) and Z(25)) xor (H(24) and Z(24)) xor (H(23) and Z(23)) xor (H(22) and Z(22)) xor (H(21) and Z(21)) xor (H(20) and Z(20)) xor (H(19) and Z(19)) xor (H(18) and Z(18)) xor (H(17) and Z(17)) xor (H(16) and Z(16)) xor (H(15) and Z(15)) xor (H(14) and Z(14)) xor (H(13) and Z(13)) xor (H(12) and Z(12)) xor (H(11) and Z(11)) xor (H(10) and Z(10)) xor (H(9) and Z(9)) xor (H(8) and Z(8)) xor (H(7) and Z(7)) xor (H(6) and Z(6)) xor (H(5) and Z(5)) xor (H(4) and Z(4)) xor (H(3) and Z(3)) xor (H(2) and Z(2)) xor (H(1) and Z(1)) xor (H(0) and Z(0));
H:="01001011010010110000100000000000";
S(11):=(H(31) and Z(31)) xor (H(30) and Z(30)) xor (H(29) and Z(29)) xor (H(28) and Z(28)) xor (H(27) and Z(27)) xor (H(26) and Z(26)) xor (H(25) and Z(25)) xor (H(24) and Z(24)) xor (H(23) and Z(23)) xor (H(22) and Z(22)) xor (H(21) and Z(21)) xor (H(20) and Z(20)) xor (H(19) and Z(19)) xor (H(18) and Z(18)) xor (H(17) and Z(17)) xor (H(16) and Z(16)) xor (H(15) and Z(15)) xor (H(14) and Z(14)) xor (H(13) and Z(13)) xor (H(12) and Z(12)) xor (H(11) and Z(11)) xor (H(10) and Z(10)) xor (H(9) and Z(9)) xor (H(8) and Z(8)) xor (H(7) and Z(7)) xor (H(6) and Z(6)) xor (H(5) and Z(5)) xor (H(4) and Z(4)) xor (H(3) and Z(3)) xor (H(2) and Z(2)) xor (H(1) and Z(1)) xor (H(0) and Z(0));
H:="10110101011000000000010000000000";
S(10):=(H(31) and Z(31)) xor (H(30) and Z(30)) xor (H(29) and Z(29)) xor (H(28) and Z(28)) xor (H(27) and Z(27)) xor (H(26) and Z(26)) xor (H(25) and Z(25)) xor (H(24) and Z(24)) xor (H(23) and Z(23)) xor (H(22) and Z(22)) xor (H(21) and Z(21)) xor (H(20) and Z(20)) xor (H(19) and Z(19)) xor (H(18) and Z(18)) xor (H(17) and Z(17)) xor (H(16) and Z(16)) xor (H(15) and Z(15)) xor (H(14) and Z(14)) xor (H(13) and Z(13)) xor (H(12) and Z(12)) xor (H(11) and Z(11)) xor (H(10) and Z(10)) xor (H(9) and Z(9)) xor (H(8) and Z(8)) xor (H(7) and Z(7)) xor (H(6) and Z(6)) xor (H(5) and Z(5)) xor (H(4) and Z(4)) xor (H(3) and Z(3)) xor (H(2) and Z(2)) xor (H(1) and Z(1)) xor (H(0) and Z(0));
H:="11001010011000000000001000000000";
S(9):=(H(31) and Z(31)) xor (H(30) and Z(30)) xor (H(29) and Z(29)) xor (H(28) and Z(28)) xor (H(27) and Z(27)) xor (H(26) and Z(26)) xor (H(25) and Z(25)) xor (H(24) and Z(24)) xor (H(23) and Z(23)) xor (H(22) and Z(22)) xor (H(21) and Z(21)) xor (H(20) and Z(20)) xor (H(19) and Z(19)) xor (H(18) and Z(18)) xor (H(17) and Z(17)) xor (H(16) and Z(16)) xor (H(15) and Z(15)) xor (H(14) and Z(14)) xor (H(13) and Z(13)) xor (H(12) and Z(12)) xor (H(11) and Z(11)) xor (H(10) and Z(10)) xor (H(9) and Z(9)) xor (H(8) and Z(8)) xor (H(7) and Z(7)) xor (H(6) and Z(6)) xor (H(5) and Z(5)) xor (H(4) and Z(4)) xor (H(3) and Z(3)) xor (H(2) and Z(2)) xor (H(1) and Z(1)) xor (H(0) and Z(0));
H:="01111001011011100000000100000000";
S(8):=(H(31) and Z(31)) xor (H(30) and Z(30)) xor (H(29) and Z(29)) xor (H(28) and Z(28)) xor (H(27) and Z(27)) xor (H(26) and Z(26)) xor (H(25) and Z(25)) xor (H(24) and Z(24)) xor (H(23) and Z(23)) xor (H(22) and Z(22)) xor (H(21) and Z(21)) xor (H(20) and Z(20)) xor (H(19) and Z(19)) xor (H(18) and Z(18)) xor (H(17) and Z(17)) xor (H(16) and Z(16)) xor (H(15) and Z(15)) xor (H(14) and Z(14)) xor (H(13) and Z(13)) xor (H(12) and Z(12)) xor (H(11) and Z(11)) xor (H(10) and Z(10)) xor (H(9) and Z(9)) xor (H(8) and Z(8)) xor (H(7) and Z(7)) xor (H(6) and Z(6)) xor (H(5) and Z(5)) xor (H(4) and Z(4)) xor (H(3) and Z(3)) xor (H(2) and Z(2)) xor (H(1) and Z(1)) xor (H(0) and Z(0));
H:="01100011010110010000000010000000";
S(7):=(H(31) and Z(31)) xor (H(30) and Z(30)) xor (H(29) and Z(29)) xor (H(28) and Z(28)) xor (H(27) and Z(27)) xor (H(26) and Z(26)) xor (H(25) and Z(25)) xor (H(24) and Z(24)) xor (H(23) and Z(23)) xor (H(22) and Z(22)) xor (H(21) and Z(21)) xor (H(20) and Z(20)) xor (H(19) and Z(19)) xor (H(18) and Z(18)) xor (H(17) and Z(17)) xor (H(16) and Z(16)) xor (H(15) and Z(15)) xor (H(14) and Z(14)) xor (H(13) and Z(13)) xor (H(12) and Z(12)) xor (H(11) and Z(11)) xor (H(10) and Z(10)) xor (H(9) and Z(9)) xor (H(8) and Z(8)) xor (H(7) and Z(7)) xor (H(6) and Z(6)) xor (H(5) and Z(5)) xor (H(4) and Z(4)) xor (H(3) and Z(3)) xor (H(2) and Z(2)) xor (H(1) and Z(1)) xor (H(0) and Z(0));
H:="01000001100010100000000001000000";
S(6):=(H(31) and Z(31)) xor (H(30) and Z(30)) xor (H(29) and Z(29)) xor (H(28) and Z(28)) xor (H(27) and Z(27)) xor (H(26) and Z(26)) xor (H(25) and Z(25)) xor (H(24) and Z(24)) xor (H(23) and Z(23)) xor (H(22) and Z(22)) xor (H(21) and Z(21)) xor (H(20) and Z(20)) xor (H(19) and Z(19)) xor (H(18) and Z(18)) xor (H(17) and Z(17)) xor (H(16) and Z(16)) xor (H(15) and Z(15)) xor (H(14) and Z(14)) xor (H(13) and Z(13)) xor (H(12) and Z(12)) xor (H(11) and Z(11)) xor (H(10) and Z(10)) xor (H(9) and Z(9)) xor (H(8) and Z(8)) xor (H(7) and Z(7)) xor (H(6) and Z(6)) xor (H(5) and Z(5)) xor (H(4) and Z(4)) xor (H(3) and Z(3)) xor (H(2) and Z(2)) xor (H(1) and Z(1)) xor (H(0) and Z(0));
H:="00000000101110110000000000100000";
S(5):=(H(31) and Z(31)) xor (H(30) and Z(30)) xor (H(29) and Z(29)) xor (H(28) and Z(28)) xor (H(27) and Z(27)) xor (H(26) and Z(26)) xor (H(25) and Z(25)) xor (H(24) and Z(24)) xor (H(23) and Z(23)) xor (H(22) and Z(22)) xor (H(21) and Z(21)) xor (H(20) and Z(20)) xor (H(19) and Z(19)) xor (H(18) and Z(18)) xor (H(17) and Z(17)) xor (H(16) and Z(16)) xor (H(15) and Z(15)) xor (H(14) and Z(14)) xor (H(13) and Z(13)) xor (H(12) and Z(12)) xor (H(11) and Z(11)) xor (H(10) and Z(10)) xor (H(9) and Z(9)) xor (H(8) and Z(8)) xor (H(7) and Z(7)) xor (H(6) and Z(6)) xor (H(5) and Z(5)) xor (H(4) and Z(4)) xor (H(3) and Z(3)) xor (H(2) and Z(2)) xor (H(1) and Z(1)) xor (H(0) and Z(0));
H:="10111010010001000000000000010000";
S(4):=(H(31) and Z(31)) xor (H(30) and Z(30)) xor (H(29) and Z(29)) xor (H(28) and Z(28)) xor (H(27) and Z(27)) xor (H(26) and Z(26)) xor (H(25) and Z(25)) xor (H(24) and Z(24)) xor (H(23) and Z(23)) xor (H(22) and Z(22)) xor (H(21) and Z(21)) xor (H(20) and Z(20)) xor (H(19) and Z(19)) xor (H(18) and Z(18)) xor (H(17) and Z(17)) xor (H(16) and Z(16)) xor (H(15) and Z(15)) xor (H(14) and Z(14)) xor (H(13) and Z(13)) xor (H(12) and Z(12)) xor (H(11) and Z(11)) xor (H(10) and Z(10)) xor (H(9) and Z(9)) xor (H(8) and Z(8)) xor (H(7) and Z(7)) xor (H(6) and Z(6)) xor (H(5) and Z(5)) xor (H(4) and Z(4)) xor (H(3) and Z(3)) xor (H(2) and Z(2)) xor (H(1) and Z(1)) xor (H(0) and Z(0));
H:="01111100100101010000000000001000";
S(3):=(H(31) and Z(31)) xor (H(30) and Z(30)) xor (H(29) and Z(29)) xor (H(28) and Z(28)) xor (H(27) and Z(27)) xor (H(26) and Z(26)) xor (H(25) and Z(25)) xor (H(24) and Z(24)) xor (H(23) and Z(23)) xor (H(22) and Z(22)) xor (H(21) and Z(21)) xor (H(20) and Z(20)) xor (H(19) and Z(19)) xor (H(18) and Z(18)) xor (H(17) and Z(17)) xor (H(16) and Z(16)) xor (H(15) and Z(15)) xor (H(14) and Z(14)) xor (H(13) and Z(13)) xor (H(12) and Z(12)) xor (H(11) and Z(11)) xor (H(10) and Z(10)) xor (H(9) and Z(9)) xor (H(8) and Z(8)) xor (H(7) and Z(7)) xor (H(6) and Z(6)) xor (H(5) and Z(5)) xor (H(4) and Z(4)) xor (H(3) and Z(3)) xor (H(2) and Z(2)) xor (H(1) and Z(1)) xor (H(0) and Z(0));
H:="01010000000100010000000000000100";
S(2):=(H(31) and Z(31)) xor (H(30) and Z(30)) xor (H(29) and Z(29)) xor (H(28) and Z(28)) xor (H(27) and Z(27)) xor (H(26) and Z(26)) xor (H(25) and Z(25)) xor (H(24) and Z(24)) xor (H(23) and Z(23)) xor (H(22) and Z(22)) xor (H(21) and Z(21)) xor (H(20) and Z(20)) xor (H(19) and Z(19)) xor (H(18) and Z(18)) xor (H(17) and Z(17)) xor (H(16) and Z(16)) xor (H(15) and Z(15)) xor (H(14) and Z(14)) xor (H(13) and Z(13)) xor (H(12) and Z(12)) xor (H(11) and Z(11)) xor (H(10) and Z(10)) xor (H(9) and Z(9)) xor (H(8) and Z(8)) xor (H(7) and Z(7)) xor (H(6) and Z(6)) xor (H(5) and Z(5)) xor (H(4) and Z(4)) xor (H(3) and Z(3)) xor (H(2) and Z(2)) xor (H(1) and Z(1)) xor (H(0) and Z(0));
H:="00011010010011000000000000000010";
S(1):=(H(31) and Z(31)) xor (H(30) and Z(30)) xor (H(29) and Z(29)) xor (H(28) and Z(28)) xor (H(27) and Z(27)) xor (H(26) and Z(26)) xor (H(25) and Z(25)) xor (H(24) and Z(24)) xor (H(23) and Z(23)) xor (H(22) and Z(22)) xor (H(21) and Z(21)) xor (H(20) and Z(20)) xor (H(19) and Z(19)) xor (H(18) and Z(18)) xor (H(17) and Z(17)) xor (H(16) and Z(16)) xor (H(15) and Z(15)) xor (H(14) and Z(14)) xor (H(13) and Z(13)) xor (H(12) and Z(12)) xor (H(11) and Z(11)) xor (H(10) and Z(10)) xor (H(9) and Z(9)) xor (H(8) and Z(8)) xor (H(7) and Z(7)) xor (H(6) and Z(6)) xor (H(5) and Z(5)) xor (H(4) and Z(4)) xor (H(3) and Z(3)) xor (H(2) and Z(2)) xor (H(1) and Z(1)) xor (H(0) and Z(0));
H:="00011010011101110000000000000001";
S(0):=(H(31) and Z(31)) xor (H(30) and Z(30)) xor (H(29) and Z(29)) xor (H(28) and Z(28)) xor (H(27) and Z(27)) xor (H(26) and Z(26)) xor (H(25) and Z(25)) xor (H(24) and Z(24)) xor (H(23) and Z(23)) xor (H(22) and Z(22)) xor (H(21) and Z(21)) xor (H(20) and Z(20)) xor (H(19) and Z(19)) xor (H(18) and Z(18)) xor (H(17) and Z(17)) xor (H(16) and Z(16)) xor (H(15) and Z(15)) xor (H(14) and Z(14)) xor (H(13) and Z(13)) xor (H(12) and Z(12)) xor (H(11) and Z(11)) xor (H(10) and Z(10)) xor (H(9) and Z(9)) xor (H(8) and Z(8)) xor (H(7) and Z(7)) xor (H(6) and Z(6)) xor (H(5) and Z(5)) xor (H(4) and Z(4)) xor (H(3) and Z(3)) xor (H(2) and Z(2)) xor (H(1) and Z(1)) xor (H(0) and Z(0));
ss:=S(0) or S(1) or S(2) or S(3) or S(4)or S(5)or S(6)or S(7)or S(8)or S(9)or S(10)or S(11)or S(12)or S(13)or S(14)or S(15);
if ss='1' then
Ht:="1010011000010000";
for n in 15 downto 0 loop
if (S(n) and Ht(n))='1' then
f(31):=f(31)+1;
else f(31):=f(31);
end if;
end loop;
Ht:="0011101111001100";
for n in 15 downto 0 loop
if (S(n) and Ht(n))='1' then
f(30):=f(30)+1;
else f(30):=f(30);
end if;
end loop;
Ht:="0101010110011000";
for n in 15 downto 0 loop
if (S(n) and Ht(n))='1' then
f(29):=f(29)+1;
else f(29):=f(29);
end if;
end loop;
Ht:="1111010100011111";
for n in 15 downto 0 loop
if (S(n) and Ht(n))='1' then
f(28):=f(28)+1;
else f(28):=f(28);
end if;
end loop;
Ht:="1100101100011011";
for n in 15 downto 0 loop
if (S(n) and Ht(n))='1' then
f(27):=f(27)+1;
else f(27):=f(27);
end if;
end loop;
Ht:="1011010000001000";
for n in 15 downto 0 loop
if (S(n) and Ht(n))='1' then
f(26):=f(26)+1;
else f(26):=f(26);
end if;
end loop;
Ht:="0010101010010011";
for n in 15 downto 0 loop
if (S(n) and Ht(n))='1' then
f(25):=f(25)+1;
else f(25):=f(25);
end if;
end loop;
Ht:="1100110111000000";
for n in 15 downto 0 loop
if (S(n) and Ht(n))='1' then
f(24):=f(24)+1;
else f(24):=f(24);
end if;
end loop;
Ht:="0000000001101000";
for n in 15 downto 0 loop
if (S(n) and Ht(n))='1' then
f(23):=f(23)+1;
else f(23):=f(23);
end if;
end loop;
Ht:="1101111110010011";
for n in 15 downto 0 loop
if (S(n) and Ht(n))='1' then
f(22):=f(22)+1;
else f(22):=f(22);
end if;
end loop;
Ht:="0110011100100001";
for n in 15 downto 0 loop
if (S(n) and Ht(n))='1' then
f(21):=f(21)+1;
else f(21):=f(21);
end if;
end loop;
Ht:="1001000010101101";
for n in 15 downto 0 loop
if (S(n) and Ht(n))='1' then
f(20):=f(20)+1;
else f(20):=f(20);
end if;
end loop;
Ht:="0100100111100010";
for n in 15 downto 0 loop
if (S(n) and Ht(n))='1' then
f(19):=f(19)+1;
else f(19):=f(19);
end if;
end loop;
Ht:="1100000100011011";
for n in 15 downto 0 loop
if (S(n) and Ht(n))='1' then
f(18):=f(18)+1;
else f(18):=f(18);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -