IC设计高级007:异常处理设计三要素

1、什么是异常处理设计

为了保证芯片在非预期的情况下能够继续运行,需要针对异常进行个性化设计。常见的异常有交互的一方没有响应(比如读数据没有返回),模块输入的数据格式不满足要求。

2、异常设计核心三要素

针对异常情况,芯片设计具有三要素:

1)不挂死

异常情况发生时,芯片不能挂死。比如,状态机不能卡住,数据通路能够正常收发数据。

2)能恢复

出现状况时,电路状态能够及时恢复到正常状态,不阻塞后续的数据处理。比如状态机能够在几十微秒以内恢复到IDLE状态,不能卡住几秒钟,比如数据通路接收到不合法的数据后还能够正常处理后续的数据,不会造成阻塞。

3)能上报

遇到异常情况,芯片内部有记录,能够及时知道。例如,有寄存器统计异常次数和状态,有中断上送。

3、异常设计案例

案例1: 以太网MAC入口数据过滤模块

MAC发送侧入口,要求发送的数据具有包头和包尾标志。MAC发送侧会在包头添加preamble和SFD,在包尾添加CRC和IPG。因此,如果输入的数据包头/包尾不是一一对应的,则会造成MAC层模块无法正常处理数据,可能会造成模块内部状态机卡住,出现各类错误,阻塞后续数据处理。因此MAC发送侧入口会在数据处理模块之前添加包过滤模块,过滤包头包尾不匹配的数据,同时使用寄存器记录各类错误的次数(记录缺少包头的数量,记录缺失包尾的数量),并且上送中断。

案例2:寄存器读超时处理机制

在芯片中,经常需要读取寄存器,slave端可能因为各类情况没有及时产生读返回,因此发起请求的master必须能够处理此类情况,避免阻塞后期的读请求。此类情况,芯片内的读请求master会产生读返回提供给芯片外部的请求发起端,并产生响应的resspon信号告知读错误,同时使用寄存器记录无返回次数和响应的读地址,并且产生中断信号。

 

你可能感兴趣的:(IC设计,自恢复设计)