0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

复位那些小事—系统解复位的特殊处理

冬至子 来源:芯时代青年 作者:尼德兰的喵 2023-12-04 15:25 次阅读

解复位就是复位撤离,系统解复位就是复位结束了系统准备开始工作。

前文咱们提过,复位撤离比复位要复杂一些,因为复位了大家就是一起回到初始状态去,寄存器也不采样了,有什么毛刺啊亚稳态啊只要不影响其他系统(这个之后讲)都没关系的。这就相当于晚上回家上床准备上床睡觉,你爱穿啥衣服睡就穿啥衣服不穿也没人管。但是解复位就不一样了,这就是起床要出门上班了,怎么着也得准备好才能出去工作,不能穿着秋裤就往外跑。

所以的对于解复位(其实也不光是解复位,局部复位本身也很危险)就需要做跟多的额外工作了,上一篇说的同步撤离之后,还有什么问题需要解决呢?

主要是复位信号到达各个寄存器的时间不一致的问题。复位信号在系统内是有很大的扇出的,连接到所有需要复位的寄存器的复位端。这也就导致了复位在系统中的走线特别长,过长的走线又会导致工具在复位信号上增加buffer以提升驱动能力,那么如果时钟频率很高,复位信号最终到达各个寄存器的时间也就无法保证在同一拍。

图片

复位走线到达各个寄存器不在同一拍会有什么后果呢?这个不能一概而论。对于一些复位解除后就开始工作的电路系统比如自动计数取指模块,各个寄存器之间可能存在依赖关系,如果只部分寄存器被复位或解复位,可能会导致不一致的状态,从而影响系统的正确运行。同时呢,如果复位方案做的不好,某系统进行复位时一部分复位了一部分没有复位,也可能会产生毛刺被未复位的寄存器采样,进而输出使能影响到其他系统的正常工作。

总之呢,复位走线到各个寄存器不在同一拍,可能存在系统稳定性的风险。因此在对复位还需要对系统的复位做一些特殊的处理。特殊的处理有哪些呢,不同的团队也有多种多样的选择,这里列举一些我所听闻过的方案吧。

降频后复位。

先把时钟降频,再进行复位和解复位的操作,再提频回正常工作时钟频率。你不是怕复位走线到各个寄存器的时间不一致导致不在同一拍复位吗?那好,我把时钟降频总可以吧,1GHz太快了降到500M,500M还快降到100M,100M还快到10M总可以了吧,一个周期这么长时间足够你复位信号慢慢溜达到各个寄存器的。所以采用这种方案时,会在复位前将工作时钟32分频或者64分频(取决于系统的面积和工作时钟,可以算的),然后进行复位和解复位,之后在将时钟提频至工作状态。

这种方案下,可以在sdc中将复位信号设置为multicycle,检查其在64个时钟周期内能够作用到所有的寄存器复位端。

关时钟后复位。

这个方法更彻底,怕各个寄存器看到复位和解复位的时间不一致导致功能错乱?那直接把工作时钟给关断不久好了,反正是异步复位不用担心没有时钟复位信号作用不到寄存器端。时钟一关所有寄存器相当于原地停工,这个时候别说复位信号了,啥信号过来都没事,寄存器都不干了嘛。所以此时复位信号的走线也就不称问题了,先复位再慢慢悠悠的解复位,都搞定了歇一会再把时钟打开。

这种方案下,可以在sdc中将复位信号设置为false_path,毕竟相当于准静态的信号,工作时复位信号不会跳变。

复位保护。

这个方法的思路是,不是担心我这块的复位影响其他系统工作嘛,那么不去处理复位和时钟,而是把系统裹起来。怎么裹起来呢,把所有的对外输出使能啊、握手啊这类信号都先和低电平与在一起,保证不管一会发生啥事,都不会有关键信号发生跳变。保护好之后,再去拉复位信号,过一会再解复位,再等会时间等系统稳定下来了,再把保护电路解除开始正常工作。

这种方案下,也可以在sdc中将复位信号设置为false_path。

复位之后等待一定时间再开始下任务。

这个方案更多的是在任务层面看,也就是说面对解复位后可能存在的系统不稳定性,先不要着急下任务下配置下指令,而是等待一定时间等系统中可能存在的不稳定状态都结束了,再开始进入工作模式去下任务。

当然了不是说所有系统都适用以上的方法,比如某个系统确实是解复位后就立即开始工作,那用复位保护就没效果,因为你内部状态都乱了保护其他系统还有啥用呢。所以说还是具体问题具体分析吧,以上也只是经验之谈难免有所疏漏。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 保护电路
    +关注

    关注

    42

    文章

    832

    浏览量

    101019
  • 寄存器
    +关注

    关注

    30

    文章

    5032

    浏览量

    117745
  • SDC
    SDC
    +关注

    关注

    0

    文章

    47

    浏览量

    15302
收藏 人收藏

    评论

    相关推荐

    系统复位特殊处理

    复位就是复位撤离,系统复位就是复位结束了系统准备开始工作。
    的头像 发表于 11-28 12:20 443次阅读
    <b class='flag-5'>系统</b>解<b class='flag-5'>复位</b>的<b class='flag-5'>特殊</b><b class='flag-5'>处理</b>

    复位那些小事—典型的软复位流程

    在聊到复位的时候总会区分两个概念:硬复位和软复位
    的头像 发表于 12-04 13:46 943次阅读

    对于芯片中的复位信号我们通常会有哪些特殊处理

    经常在面试时问到一个问题:对于芯片中的复位信号我们通常会有哪些特殊处理?这个时候我一般希望得到的回答包括:复位消抖、异步复位同步撤离、降频
    的头像 发表于 12-25 09:52 538次阅读
    对于芯片中的<b class='flag-5'>复位</b>信号我们通常会有哪些<b class='flag-5'>特殊</b><b class='flag-5'>处理</b>?

    复位电路没有小事

    就麻烦了,会引起系统频繁复位复位电路要考虑快速电压跌落问题,电路设计不合理,一个5V到4V的瞬时电压跌落就足以导致复位,这个往往是人们始料不及的。
    发表于 07-03 04:20

    复位电路无小事

    复位电路无小事,感兴趣的小伙伴们可以瞧一瞧。
    发表于 09-18 17:15 0次下载

    stm32复位电路设计 浅析stm32复位电路方法

    某些系统允许复位,但对外设又有特殊要求:某一个IO状态不能因为复位而改变,某一个定时器计数器不能改变等。
    发表于 08-08 11:32 9.9w次阅读
    stm32<b class='flag-5'>复位</b>电路设计 浅析stm32<b class='flag-5'>复位</b>电路方法

    CM3(STM32) 内核复位系统复位区别及应用

    CM3(STM32)内核复位系统复位区别及应用
    的头像 发表于 03-20 09:43 4336次阅读
    CM3(STM32) 内核<b class='flag-5'>复位</b>与<b class='flag-5'>系统</b><b class='flag-5'>复位</b>区别及应用

    STM32 复位

    1、复位    共有三种类型的复位,分别为系统复位、电源复位和备份域复位。1.1、
    发表于 12-27 18:24 9次下载
    STM32 <b class='flag-5'>复位</b>

    STM32F103复位系统

    复位的作用:      复位指将STM32系统各功能寄存器及I/O口设为最初状态(备份区域不被复位)。复位形式      共有三种
    发表于 12-27 18:57 16次下载
    STM32F103<b class='flag-5'>复位</b><b class='flag-5'>系统</b>

    STM32复位来源、以及系统和内核复位区别

    每一块STM32中都有这么一个RCC复位和时钟控制模块。STM32的复位为三类:系统复位、电源复位和后备域
    发表于 02-10 10:30 6次下载
    STM32<b class='flag-5'>复位</b>来源、以及<b class='flag-5'>系统</b>和内核<b class='flag-5'>复位</b>区别

    STM32芯片的那些系统复位功能

    我们知道,STM32芯片里有很多系统级的复位,比方上电复位、欠压复位、看门狗复位、软件复位
    的头像 发表于 10-19 09:06 4228次阅读

    谈谈复位那些

    复位信号几乎是除了时钟信号外最常用的信号了,几乎所有数字系统在上电的时候都会进行复位,这样才能保持设计者确定该系统系统模式的状态,以便于更
    的头像 发表于 06-02 15:11 1462次阅读
    谈谈<b class='flag-5'>复位</b><b class='flag-5'>那些</b>事

    stm32软复位 内核复位系统复位

    内核复位:它会使STM32内核(Cortex-M)进行复位,而不会影响其外设,如GPIO、TIM、USART、SPI等这些寄存器的复位
    的头像 发表于 08-01 17:21 3332次阅读

    同步复位和异步复位到底孰优孰劣呢?

    同步复位和异步复位到底孰优孰劣呢? 同步复位和异步复位是两种不同的复位方式,它们各自有优势和劣势,下面将详细介绍这两种
    的头像 发表于 01-16 16:25 329次阅读

    GD32 MCU电源复位系统复位有什么区别

    GD32 MCU的复位分为电源复位系统复位,电源复位又称为冷复位,相较于
    的头像 发表于 02-02 09:37 490次阅读
    GD32 MCU电源<b class='flag-5'>复位</b>和<b class='flag-5'>系统</b><b class='flag-5'>复位</b>有什么区别