📄 crc_pkg.vhd
字号:
crcout(8) := r(7);
crcout(9) := r(8);
crcout(10) := r(9);
crcout(11) := r(10);
crcout(12) := d xor r(11) xor r(15);
crcout(13) := r(12);
crcout(14) := r(13);
crcout(15) := r(14);
return crcout;
end crc16_ccitt_1;
--------------------------------------------------------------
function crc16_ccitt_8( data: std_logic_vector(7 downto 0);
crcin: std_logic_vector(15 downto 0) )
return std_logic_vector is
variable d: std_logic_vector(7 downto 0);
variable r: std_logic_vector(15 downto 0);
variable crcout: std_logic_vector(15 downto 0);
begin
d:= data;
r:= crcin;
crcout(0) := d(4) xor d(0) xor r(8) xor r(12);
crcout(1) := d(5) xor d(1) xor r(9) xor r(13);
crcout(2) := d(6) xor d(2) xor r(10) xor r(14);
crcout(3) := d(7) xor d(3) xor r(11) xor r(15);
crcout(4) := d(4) xor r(12);
crcout(5) := d(5) xor d(4) xor r(0) xor r(8) xor r(12) xor r(13);
crcout(6) := d(6) xor d(5) xor d(1) xor r(9) xor r(13) xor r(14);
crcout(7) := d(7) xor d(6) xor d(2) xor r(10) xor r(14) xor r(15);
crcout(8) := d(7) xor d(3) xor r(0) xor r(11) xor r(15);
crcout(9) := d(4) xor r(1) xor r(12);
crcout(10) := d(5) xor r(2) xor r(13);
crcout(11) := d(6) xor r(3) xor r(14);
crcout(12) := d(7) xor d(4) xor d(0) xor r(4) xor r(8) xor r(12) xor r(15);
crcout(13) := d(5) xor d(1) xor r(5) xor r(9) xor r(13);
crcout(14) := d(6) xor d(2) xor r(6) xor r(10) xor r(14);
crcout(15) := d(7) xor d(3) xor r(7) xor r(11) xor r(15);
return crcout;
end crc16_ccitt_8;
---------------------------------------------------------------
function crc12_1( data: std_logic;
crcin: std_logic_vector(11 downto 0) )
return std_logic_vector is
variable d: std_logic;
variable r: std_logic_vector(11 downto 0);
variable crcout: std_logic_vector(11 downto 0);
begin
d:= data;
r:=crcin;
crcout(0) := d xor r(11);
crcout(1) := r(0);
crcout(2) := d xor r(1) xor r(11);
crcout(3) := d xor r(2) xor r(11);
crcout(4) := r(3);
crcout(5) := r(4);
crcout(6) := r(5);
crcout(7) := r(6);
crcout(8) := r(7);
crcout(9) := r(8);
crcout(10) := r(9);
crcout(11) := d xor r(10);
return crcout;
end crc12_1;
--------------------------------------------------------------
function crc8_1( data: std_logic;
crcin: std_logic_vector(7 downto 0) )
return std_logic_vector is
variable d: std_logic;
variable r: std_logic_vector(7 downto 0);
variable crcout: std_logic_vector(7 downto 0);
begin
d:= data;
r:=crcin;
crcout(0) := d xor r(7);
crcout(1) := r(0);
crcout(2) := r(1);
crcout(3) := r(2);
crcout(4) := d xor r(3) xor r(7);
crcout(5) := d xor r(4) xor r(7);
crcout(6) := r(5);
crcout(7) := r(6);
return crcout;
end crc8_1;
---------------------------------------------------------------
function crc8_8( data: std_logic_vector(7 downto 0);
crcin: std_logic_vector(7 downto 0) )
return std_logic_vector is
variable d: std_logic_vector(7 downto 0);
variable r: std_logic_vector(7 downto 0);
variable crcout: std_logic_vector(7 downto 0);
begin
d:= data;
r:=crcin;
crcout(0) := d(7) xor d(6) xor d(0) xor r(0) xor r(6) xor r(7);
crcout(1) := d(6) xor d(1) xor d(0) xor r(0) xor r(1) xor r(6);
crcout(2) := d(6) xor d(2) xor d(1) xor d(0) xor r(0) xor r(1) xor r(2) xor r(6);
crcout(3) := d(7) xor d(3) xor d(2) xor d(1) xor r(1) xor r(2) xor r(3) xor r(7);
crcout(4) := d(4) xor d(3) xor d(2) xor r(2) xor r(3) xor r(4);
crcout(5) := d(5) xor d(4) xor d(3) xor r(3) xor r(4) xor r(5);
crcout(6) := d(6) xor d(5) xor d(4) xor r(4) xor r(5) xor r(6);
crcout(7) := d(7) xor d(6) xor d(5) xor r(5) xor r(6) xor r(7);
return crcout;
end crc8_8;
---------------------------------------------------------------
function crc5_11( data: std_logic_vector(10 downto 0);
crcin: std_logic_vector(4 downto 0) )
return std_logic_vector is
variable d: std_logic_vector(10 downto 0);
variable r: std_logic_vector(4 downto 0);
variable crcout: std_logic_vector(4 downto 0);
begin
d:= data;
r:=crcin;
crcout(0) := d(10) xor d(9) xor d(6) xor d(5) xor d(3) xor d(0) xor r(0) xor r(3) xor r(4);
crcout(1) := d(10) xor d(7) xor d(6) xor d(4) xor d(1) xor r(0) xor r(1) xor r(4);
crcout(2) := d(10) xor d(9) xor d(8) xor d(7) xor d(6) xor d(3) xor d(2) xor d(0) xor r(0)
xor r(1) xor r(2) xor r(3) xor r(4);
crcout(3) := d(10) xor d(9) xor d(8) xor d(7) xor d(4) xor d(3) xor d(1) xor r(1) xor r(2)
xor r(3) xor r(4);
crcout(4) := d(10) xor d(9) xor d(8) xor d(5) xor d(4) xor d(2) xor r(2) xor r(3) xor r(4);
return crcout;
end crc5_11;
----------------------------------------------------------------
function crc4_1( data: std_logic;
crcin: std_logic_vector(3 downto 0) )
return std_logic_vector is
variable d: std_logic;
variable r: std_logic_vector(3 downto 0);
variable crcout: std_logic_vector(3 downto 0);
begin
d:= data;
r:=crcin;
crcout(0) := d xor r(3);
crcout(1) := d xor r(0)xor r(3);
crcout(2) := r(1);
crcout(3) := r(2);
return crcout;
end crc4_1;
---------------------------------------------------------------
end crc_pkg;
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -