📄 pck_crc7_d40.vhd
字号:
------------------------------------------------------------------------- File: PCK_CRC7_D40.vhd -- Date: Mon May 19 11:08:10 2008 -- -- Copyright (C) 1999-2003 Easics NV. -- This source file may be used and distributed without restriction -- provided that this copyright statement is not removed from the file -- and that any derivative work contains the original copyright notice-- and the associated disclaimer.---- THIS SOURCE FILE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS-- OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED-- WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.---- Purpose: VHDL package containing a synthesizable CRC function-- * polynomial: (0 3 7)-- * data width: 40-- -- Info: tools@easics.be-- http://www.easics.com -----------------------------------------------------------------------library IEEE;use IEEE.std_logic_1164.all;package PCK_CRC7_D40 is -- polynomial: (0 3 7) -- data width: 40 -- convention: the first serial data bit is D(39) function nextCRC7_D40 ( Data: std_logic_vector(39 downto 0); CRC: std_logic_vector(6 downto 0) ) return std_logic_vector;end PCK_CRC7_D40;library IEEE;use IEEE.std_logic_1164.all;package body PCK_CRC7_D40 is -- polynomial: (0 3 7) -- data width: 40 -- convention: the first serial data bit is D(39) function nextCRC7_D40 ( Data: std_logic_vector(39 downto 0); CRC: std_logic_vector(6 downto 0) ) return std_logic_vector is variable D: std_logic_vector(39 downto 0); variable C: std_logic_vector(6 downto 0); variable NewCRC: std_logic_vector(6 downto 0); begin D := Data; C := CRC; NewCRC(0) := D(39) xor D(37) xor D(35) xor D(34) xor D(31) xor D(30) xor D(24) xor D(23) xor D(21) xor D(20) xor D(18) xor D(16) xor D(15) xor D(14) xor D(12) xor D(8) xor D(7) xor D(4) xor D(0) xor C(1) xor C(2) xor C(4) xor C(6); NewCRC(1) := D(38) xor D(36) xor D(35) xor D(32) xor D(31) xor D(25) xor D(24) xor D(22) xor D(21) xor D(19) xor D(17) xor D(16) xor D(15) xor D(13) xor D(9) xor D(8) xor D(5) xor D(1) xor C(2) xor C(3) xor C(5); NewCRC(2) := D(39) xor D(37) xor D(36) xor D(33) xor D(32) xor D(26) xor D(25) xor D(23) xor D(22) xor D(20) xor D(18) xor D(17) xor D(16) xor D(14) xor D(10) xor D(9) xor D(6) xor D(2) xor C(0) xor C(3) xor C(4) xor C(6); NewCRC(3) := D(39) xor D(38) xor D(35) xor D(33) xor D(31) xor D(30) xor D(27) xor D(26) xor D(20) xor D(19) xor D(17) xor D(16) xor D(14) xor D(12) xor D(11) xor D(10) xor D(8) xor D(4) xor D(3) xor D(0) xor C(0) xor C(2) xor C(5) xor C(6); NewCRC(4) := D(39) xor D(36) xor D(34) xor D(32) xor D(31) xor D(28) xor D(27) xor D(21) xor D(20) xor D(18) xor D(17) xor D(15) xor D(13) xor D(12) xor D(11) xor D(9) xor D(5) xor D(4) xor D(1) xor C(1) xor C(3) xor C(6); NewCRC(5) := D(37) xor D(35) xor D(33) xor D(32) xor D(29) xor D(28) xor D(22) xor D(21) xor D(19) xor D(18) xor D(16) xor D(14) xor D(13) xor D(12) xor D(10) xor D(6) xor D(5) xor D(2) xor C(0) xor C(2) xor C(4); NewCRC(6) := D(38) xor D(36) xor D(34) xor D(33) xor D(30) xor D(29) xor D(23) xor D(22) xor D(20) xor D(19) xor D(17) xor D(15) xor D(14) xor D(13) xor D(11) xor D(7) xor D(6) xor D(3) xor C(0) xor C(1) xor C(3) xor C(5); return NewCRC; end nextCRC7_D40;end PCK_CRC7_D40;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -