【通用设计方法】之接收异常保护

news/2024/5/2 10:02:20/文章来源:https://blog.csdn.net/m0_52840978/article/details/128029092

目录

前言

一、接收异常保护

二、超短包、背靠背的支持

后记


前言

        为了系统的鲁棒性,我们常常会做一系列的异常保护功能,避免系统挂死。

        这里仅仅介绍接收保护的某些设计思路,抛砖引玉。

一、接收异常保护

        设计思路:通过可配置的门限阈值来对超长包/异常包进行截断处理,并将异常情况上报。

        这里门限可分为两种,一是数据包的长度,二是时间。

        当接收数据超过门限(超长/超时)而还没收到eop信号的时候,就截断报文,并自行产生一个eop信号。

        下面以超时为例,简单写下代码:


input 	    [31:0] 		i_cut_cycle_threshold;//寄存器配置,可加使能信号
input 	    [31:0] 		i_cut_len_threshold;
output 	reg [31:0] 		o_rpt_cycle_cut_cnt;//异常上报
output 	reg [31:0] 		o_rpt_len_cut_cnt;reg					    s_frm_running;
reg 	[31:0] 		    s_cycle_cnt;assign 	s_rx_sop 		= 	i_rx_sop && i_rx_vld && o_rx_rdy;
assign 	s_rx_eop 		= 	(i_rx_eop && i_rx_vld && o_rx_rdy) || s_cycle_cut_en;
assign 	s_cycle_cut_en	= 	s_cycle_cnt >= i_cut_cycle_threshold;always@(posedge clk or negedge rst_n)beginif(~rst_n)s_frm_running 	<= 	1'b0;else if(s_rx_eop)s_frm_running 	<= 	1'b0;else if(s_rx_sop)s_frm_running 	<= 	1'b1;
endalways@(posedge clk or negedge rst_n)beginif(~rst_n)s_cycle_cnt 	<=	32'b0;else if(s_rx_eop || s_rx_sop)s_cycle_cnt 	<= 	32'b0;else if(s_frm_running)	s_cycle_cnt 	<= 	s_cycle_cnt + 32'd1;
endalways@(posedge clk or negedge rst_n)beginif(~rst_n)	o_rpt_cycle_cut_cnt 	<= 	32'b0;else if(s_cycle_cut_en)o_rpt_cycle_cut_cnt 	<= 	o_rpt_cycle_cut_cnt + 32'd1;
end

        超长包截断代码大致相同,就不啰嗦了,重点是设计时要有这种异常保护的意识。

        另外一种做法可以是在超过门限时,将running信号拉低,再由running&&rx_vld作为最终的vld信号,同时产生一个eop信号。

二、超短包、背靠背的支持

超短包就是包长为1,sop,eop重叠,如下图:

        背靠背就是两个包之间没有间隔,如下图:

         因为内部接收到数据后进行处理都是需要时间的,而这两种情况恰恰都没有提供足够的时间给到我们。

情况1,超短包的情况,可以考虑根据数据处理所需时钟周期进行打拍处理。

情况2,可以考虑在接收到每一包的eop信号后,强制拉低一个时钟周期的rdy信号来反压前级。

具体代码就懒得写了,也没什么东西;但是有没有其他更好的处理方式?

后记

        这是一个爬坡的过程,需要我们不断积累经验。

        欢迎分享交流。

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

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

相关文章

数据可视化大屏设计

在数据业务展示场景中&#xff0c;数据可视化大屏已经变得十分常见。那么在设计思路上&#xff0c;数据可视化大屏应当遵循什么样的设计逻辑&#xff1f;本篇文章里做了介绍&#xff0c;一起来看一下。 一、数据大屏的应用场景 1、大型会议 2、业务展示 二、数据大屏分类 1、展…

C语言源代码系列-管理系统之会员计费系统

往期文章分享点击跳转>《导航贴》- Unity手册&#xff0c;系统实战学习点击跳转>《导航贴》- Android手册&#xff0c;重温移动开发 &#x1f449;关于作者 众所周知&#xff0c;人生是一个漫长的流程&#xff0c;不断克服困难&#xff0c;不断反思前进的过程。在这个过…

【Python百日进阶-WEB开发-冲進Flask】Day183 - Flask数据库ORM基础、增加

文章目录一、day03项目环境和结构搭建1.1 flask-script1.1.1 flask-script是干什么的&#xff1f;1.1.2 flask-script安装1.1.3 flask-script的使用1.1.3.1 创建Manager实例1.1.3.2 初始化实例出错与解决1.1.4 终端启动1.1.4.1 查看runserver参数1.1.5 自定义添加manager命令1.…

linux篇【11】:linux下的线程<前序>

目录 一.linux下的线程 1.linux下的线程概念 &#xff08;1&#xff09;教材上粗略的 线程 定义 &#xff08;2&#xff09;线程的引入 &#xff08;3&#xff09;线程真正定义 以及 示意图 &#xff08;4&#xff09;linux 和 windows等其他操作系统的线程对比 &#xf…

新的趋势:From Big to Small and Wide data

新的趋势&#xff1a;From Big to Small and Wide data 所以&#xff0c;在这个时候&#xff0c;作为率先提出要做 MySQL 开源 HTAP 数据库的 StoneDB&#xff0c;想要稍微冷静一下。 不是说我们不做 HTAP 了&#xff0c;而是有了一个新的思路。这个思路&#xff0c;也同样来…

【亲测】网址引导页管理系统

介绍&#xff1a; 易航网址引导系统-网址引导页管理系统去授权版一款极其优雅的易航网址引导页管理系统&#xff0c; 如果有问题可以跟我反馈&#xff0c;共同进步。祝各位道友一路飞升&#xff0c;顶峰相见&#xff01;内置12套模板和防墙插件。 项目亮点&#xff1a; 1、…

Redis基础命令(String类型)Value为JSON

目录 String类型&#xff08;存储的值为JSON形式&#xff09; 问题&#xff1a; 解决办法&#xff1a; 示例&#xff1a; 实际操作&#xff1a; 总结&#xff1a; String类型&#xff08;存储的值为JSON形式&#xff09; 问题&#xff1a; Redis没有类似MySql中的表的概…

2022年戈登·贝尔奖授予等离子体加速器突破研究

ACM 总裁Cherri Pancake&#xff08;图片来源&#xff1a;网络&#xff09; 11月17日&#xff0c;在达拉斯举行的SC22颁奖典礼上&#xff0c;ACM将2022年戈登贝尔奖&#xff08;Gordon Bell Prize&#xff09;授予了一组研究人员&#xff0c;他们利用四台超级计算机&#xff08…

【Flink】基本转换算子使用之fliter、flatMap,键控流转换算子和分布式转换算子

文章目录一 Flink DataStream API1 基本转换算子的使用&#xff08;1&#xff09;flitera 使用匿名类实现b 使用外部类函数实现b 使用flatMap实现&#xff08;2&#xff09;flatMapa 使用匿名类实现b 使用匿名函数实现2 键控流转换算子&#xff08;1&#xff09; keyBy&#xf…

中国互联网众筹行业

近些年&#xff0c;中国互联网发展迅速&#xff0c;众筹这种起源于美国的新型互联网金融模式更是一直处于风口浪尖。在“大众创业、万众创新”的背景下&#xff0c;这种低门槛的融资模式也深受欢迎&#xff0c;加上阿里、京东、苏宁三大电商的巨头的相继入场&#xff0c;更令这…

IMS各网元的主要功能

文章目录用户注册时&#xff1a; 手机发出一个注册消息到他所在的拜访地的P。 比如&#xff0c;他是山西太原的用户&#xff0c;他这时候到了北京&#xff0c;那么这个时候&#xff0c;他要注册到IMS网络里面的话&#xff0c;这个P-CSCF就是北京的P-CSCF&#xff0c;这个北京的…

CAS号:376364-38-4,rCRAMP (rat)

rCRAMP (rat) 是一种大鼠组织蛋白酶相关的抗菌肽&#xff0c;有助于大鼠脑肽/蛋白质提取物的抗菌活性。rCRAMP (rat) 是大鼠中枢神经系统先天免疫系统的关键参与者。rCRAMP (rat) is the rat cathelin-related antimicrobial peptide. rCRAMP (rat) contributes to the antibac…

Kotlin 开发Android app(十一):Android控件RecyclerView

Android 中的控件非常的丰富&#xff0c;我们会陆陆续续的进行介绍&#xff0c;从第九节开始&#xff0c;关于Kotlin 的语法特性就差不多结束&#xff0c;后面如果有发现需要说明的语法&#xff0c;再进行相关的补充。 在Android的控件中&#xff0c;RecyclerView算是一个大控…

从 Uber 数据泄露事件我们可以学到什么?

Uber 数据泄露始于一名黑客从暗网市场购买属于一名 Uber 员工的被盗凭证。最初尝试使用这些凭据连接到 Uber 的网络失败&#xff0c;因为该帐户受 MFA 保护。为了克服这一安全障碍&#xff0c;黑客通过 What’s App 联系了 Uber 员工&#xff0c;并假装是 Uber 的安全人员&…

OA系统,有效提升企业办公效率落实执行力

企业管理的成功将最终取决于企业的执行情况&#xff0c;只要有良好的经营管理&#xff0c;管理系统&#xff0c;一个好的领导者&#xff0c;充分调动员工的积极性&#xff0c;将能最大限度的管理执行力。 OA协同办公系统提供了工作流和协同工作互补结合。工作流程严格规定了工作…

大数据面试题(四):Yarn核心高频面试题

文章目录 Yarn核心高频面试题 一、简述Hadoop1与Hadoop2的架构异同 二、为什么会产生yarn&#xff0c;它解决了什么问题&#xff0c;有什么优势&#xff1f; 三、HDFS的数据压缩算法&#xff1f;及每种算法的应用场景&#xff1f; 1、gzip压缩 2、Bzip2压缩 3、Lzo压缩 …

为什么 NGINX 的 reload 不是热加载?

作者&#xff1a;刘维 这段时间在 Reddit 看到一个讨论&#xff0c;为什么 NGINX 不支持热加载&#xff1f;乍看之下很反常识&#xff0c;作为世界第一大 Web 服务器&#xff0c;不支持热加载&#xff1f;难道大家都在使用的 nginx -s reload 命令都用错了&#xff1f; 带着这个…

数据治理系列:数仓建模之数仓主题与主题域

背景&#xff1a; 数据仓库之父 Bill Inmon 将数据仓库描述为一个面向主题的、集成的、稳定的、反应历史变化的数据集合&#xff0c;用于支持管理者的决策过程。 从上面的引言里面&#xff0c;我们其实可以知道主题在数仓建设里面绝对是很重要的一环&#xff0c;这的确是的。…

【计算机网络】HTTP/HTTPS协议基础知识汇总

目录 1.URL&#xff1a; 2.HTTP协议&#xff1a; 2.1抓包工具&#xff08;这里用fiddler&#xff09;&#xff1a; 2.2请求和响应的格式&#xff1a; 2.3方法的介绍&#xff1a; 2.4请求报头&#xff08;header&#xff09;&#xff1a; 2.5状态码&#xff1a; 2.6响应…

antd——使用a-tree组件实现 检索+自动展开+自定义增删改查功能——技能提升

之前写后台管理系统时&#xff0c;遇到一个下面的需求&#xff0c;下面是最终完成的效果图。 实现的功能有&#xff1a; 1. 下拉 选择不同的类型——就是一个普通的select组件&#xff0c;下面并不做介绍 2. 通过关键字可以进行tree树形结构的筛选&#xff0c;然后将筛选后的…