本文将简述一种fifo读控制的不合理设计案例,在此案例中,异常报文将会堵在fifo中,造成头阻塞。
异常场景在验证阶段很难完全覆盖,而实际芯片应用中,因为链路不稳定或者噪声的影响,时不时会出现各种异常报文,因此在设计阶段需要重复考虑到异常常见对设计的影响。
1.不合理的案例设计
如下图所示:data_fifo 为主数据路径的存储fifo,用于存储报文,所有正常报文类型包含:TYPE1,TYPE2,TYPE3,TYPE4。因为保序问题,部分报文需要得到响应反馈会才能读出,而部分报文不需要反馈就能立即读出。
在如下代码中,TYPE1和TYPE2需要反馈ack返回才能从data_fifo读出,而type3和type4可立即读出。
本案例中,输出存储采用的是FWFT类型的fifo,即在数据读出之前,可以看到data的数值。data_dout是fifo输出信号,根据data_dout的msg_type和type1/type2反馈结果(type1/2_ack_is_return)判断是否可以读出fifo数据。(为简化说明,本案例中不涉及流控反压)。
data_fifo_ren为fifo读使能信号,1表示读fifo。在正常场景中,能够覆盖所有报文类型,所有正常报文都能够被读出。
而在异常场景中,一旦报文类型不属于TYPE1,TYPE2,TYPE3,TYPE4,那么data_fifo_ren一直为0,数据将会堵在fifo中,无法读出。
2.一种更合理的案例方案
采用always和case语句,关键是添加了default语句表示异常报文允许立即从data_fifo读出。
-
IC设计
+关注
关注
38文章
1302浏览量
104346 -
输出信号
+关注
关注
0文章
292浏览量
11948 -
FIFO设计
+关注
关注
0文章
7浏览量
4988
发布评论请先 登录
相关推荐
请问这个功放电路的PCB布局不合理吗?
拼版不合理案例详解
变电所继电保护的几处不合理设计
不合理软件使用对硬盘会造成哪些损伤
不合理使用对硬盘的损伤有哪些?
苹果正拒绝不合理高价购买的应用
LTE小区TAC配置不合理回落失败案例简介
![LTE小区TAC配置<b class='flag-5'>不合理</b>回落失败案例简介](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
LTE小区TAC配置不合理回落失败案例
![LTE小区TAC配置<b class='flag-5'>不合理</b>回落失败案例](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
【LTE实战】LTE小区TAC配置不合理导致CSFB失败处理案例
![【LTE实战】LTE小区TAC配置<b class='flag-5'>不合理</b>导致CSFB失败处理案例](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
评论