FPGA设计中(verilog),为什么采用CRC通用计算模块计算得到的CRC与手算(串行移位)的结果不一致? 5
//crccalculation//ThisVERILOGcodewasgeneratedusingCRCGEN.PLversion1.6//LastModified:0...
// crc calculation
// This VERILOG code was generated using CRCGEN.PL version 1.6
// Last Modified: 02/26/2001
// Options Used:
// Module Name = crc32
// CRC Width = 16
// Data Width = 8
// CRC Init = 0
// Polynomial = [0 -> 16]
// 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1
//
// Disclaimer: THESE DESIGNS ARE PROVIDED "AS IS" WITH NO WARRANTY
// WHATSOEVER AND XILINX SPECIFICALLY DISCLAIMS ANY
// IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR
// A PARTICULAR PURPOSE, OR AGAINST INFRINGEMENT.
//
// Copyright (c) 2001 Xilinx, Inc. All rights reserved.
//
//
//////////////////////////////////////////////////////////////////////////////
module crc16_8 (
crc_reg,
crc,
d,
calc,
init,
d_valid,
clk,
reset
);
output [15:0] crc_reg;
output [7:0] crc;
input [7:0] d;
input calc;
input init;
input d_valid;
input clk;
input reset;
reg [15:0] crc_reg;
reg [7:0] crc;
//////////////////////////////////////////////////////////////////////////////
// Internal Signals
//////////////////////////////////////////////////////////////////////////////
wire [15:0] next_crc;
限于字数,代码只贴了前面部分,熟悉fpga设计和crc的人应该对这段代码不陌生。为什么严格按照crc计算原理手算得到的结果(可以确保计算正确)与利用这段代码仿真计算得到的结果不一致?(计算数据长度为8bit)。 展开
// This VERILOG code was generated using CRCGEN.PL version 1.6
// Last Modified: 02/26/2001
// Options Used:
// Module Name = crc32
// CRC Width = 16
// Data Width = 8
// CRC Init = 0
// Polynomial = [0 -> 16]
// 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1
//
// Disclaimer: THESE DESIGNS ARE PROVIDED "AS IS" WITH NO WARRANTY
// WHATSOEVER AND XILINX SPECIFICALLY DISCLAIMS ANY
// IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR
// A PARTICULAR PURPOSE, OR AGAINST INFRINGEMENT.
//
// Copyright (c) 2001 Xilinx, Inc. All rights reserved.
//
//
//////////////////////////////////////////////////////////////////////////////
module crc16_8 (
crc_reg,
crc,
d,
calc,
init,
d_valid,
clk,
reset
);
output [15:0] crc_reg;
output [7:0] crc;
input [7:0] d;
input calc;
input init;
input d_valid;
input clk;
input reset;
reg [15:0] crc_reg;
reg [7:0] crc;
//////////////////////////////////////////////////////////////////////////////
// Internal Signals
//////////////////////////////////////////////////////////////////////////////
wire [15:0] next_crc;
限于字数,代码只贴了前面部分,熟悉fpga设计和crc的人应该对这段代码不陌生。为什么严格按照crc计算原理手算得到的结果(可以确保计算正确)与利用这段代码仿真计算得到的结果不一致?(计算数据长度为8bit)。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询