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

📄 crc32.vhd

📁 --循环冗余计算的并行实现代码 --初始值是全0或全1都可以
💻 VHD
字号:
--循环冗余计算的并行实现代码--初始值是全0或全1都可以library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.numeric_std.all;entity crc32 isport(clk:in std_logic;     load:in std_logic;     enable:in std_logic;     d:in std_logic_vector(7 downto 0);     crc:out std_logic_vector(31 downto 0));end crc32;architecture crc32_8 of crc32 issignal r: std_logic_vector(31 downto 0);--signal s: std_logic_vector(31 downto 0);begin crc<=r;  process(clk)  --variable r: std_logic_vector(0 to 31);  begin    if rising_edge(clk) then      if load='1' then        r<=x"00000000";      else          if enable='1' then            r(0)  <= d(6) xor d(0) xor r(24) xor r(30);          r(1)  <= d(7) xor d(6) xor d(1) xor d(0) xor r(24) xor r(25) xor r(30) xor r(31);          r(2)  <= d(7) xor d(6) xor d(2) xor d(1) xor d(0) xor r(24) xor r(25) xor r(26) xor r(30) xor r(31);          r(3)  <= d(7) xor d(3) xor d(2) xor d(1) xor r(25) xor r(26) xor r(27) xor r(31);          r(4)  <= d(6) xor d(4) xor d(3) xor d(2) xor d(0) xor r(24) xor r(26) xor r(27) xor r(28) xor r(30);          r(5)  <= d(7) xor d(6) xor d(5) xor d(4) xor d(3) xor d(1) xor d(0) xor r(24) xor r(25) xor r(27) xor                    r(28) xor r(29) xor r(30) xor r(31);          r(6)  <= d(7) xor d(6) xor d(5) xor d(4) xor d(2) xor d(1) xor                    r(25) xor r(26) xor r(28) xor r(29) xor r(30) xor r(31);          r(7)  <= d(7) xor d(5) xor d(3) xor d(2) xor d(0) xor r(24) xor r(26) xor r(27) xor r(29) xor r(31);          r(8)  <= d(4) xor d(3) xor d(1) xor d(0) xor r(0) xor r(24) xor r(25) xor r(27) xor r(28);          r(9)  <= d(5) xor d(4) xor d(2) xor d(1) xor r(1) xor r(25) xor r(26) xor r(28) xor r(29);          r(10) <= d(5) xor d(3) xor d(2) xor d(0) xor r(2) xor r(24) xor r(26) xor r(27) xor r(29);          r(11) <= d(4) xor d(3) xor d(1) xor d(0) xor r(3) xor r(24) xor r(25) xor r(27) xor r(28);          r(12) <= d(6) xor d(5) xor d(4) xor d(2) xor d(1) xor d(0) xor                    r(4) xor r(24) xor r(25) xor r(26) xor r(28) xor r(29) xor r(30);          r(13) <= d(7) xor d(6) xor d(5) xor d(3) xor d(2) xor d(1) xor                    r(5) xor r(25) xor r(26) xor r(27) xor r(29) xor r(30) xor r(31);          r(14) <= d(7) xor d(6) xor d(4) xor d(3) xor d(2) xor r(6) xor r(26) xor r(27) xor r(28) xor r(30) xor r(31);          r(15) <= d(7) xor d(5) xor d(4) xor d(3) xor r(7) xor r(27) xor r(28) xor r(29) xor r(31);          r(16) <= d(5) xor d(4) xor d(0) xor r(8) xor r(24) xor r(28) xor r(29);          r(17) <= d(6) xor d(5) xor d(1) xor r(9) xor r(25) xor r(29) xor r(30);          r(18) <= d(7) xor d(6) xor d(2) xor r(10) xor r(26) xor r(30) xor r(31);          r(19) <= d(7) xor d(3) xor r(11) xor r(27) xor r(31);          r(20) <= d(4) xor r(12) xor r(28);          r(21) <= d(5) xor r(13) xor r(29);          r(22) <= d(0) xor r(14) xor r(24);          r(23) <= d(6) xor d(1) xor d(0) xor r(15) xor r(24) xor r(25) xor r(30);          r(24) <= d(7) xor d(2) xor d(1) xor r(16) xor r(25) xor r(26) xor r(31);          r(25) <= d(3) xor d(2) xor r(17) xor r(26) xor r(27);          r(26) <= d(6) xor d(4) xor d(3) xor d(0) xor r(18) xor r(24) xor r(27) xor r(28) xor r(30);          r(27) <= d(7) xor d(5) xor d(4) xor d(1) xor r(19) xor r(25) xor r(28) xor r(29) xor r(31);          r(28) <= d(6) xor d(5) xor d(2) xor r(20) xor r(26) xor r(29) xor r(30);          r(29) <= d(7) xor d(6) xor d(3) xor r(21) xor r(27) xor r(30) xor r(31);          r(30) <= d(7) xor d(4) xor r(22) xor r(28) xor r(31);          r(31) <= d(5) xor r(23) xor r(29);        end if;      end if;    end if;  end process;end crc32_8;--          r(0)  <= d(6) xor d(0) xor r(24) xor r(30);--          r(1)  <= d(7) xor d(6) xor d(1) xor d(0) xor r(24) xor r(25) xor r(30) xor r(31);--          r(2)  <= d(7) xor d(6) xor d(2) xor d(1) xor d(0) xor r(24) xor r(25) xor r(26) xor r(30) xor r(31);--          r(3)  <= d(7) xor d(3) xor d(2) xor d(1) xor r(25) xor r(26) xor r(27) xor r(31);--          r(4)  <= d(6) xor d(4) xor d(3) xor d(2) xor d(0) xor r(24) xor r(26) xor r(27) xor r(28) xor r(30);--          r(5)  <= d(7) xor d(6) xor d(5) xor d(4) xor d(3) xor d(1) xor d(0) xor r(24) xor r(25) xor r(27) xor --                   r(28) xor r(29) xor r(30) xor r(31);--          r(6)  <= d(7) xor d(6) xor d(5) xor d(4) xor d(2) xor d(1) xor --                   r(25) xor r(26) xor r(28) xor r(29) xor r(30) xor r(31);--          r(7)  <= d(7) xor d(5) xor d(3) xor d(2) xor d(0) xor r(24) xor r(26) xor r(27) xor r(29) xor r(31);--          r(8)  <= d(4) xor d(3) xor d(1) xor d(0) xor r(0) xor r(24) xor r(25) xor r(27) xor r(28);--          r(9)  <= d(5) xor d(4) xor d(2) xor d(1) xor r(1) xor r(25) xor r(26) xor r(28) xor r(29);--          r(10) <= d(5) xor d(3) xor d(2) xor d(0) xor r(2) xor r(24) xor r(26) xor r(27) xor r(29);--          r(11) <= d(4) xor d(3) xor d(1) xor d(0) xor r(3) xor r(24) xor r(25) xor r(27) xor r(28);--          r(12) <= d(6) xor d(5) xor d(4) xor d(2) xor d(1) xor d(0) xor --                   r(4) xor r(24) xor r(25) xor r(26) xor r(28) xor r(29) xor r(30);--          r(13) <= d(7) xor d(6) xor d(5) xor d(3) xor d(2) xor d(1) xor --                   r(5) xor r(25) xor r(26) xor r(27) xor r(29) xor r(30) xor r(31);--          r(14) <= d(7) xor d(6) xor d(4) xor d(3) xor d(2) xor r(6) xor r(26) xor r(27) xor r(28) xor r(30) xor r(31);--          r(15) <= d(7) xor d(5) xor d(4) xor d(3) xor r(7) xor r(27) xor r(28) xor r(29) xor r(31);--          r(16) <= d(5) xor d(4) xor d(0) xor r(8) xor r(24) xor r(28) xor r(29);--          r(17) <= d(6) xor d(5) xor d(1) xor r(9) xor r(25) xor r(29) xor r(30);--          r(18) <= d(7) xor d(6) xor d(2) xor r(10) xor r(26) xor r(30) xor r(31);--          r(19) <= d(7) xor d(3) xor r(11) xor r(27) xor r(31);--          r(20) <= d(4) xor r(12) xor r(28);--          r(21) <= d(5) xor r(13) xor r(29);--          r(22) <= d(0) xor r(14) xor r(24);--          r(23) <= d(6) xor d(1) xor d(0) xor r(15) xor r(24) xor r(25) xor r(30);--          r(24) <= d(7) xor d(2) xor d(1) xor r(16) xor r(25) xor r(26) xor r(31);--          r(25) <= d(3) xor d(2) xor r(17) xor r(26) xor r(27);--          r(26) <= d(6) xor d(4) xor d(3) xor d(0) xor r(18) xor r(24) xor r(27) xor r(28) xor r(30);--          r(27) <= d(7) xor d(5) xor d(4) xor d(1) xor r(19) xor r(25) xor r(28) xor r(29) xor r(31);--          r(28) <= d(6) xor d(5) xor d(2) xor r(20) xor r(26) xor r(29) xor r(30);--          r(29) <= d(7) xor d(6) xor d(3) xor r(21) xor r(27) xor r(30) xor r(31);--          r(30) <= d(7) xor d(4) xor r(22) xor r(28) xor r(31);--          r(31) <= d(5) xor r(23) xor r(29);

⌨️ 快捷键说明

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