电子产业一站式赋能平台

PCB联盟网

搜索
查看: 292|回复: 0
收起左侧

【芯片设计】复位那些小事 —— 配置复位

[复制链接]

407

主题

407

帖子

5214

积分

四级会员

Rank: 4

积分
5214
发表于 2023-12-15 11:56:00 | 显示全部楼层 |阅读模式
本篇仍旧基于工作经验,难免有疏漏和错误。在前文聊过了软复位和硬复位之后,最后一篇来说说另外一种我遇到的系统复位方案 —— 配置复位,很多情况下我更愿意把配置复位称作快速复位。粗略的一算复位情况还挺多,硬复位、软复位、配置复位、快速复位、动态复位等。
一款芯片的复位会分很多级,很大部分的小系统比如加速器这种的都已经挂在三级或者四级复位总线了,看到的硬复位已经和很多软复位&&在了一起,看到的软复位也可以简单理解为更上层的“配置复位”。当然我们不在细节上做太深的探究,画个图简单里表示下好了。

2eafpg0bngr64030360257.png

2eafpg0bngr64030360257.png

配置复位和其他复位的区别主要在哪里呢?最大的一个区别是,系统的配置复位不会复位寄存器单元。想想看就很清晰,配置复位必然是通过配置寄存器单元来完成的,你要用人家就不能给人家复位了对吧。熟悉的配置复位流程和软复位流程很接近:
1.触发配置复位启动条件。如系统内部出现了致命的错误、任务执行超时、安全机制报错等;
2.停止下发任务。从任务层停止下发新的任务,避免系统错误进一步的蔓延影响其他进程;
3.通过配置总线下发达配置复位请求;4.系统接收到配置复位的请求后,停下处理的工作;5.系统边界的模块监听所有通路,等待所有已经发出的请求全部收回应答;
6.边界的模块收全所有应有的返回信息后,或者未能收全但是到达超时阈值后,系统进入待复位状态;7.此时如果本系统仍然保留着访问DDR和sram的备份通路,那么上位机可以通过配置寄存器去间接访问内存和寄存器进行保留现场。如果没有规划该功能,则略过这一步骤;
8.上位机配置复位保护寄存器使能复位保护电路,避免系统复位过程中有毛刺或者使能信号扩散到总线或其他系统;9.通过系统总线配置时钟降频寄存器或关断核时钟寄存器;
10.通过系统总线配置复位寄存器,持续一段时间确保系统内所有寄存器都完成了复位;
11.复位完成后配置复位寄存器解除复位,之后等待一段时间;
12.配置时钟恢复工作频率或恢复时钟;
13.配置复位保护寄存器解除复位保护,恢复总线连接;14.重新下任务或恢复现场,重启系统完成。
流程这么相似的情况下,配置复位和软复位最大的区别在哪里呢?我个人的经验是,配置复位不会将寄存器复位那么所有的配置都得以保留,复位完成后可以不重新下配置的情况下快速的重启任务,所以我更喜欢将配置复位称为快速复位。当然,这个区别并不固定,软复位也可以只复位核部分不复位寄存器部分,连接合理使用得当的情况下都是允许的。
之前面对的最复杂的系统复位场景基本就是下面这样了:

dtttyw2owa464030360357.png

dtttyw2owa464030360357.png

因为历史遗留和甩锅等一些原因吧,我交付的系统中有一部分应该归属于NOC系统的总线模块。这部分总线模块的引入带来了一个尴尬的问题,软复位时候不能将这部分进行复位,否则NOC就挂了!所以最后的系统的复位域分了三个层级:硬复位——复位全系统,软复位——复位core和reg,配置复位——只复位core,保留配置。光复位方案就要分三套,真是不想回首的痛苦经历啊。
至此,芯片复位这个系列基本就完成了,如果之后学到了更多的知识和经验,再和大家分享。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表