CRC8 - verilog
更新时间:2024-01-31 17:08:01 阅读量: 教育文库 文档下载
- crc8算法推荐度:
- 相关推荐
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: //
// Create Date: 15:40:57 09/17/09 // Design Name:
// Module Name: crc8 // Project Name: // Target Device: // Tool versions: // Description: //
// Dependencies: //
// Revision:
// Revision 0.01 - File Created // Additional Comments: //
////////////////////////////////////////////////////////////////////////////////
module crc8(reset,clk,start,data_in,out_rs,crc_code); parameter width=32; //信息位宽 input reset; input clk;
input [width-1:0] data_in; input start;
output [7:0] out_rs;
output [width+7:0] crc_code;
reg [5:0] cnt;
reg [width+7:0] dat_reg;
wire [width+7:0] crc_enc; wire [width+7:0] reg_tem;
reg crc_16bit_end; reg [width+7:0] tmp; reg [width-1:0] cd;
always @(posedge clk or negedge reset) begin
if(!reset) begin cnt <= 0; end else if(start) begin cnt <= 0; end else if(cnt==34) begin cnt <= 34; end else begin cnt <= cnt + 1'b1; end end
always @(posedge clk or negedge reset) begin if(!reset) begin dat_reg <= 0; end else if(start) begin dat_reg <= {data_in,8'h00}; end else if(cnt>0 && cnt <33) begin dat_reg <= crc_enc; end end
always @(posedge clk or negedge reset) begin if(!reset) begin crc_16bit_end <= 0; end else if(cnt == 33) begin crc_16bit_end <= 0; end else begin crc_16bit_end <= 1; end end
always @(posedge clk or negedge reset) begin if(!reset) begin
tmp <= 0; end else if(cnt==32) begin tmp <= reg_tem; end end
always @(posedge clk or negedge reset) begin if(!reset) begin cd <= 0; end else if(start) begin cd <= data_in; end end
assign reg_tem = (cnt>0) ? {dat_reg[width+6:0],1'b0} : dat_reg;
assign crc_enc[width+7] = (reg_tem[width+7]==1) ? ~reg_tem[width+7] : reg_tem[width+7]; assign crc_enc[width+7-1:width] = reg_tem[width+7-1:width];
assign crc_enc[width-1] = (reg_tem[width+7]==1) ? ~reg_tem[width-1] : reg_tem[width-1];
assign crc_enc[width-2:0] = reg_tem[width-2:0];
//always @(posedge clk or negedge reset) begin // if(!reset) begin // out_rs <= 0; // end // else if(!crc_16bit_end) begin // out_rs <= crc_reg; // end //end
assign out_rs = (~crc_16bit_end) ? tmp[width+7:32] : 0;
assign crc_code = (~crc_16bit_end) ? {cd,tmp[width+7:32]} : 0;
endmodule
正在阅读:
CRC8 - verilog01-31
三年级数学第二学期测试题05-11
工地临时用电计算08-28
0011-河南开普化工股份有限公司-企业发展战略规划-北京南洋林德投资顾问有限公司05-13
人教版六年级上册语文主题学习第三单元教案03-31
宗族家谱修06-05
部编新人教版七年级语文下册第六单元教案集02-28
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- verilog
- CRC8
- 选拔总经理-中篇案例 - 图文
- 污水处理PPP项目设置边界条件--保底水量 之咨询意见
- 网络安全技术期末试卷A
- 农村师资力量调查报告
- 劳社险中心函60号--关于规范社会保险缴费基数有关问题的通知
- 彩泥社团工作计划
- 1-81数字命理吉凶释义(数字测算新办法)
- 实验六、FFT与chirp-z变换
- 发展经济学习题
- 水-稳基-层施-工技-术方-案
- 自考00157 管理会计(一) 练习题08
- 湘教版三年级上册美术教案 2014.09.11
- 2013继教重点传染病防治知识培训90分卷
- 养殖水化学题库
- 几凡老师李彬设计的贵州财大图书馆项目获奖
- 个人工作目标和方向
- 电化学基础考题分析与解题方法
- 调研报告
- 趋势交易法-慕容总结
- 重庆一中初2018级17-18学年度下期第一次定时作业(3月月考) - 图文