janmagic
驱动牛犊
驱动牛犊
  • 注册日期2003-02-18
  • 最后登录2005-03-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1838回复:3

CRC校验功能如何用VHDL实现?

楼主#
更多 发布于:2003-02-24 10:58
望高手多多赐教!!
luorenfei
驱动小牛
驱动小牛
  • 注册日期2003-02-17
  • 最后登录2006-11-30
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-02-24 16:42
你想做多少位的crc校验?
oetek
驱动牛犊
驱动牛犊
  • 注册日期2003-01-18
  • 最后登录2004-12-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-02-24 21:45
上www.easics.com/webtools/crctool,可自动生成各种CRC校验程序,想看原理上IEEE去搜,一堆
大江东去
lllggg
驱动小牛
驱动小牛
  • 注册日期2002-05-04
  • 最后登录2007-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-02-25 12:39
16位CRC产生,并行输入,一次一个字节

package body PCK_CRC16_D8 is
-- polynomial: (0 5 12 16) data width: 8
-- convention: the first serial data bit is D(7)

function nextCRC16_D8 ( Data: std_logic_vector(7 downto 0);
CRC: std_logic_vector(15 downto 0) )
return std_logic_vector is

variable D: std_logic_vector(7 downto 0);
variable C: std_logic_vector(15 downto 0);
variable NewCRC: std_logic_vector(15 downto 0);

begin
D := Data; C := CRC;
NewCRC(0) := D(4) xor D(0) xor C(8) xor C(12);
NewCRC(1) := D(5) xor D(1) xor C(9) xor C(13);
NewCRC(2) := D(6) xor D(2) xor C(10) xor C(14);
NewCRC(3) := D(7) xor D(3) xor C(11) xor C(15);
NewCRC(4) := D(4) xor C(12);
NewCRC(5) := D(5) xor D(4) xor D(0) xor C(8) xor C(12)xor C(13);
NewCRC(6) := D(6) xor D(5) xor D(1) xor C(9) xor C(13)xor C(14);
NewCRC(7) := D(7) xor D(6) xor D(2) xor C(10) xor C(14)xor C(15);
NewCRC(8) := D(7) xor D(3) xor C(0) xor C(11) xor C(15);
NewCRC(9) := D(4) xor C(1) xor C(12);
NewCRC(10) := D(5) xor C(2) xor C(13);
NewCRC(11) := D(6) xor C(3) xor C(14);
NewCRC(12) := D(7) xor D(4) xor D(0) xor C(4) xor C(8)xor C(12) xor C(15);
NewCRC(13) := D(5) xor D(1) xor C(5) xor C(9) xor C(13);
NewCRC(14) := D(6) xor D(2) xor C(6) xor C(10) xor C(14);
NewCRC(15) := D(7) xor D(3) xor C(7) xor C(11) xor C(15);
return NewCRC;
end nextCRC16_D8;
end PCK_CRC16_
(DEEP + BROAD + SIMPLE) & delicate
游客

返回顶部