复位设计中的结构性缺陷及解决方案(二)

最新更新时间:2013-11-16来源: 互联网关键字:复位设计  结构性缺陷 手机看文章 扫描二维码
随时随地手机看文章

设计中的同步复位问题

  1. 问题(I)

  在许多地方,设计人员在时钟方面喜欢同步复位设计。原因可能是为了节省一些芯片面积(带有异步复位输入的触发器比任何不可复位触发器都大)或让系统与时钟完全同步,也可能有一些其他原因。对于此类设计,当复位源被断言时需要向设计的触发器提供时钟,否则,这些触发器可能会在一段时间内都不进行初始化。但当该模块被插入一个系统时,系统设计人员可能选择在复位阶段禁用其时钟(如果在一开始不需要激活该模块),以节省整个系统的动态功耗。因此,该模块甚至在复位去断言后一段时间内都不进行初始化。如果该模块的任何输出直接在系统中使用,那么将捕获未初始化和未知的值(X),这可能会导致系统功能故障。

  

  图9:同步复位问题时序图

  2. 解决方案

  在复位阶段启用该模块的时钟且持续最短的时间,使该模块内的所有触发器都在复位过程中被初始化。 当系统复位被去断言时,模块输出不会有任何未初始化的值。

  

  图10:同步复位问题已解决

  3. 问题(II)

  在时钟域交叉路径使用两个触发同步器是常见做法。然而,有时设计人员对这些触发器使用同步复位。相同的RTL代码是

  always @(posedge clk )

  if(!sync_rst_b) begin

  sync1 <= 1‘b0; sync2 <= 1’b0 ;

  end

  else begin

  sync1 <= async_in; sync2 <= sync1

  end

  在硬件中进行了RTL合成后,上面的代码会在双触发器同步器的同步链中引入组合逻辑,这会带来风险,并缩短sync2触发器输入进入亚稳态的时间。

  

  图11:同步复位问题2

  4. 解决方案

  可用以下方式编写RTL代码,以避免同步链的组合逻辑。

  always @(posedge clk )

  if(!sync_rst_b) begin

  sync1 <= 1‘b0;

  end

  else begin

  sync1 <= async_in; sync2 <= sync1

  end

  在上面的代码中,对sync2触发器不使用复位,因此在同步链中不会实现组合信元。然而,需要注意sync2需要一个额外的周期才能复位,这不应导致设计出现任何问题。

冗余复位同步器引起的问题

  1. 问题

  在使用多个异步时钟的设计中,设计人员需要确保在目标寄存器使用的时钟方面,异步复位的同步去断言,否则可能导致目标触发器发生时序违反,从而产生亚稳态。复位同步器被用来复位去断言,与目标时钟域同步。然而,只有在系统复位去断言过程中有目标时钟时才会发生复位去断言时序违反。如果在复位去断言时没有时钟,那么便不会有任何时序违反。因此,在设计多时钟域模块时,设计人员可以让编译时间选项绕过该模块中的那些复位同步器,并让系统集成商根据对该模块的时钟可用性决定是否需要使用复位同步器。

  此外,如果系统时钟和异步时钟比非常高,冗余同步器甚至会造成设计功能性问题。下面描述了这个问题。

  

  图12:冗余同步器的问题

  在上面的设计中,去断言与sys clk同步的系统复位被馈送到(mod_clk域)的复位同步器,然后在mod_clk域逻辑中使用该复位。让我们假定sys clk : mod_clk的时钟频率比大于6:1.默认不启用mod_clk,以节省动态功率。当用户想要启用mod_clk域逻辑的功能时,便启用该时钟。在启用了该时钟后,有两个mod_clk周期的延迟,其中,由于复位同步器导致整个mod_clk域逻辑都处于复位状态。在该阶段,如果一些数据交易从sys clk域开始,将在mod_clk域丢失。

  2. 解决方案

  虽然这不是大问题,但有时会在客户一端造成混淆,因为该延迟对客户不可见。 因此消除混淆的更好的方式是:

  * 如果在全局复位去断言过程中没有时钟,则在设计中绕过/删除冗余复位同步器。 这当然会节省一定的门控数。

  * 如果动态功耗不是问题,用户可以在mod_clk域逻辑开始运作之前很长时间在启动代码选择启用mod_clk. 因此,复位去断言将有足够的时间传播。

  * 这也可以在软件中处理,在任何有效操作之前启用了mod_clk后,设置两三个mod_clk周期的延迟。

  由于罕见的时钟路径导致复位去断言时序问题

  1. 问题

  设计的复位架构根据系统而不同。在一些安全关键设备中,整个复位状态机在安全时钟上工作,安全时钟默认启用。 该时钟也被用作设备的默认系统时钟。

  

  图13:罕见时钟路径的问题

  在上图中,复位状态机(R触发器)在default_clk上工作。此外,在复位去断言过程中,default_clk是sys clk的源。因此,在逻辑上,这两个时钟(clk1和clk2)在复位去断言过程中同步。但是,由于clk1和clk2之间存在巨大的罕见路径,因此很难平衡这两个时钟并视其为同步。 因此,满足A触发器的复位去断言变得具有挑战性。

  2. 解决方案

  异步对待clk1和clk2,并在A触发器中使用复位之前放置复位同步器。现在需要从S2--》A满足复位去断言时序(见图14)。这不应是个问题。

  

  图14:解决方案

  结束语

  这部分主要专注于复位设计中的故障以及克服这些问题的可能的解决方案。然而,上述解决方案并非唯一的解决方案,也不普遍适用于所有设计。这些是一些通用的解决方案和建议的指导方针,在特殊情况下可能需要进行修改。在这些情况下,此类问题不仅导致功能故障,还会增加一些额外的调试时间和工作,从而增加执行周期时间。因此,设计人员需要在设计的早期阶段考虑此类问题。

关键字:复位设计  结构性缺陷 编辑:神话 引用地址:复位设计中的结构性缺陷及解决方案(二)

上一篇:复位设计中的结构性缺陷及解决方案(一)
下一篇:高容量Flash MCU需求涨

推荐阅读最新更新时间:2023-10-12 20:52

MSP430系列单片机的复位电路系统设计
  0 引言   TI公司的混合信号处理器MSP430系列单片机以其处理能力强大、外围器件集成度高、功率消耗低、产品系列全面、全系列工业级等特点,作为目前MCU主流市场的产品之一,在电子应用领域中得到广泛应用,被越来越多的电子设计师所青睐。由于复位电路设计问题而导致的系统出现上电后不工作或状态不正确是很多MSP430单片机电路设计者们在设计、调试和应用中曾遇到过的问题,尽管这种情况发生的几率很低,但对于可靠性要求较高的应用场合,这个现象仍需引起电子设计人员的足够重视。   为此,本文对MSP430全系列单片机的复位系统和复位机制进行了详细深入的分析,并针对性地提出了具体的外围复位电路设计方案和有关电子元器件的详细介绍,
[单片机]
MSP430系列单片机的<font color='red'>复位</font>电路系统<font color='red'>设计</font>
51单片机复位电路的设计
单片机在可靠的复位之后,才会从0000H地址开始有序的执行应用程序。同时,复位电路也是容易受到外部噪 声干扰的敏感部分之一。因此,复位电路应该具有两个主要的功能: 1. 必须保证系统可靠的进行复位; 2. 必须具有一定的抗干扰的能力; 一、复位电路的RC选择 复位电路应该具有上电复位和手动复位的功能。以MCS-51单片机为例,复位脉冲的高电平宽度必须大于2个机器周期,若系统选用6MHz晶振,则一个机器周期为2us,那么复位脉冲宽度最小应为4us。在实际应用系统中,考虑到电源的稳定时间,参数漂移,晶振稳定时间以及复位的可靠性等因素,必须有足够的余量。图1是利用RC充电原理实现上电复位的电路设计。实践证明,上电
[单片机]
51单片机<font color='red'>复位</font>电路的<font color='red'>设计</font>
详解单片机复位电路的作用及设计
什么是复位 单片机复位电路的作用是:使单片机恢复到起始状态,让单片机的程序从头开始执行,运行时钟处于稳定状态、各种寄存器、端口处于初始化状态等等。目的是让单片机能够稳定、正确的从头开始执行程序。 为什么要加复位? 数字电路中寄存器和 RAM 在上电之后默认的状态和数据是不确定的,如果有复位,我们可以把寄存器复位到初始状态,RAM 的数据可以通过复位来触发 RAM 初始化 程序逻辑如果进入了错误的状态,通过复位可以把所有的逻辑状态恢复到初始值,如果没有复位,那么逻辑可能永远运行在错误的状态。(一些简单的IC芯片没有看门狗电路,就需要外部复位) 好的,通过上面两段话,你了解了复位电路的作用以及为什么要加复位电路 正常单片机和IC芯
[单片机]
详解单片机<font color='red'>复位</font>电路的作用及<font color='red'>设计</font>
stm32复位电路设计
在官方芯片资料是这样介绍的,如下图所示: 图中复位源将最终作用于RESET 管脚,并在复位过程中保持低电平,就是说复位过程中巴mos管导通拉低,会有不少于20us的低电平状态,由此一来,当NRST的外接电路复位是高电平的话,就需要接限流电阻,比如说接下图的up监控模块(注:stm32内部也有看门狗): 7引脚在复位过程保持高电平,为了防止复位过程太大的电路灌入NRST,需要接R38,这样的电阻限流,保护NRST
[单片机]
stm32<font color='red'>复位</font>电路<font color='red'>设计</font>
MSP430系列单片机复位电路系统设计分析
0 引言   TI公司的混合信号处理器 MSP430 系列单片机以其处理能力强大、外围器件集成度高、功率消耗低、产品系列全面、全系列工业级等特点,作为目前MCU主流市场的产品之一,在电子应用领域中得到广泛应用,被越来越多的电子设计师所青睐。由于 复位电路 设计问题而导致的系统出现上电后不工作或状态不正确是很多MSP430单片机电路设计者们在设计、调试和应用中曾遇到过的问题,尽管这种情况发生的几率很低,但对于可靠性要求较高的应用场合,这个现象仍需引起电子设计人员的足够重视。   为此,本文对MSP430全系列单片机的复位系统和复位机制进行了详细深入的分析,并针对性地提出了具体的外围复位电路设计方案和有关电子元器件的详细介
[模拟电子]
MSP430系列单片机<font color='red'>复位</font>电路系统<font color='red'>设计</font>分析
FPGA复位的可靠性设计方案
  对FPGA设计中常用的复位设计方法进行了分类、分析和比较。针对FPGA在复位过程中存在不可靠复位的现象,提出了提高复位设计可靠性的4种方法,包括清除复位信号上的毛刺、异步复位同步释放、采用专用全局异步复位/置位资源和采用内部复位。上述方法可有效提高FPGA复位的可靠性。   对FPGA芯片而言,在给芯片加电工作前,芯片内部各个节点电位的变化情况均不确定、不可控,而这种不确定且不可控的情况会使芯片在上电后的工作状态出现错误。因此,在FPGA的设计中,为保证系统能可靠进进入工作状态,以及避免对FPGA输出关联的系统产生不良影响,FPGA上电后要进行复位,且为了消除电源开关过程中引起的抖动影响,复位信号需在电源稳定后经过一定的延时才
[电源管理]
FPGA<font color='red'>复位</font>的可靠性<font color='red'>设计</font>方案
基于MSP430系列单片机复位电路系统设计分析
   0 引言    TI公司的混合信号处理器 MSP430系列单片机以其处理能力强大、外围器件集成度高、功率消耗低、产品系列全面、全系列工业级等特点,作为目前MCU主流市场的产品之一,在电子应用领域中得到广泛应用,被越来越多的电子设计师所青睐。由于 复位电路设计问题而导致的系统出现上电后不工作或状态不正确是很多MSP430单片机电路设计者们在设计、调试和应用中曾遇到过的问题,尽管这种情况发生的几率很低,但对于可靠性要求较高的应用场合,这个现象仍需引起电子设计人员的足够重视。   为此,本文对MSP430全系列单片机的复位系统和复位机制进行了详细深入的分析,并针对性地提出了具体的外围复位电路设计方案和有关电子元器件
[单片机]
基于MSP430系列单片机<font color='red'>复位</font>电路系统<font color='red'>设计</font>分析
小广播
最新模拟电子文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved