校验和

news/2024/9/19 15:33:13/文章来源:https://www.cnblogs.com/Sichg/p/18369173

1. 对应数据位累加和:

需确认协议规定是从哪一位累加到哪一位,以及对应到代码中rd_cnt[7:0]是从第几位累加到第几位。

//校验和
reg [15:0] rcvCLJ_SUM;
always @(posedge SYS_CLK or negedge sys_rst_n ) beginif(!sys_rst_n) rcvCLJ_SUM <= 16'd0;else if(rd_cnt>8'd2 && rd_cnt<8'd62 && fifo_rd_en) //从帧长位开始累加到校验和位。rcvCLJ_SUM <= rcvCLJ_SUM + fifo_dout;else rcvCLJ_SUM <= rcvCLJ_SUM;
end

 调整效果如上。

2. 帧头帧尾,校验和比对:

reg rcvCLJ_vrf;
always @(posedge SYS_CLK or negedge sys_rst_n ) beginif(!sys_rst_n) rcvCLJ_vrf <= 1'd0;else if(rd_cnt== 8'd65)rcvCLJ_vrf <= 1'd1; //数据已全部存入rcvCLJ_fifo,可进行数据校准else rcvCLJ_vrf <= 1'd0;
end
spi_rcvCLJ_verify  spi_rcvCLJ_verify(.i_Clk(SYS_CLK),.i_Rst_L(sys_rst_n),.i_rcvCLJ_vrf(rcvCLJ_vrf),.i_rcvCLJ0(rcvCLJ_fifo[0]),.i_rcvCLJ1(rcvCLJ_fifo[1]),//帧头.i_rcvCLJ60(rcvCLJ_fifo[60]),.i_rcvCLJ61(rcvCLJ_fifo[61]),//校验和.i_rcvCLJ62(rcvCLJ_fifo[62]),.i_rcvCLJ63(rcvCLJ_fifo[63]),//帧尾.i_rcvCLJ_SUM(rcvCLJ_SUM),.o_rcv_rst(w_rcv_rst)
);

//校验模块

`timescale 1ns / 1ns

module spi_rcvCLJ_verify(
input i_Clk ,
input i_Rst_L ,
input i_rcvCLJ_vrf,
input [15:0] i_rcvCLJ_SUM, //get SUM
input [7:0] i_rcvCLJ0,
input [7:0] i_rcvCLJ1,
input [7:0] i_rcvCLJ60,
input [7:0] i_rcvCLJ61,
input [7:0] i_rcvCLJ62,
input [7:0] i_rcvCLJ63,
output reg o_rcv_rst
);

//verification
wire [15:0] rcvVERcode ;
assign rcvVERcode = i_rcvCLJ60 * 256 + i_rcvCLJ61;

reg [3:0] vrf_st ;
always @(posedge i_Clk) begin
if(!i_Rst_L)begin
o_rcv_rst <= 1'd0;
vrf_st<=4'h0;
end
else begin
case(vrf_st)
4'h0: begin
if(i_rcvCLJ_vrf) //verification ready
begin
vrf_st<= 4'h1;
end
end
4'h1: begin
if(i_rcvCLJ0 ==8'hAA && i_rcvCLJ1==8'h55) //frame head
vrf_st<=4'h2;
else
vrf_st<= 4'h4;//exam1
end
4'h2: begin
if(i_rcvCLJ_SUM == rcvVERcode) //vrf_code
vrf_st<=4'h3;
else
vrf_st<= 4'h4;//exam2
end
4'h3: begin
if(i_rcvCLJ62==8'h55 && i_rcvCLJ63==8'hAA) //frame_tail
vrf_st<=4'h5;
else
vrf_st<= 4'h4;//exam3
end
4'h4: begin
o_rcv_rst <= 1'd1;
vrf_st<= 4'h5;
end
4'h5: begin
o_rcv_rst <= 1'd0;
vrf_st<= 4'h0;
end
default: begin
vrf_st<=4'h0;
end
endcase
end
end

endmodule

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/784209.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker 入门文档阅读笔记

Docker 的架构图片来自 Docker 官网教程 Docker 采用 CS 架构, 可以通过 CLI 和 API 与 Docker daemon 进行交互。 Docker Objects Images (镜像) An image is a read-only template with instructions for creating a Docker container. Often, an image is based on anothe…

顶尖待办事项软件对比:找到你的最佳匹配

国内外主流的10款待办事项管理软件对比:PingCode、WorktileTodoist、TickTick、Teambition、 Microsoft To Do、. Asana、Tower、番茄ToDo、飞书。在面对日益复杂的工作和个人任务时,找到一款能够有效帮助你管理日常待办事项的软件,变得越来越重要。无论是在提高个人生产力,…

Oracle RAC 集群启动顺序 转发:https://www.modb.pro/db/1824295923545612288?utm_source=index_ori

前言 前几天使用脚本在 RockyLinux 9.4 安装 Oracle 11GR2 RAC,安装完之后发现集群无法正常启动,后经过分析发现原来是因为 RHEL9 版本默认安装移除了 initscripts 软件包,需要人为手动安装,在 RHEL8 之前是默认安装的。 在分析问题的过程中,顺便对 Oracle RAC 集群启动顺…

SHELL之数值运算

【四则运算符号】表达式 举例$(( )) echo $((1+1))$[ ] echo $[10-5]expr expr 10 / 5 (运算符左右有空格)let n=1;let n+=1 等价于 let n=n+1一、整数运算 1、基本运算类别加法:+ 减法:- 乘法:* 整除:/ 取余数:%2、expr运算工具加法:+ 减法:- 乘法:* 整除:/ 取余数…

FIFO读数取数

FIFO:先进先出的缓存器。常应用于带宽不同或者跨时钟域等数据传输情况。 相关参数:数据宽度,存储深度,将空标志位。空标志位。将满标志位,满标志位。读写时钟。其中将满信号与将空信号相较于真正的满信号与空信号都会提前一个时钟周期拉高。FIFO generator配置注意事项:B…

如何使用midjourney?MidJourney订阅计划及国内订阅教程

MidJourney订阅计划 MidJourney提供四种不同的订阅计划:订阅计划 每月费用 年度费用 使用限制基础计划 $10/月 $96/年($8/月) 每月可生成200张图,无fast模式,不能免排队生成图标准计划 $30/月 $288/年($24/月) 每月可无限量生成图片,15小时fast模式,免排队生成图,有隐…

寻访中国100家.NET中大企业 —— 第二站:苏州行

一:事情起因 在.NET圈里混了十多年,相信有不少人知道我专注于玩 .NET高级调试,如今技术上的硬实力还是能够解决市面上的一些疑难杂症,但软实力却在另一个极端,如(人际交往,人情事故),所以就萌生了刻意训练的念头,便自我发起了这个活动 "寻访中国100家.NET中大企…

7zip如何使带中文的文件名以utf-8编码?

问题: 在win 上压缩中文模版文件后,在Linux 上解压乱码 解决方案: 7-zip压缩的zip文件里面带有中文文件名的,在其他平台上解压后中文文件名乱码。在网上查找了下资料,使用7-zip压缩zip文件,可以使用参数cu=on,强制文件名以utf-8格式编码,在其他平台上解压后正常。 下图…

Windows 10、Windows 11 配置 gradle8

Windows 10、Windows 11 配置 gradle8GRADLE_HOME=D:\development\gradle\gradle-8.8GRADLE_USER_HOME=D:\\repository\\gradle-repository%GRADLE_HOME%\bin

windows环境Jenkins部署前端项目

在Windows环境下使用Jenkins部署前端项目,可以按照以下步骤进行: 1. 安装Jenkins可以从Jenkins官网下载Windows版本的Jenkins安装包。 安装完成后,启动Jenkins服务,并通过浏览器访问 http://localhost:8080 进入Jenkins管理界面。 windows环境Jenkins部署前端项目2. 配置Je…

提升认知:解锁成功之门的钥匙——实践、交流与阅读的力量

​ 认知,这个看似抽象的概念,实则是我们理解世界、做出决策的基石。它如同种子,孕育着思维的花朵,最终结出行为的果实,影响着我们生活的方方面面。我们所赚取的每一分钱,都是对这个世界认知的直接体现。当我们的认知深刻,我们能够洞察事物的本质,把握机遇,从而获得相应…

短URL服务设计

引言 在营销系统里,为了增加系统的活跃用户数,经常会有各种各样的营销活动。这类活动几乎都是为了充分利用存量用户的价值,促使他们分享产品或App以达到触达到更多用户的目的。又或者是出于营销目的,群发优惠券触达短信这种场景。 分享App活动页(或其他各种页面)时URL一般…