crc_10.vhd

来自「VHDL function for calculate CRC10」· VHDL 代码 · 共 52 行

VHD
52
字号
---------------------------------------------------------------------------------- Purpose : synthesizable CRC function--   * polynomial: (0 1 4 5 9 10)--   * data width: 8--------------------------------------------------------------------------------library ieee;use ieee.std_logic_1164.all;package PCK_CRC10_D8 is  -- polynomial: (0 1 4 5 9 10)  -- data width: 8  -- convention: the first serial bit is D[7]  function nextCRC10_D8    (Data: std_logic_vector(7 downto 0);     crc:  std_logic_vector(9 downto 0))    return std_logic_vector;end PCK_CRC10_D8;package body PCK_CRC10_D8 is  -- polynomial: (0 1 4 5 9 10)  -- data width: 8  -- convention: the first serial bit is D[7]  function nextCRC10_D8    (Data: std_logic_vector(7 downto 0);     crc:  std_logic_vector(9 downto 0))    return std_logic_vector is    variable d:      std_logic_vector(7 downto 0);    variable c:      std_logic_vector(9 downto 0);    variable newcrc: std_logic_vector(9 downto 0);  begin    d := Data;    c := crc;    newcrc(0) := d(4) xor d(3) xor d(2) xor d(1) xor d(0) xor c(2) xor c(3) xor c(4) xor c(5) xor c(6);    newcrc(1) := d(5) xor d(0) xor c(2) xor c(7);    newcrc(2) := d(6) xor d(1) xor c(3) xor c(8);    newcrc(3) := d(7) xor d(2) xor c(4) xor c(9);    newcrc(4) := d(4) xor d(2) xor d(1) xor d(0) xor c(2) xor c(3) xor c(4) xor c(6);    newcrc(5) := d(5) xor d(4) xor d(0) xor c(2) xor c(6) xor c(7);    newcrc(6) := d(6) xor d(5) xor d(1) xor c(3) xor c(7) xor c(8);    newcrc(7) := d(7) xor d(6) xor d(2) xor c(4) xor c(8) xor c(9);    newcrc(8) := d(7) xor d(3) xor c(0) xor c(5) xor c(9);    newcrc(9) := d(3) xor d(2) xor d(1) xor d(0) xor c(1) xor c(2) xor c(3) xor c(4) xor c(5);    return newcrc;  end nextCRC10_D8;end PCK_CRC10_D8;

⌨️ 快捷键说明

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