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

📄 decode16.vhd

📁 低密度奇偶校验码的VHDL程序
💻 VHD
📖 第 1 页 / 共 2 页
字号:
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 + -