同步和异步复位_第1页
同步和异步复位_第2页
同步和异步复位_第3页
同步和异步复位_第4页
同步和异步复位_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、同步和异步复位1、 一谈到复位操作,我们几乎再熟悉不过了。但令人烦心的是,异常的复位操作却时而发生。 对于单独的asic 设计来说, reset 信号主要目的是为了在仿真过程中强制使整个asic设计进入一个已知的工作状态。对于大多数asic 设计来说,对数据的处理都是遵循同一个规则即:先同步,再处理,最后输出。如果同步信号丢失,那么asic 将会重新进行再获取同步的操作。如果这类asic的设计完全正确,那么所有未使用的状态都将会指向“开始获得同步信号”状态。 这类系统能够在没有reset 信号情况下正确运行。如果一个asic 设计中其状态机在综合阶段采用了“dontcare”逻辑状态的话,那么

2、这个系统就需要reset 复位信号。笔者认为,通常情况下asic 设计中每个触发器都应当有复位端口,不管这个系统是否需要。但有些状况例外, 比如在高速应用的场合,一些跟随触发器 ( follower ff用作简单的移位寄存器)为了达到更高的性能而不需要reset 端。另外,我们还需要考虑不同的复位策略,即如果系统需要,那么到底是使用同步还是异步复位。首先我们来研究一下同步复位。2、 触发器通常的编码风格同步复位触发器与无reset 的跟随触发器图 1 编码风格1 中两个 ff ,一个带同步复位,一个不带图 1 中的第一个触发器带同步reset,由它采样的数据q1 传递给第二个触发器;第二个触发

3、器不带reset,它的作用就是简单数据移位。正确的代码风格1 如下:注意如果采用下面编码风格2 会出现什么问题?此代码综合出的逻辑如图2 所示。图 2 编码风格 2 第二个触发器产生了一个不需要的加载使能信号由于代码中把一级触发器和二级触发器放在了一个进程块中处理,所以一级触发器的同步 reset 信号 rst_n 将作为二级触发器的加载使能信号, 而这属于多余的逻辑, 我们并不需要!造成以上编码风格1 和 2 产生的不同逻辑的原因在于使用了同步reset,如果采用异步reset 策略,那么两种编码风格所生成的逻辑是完全相同的,不会产生多余的逻辑。这其中是因为进程块中敏感列表以及if-else

4、 判断语句的影响,我们将在下文中详细说明。3、 同步复位许多关于同步复位的文章,大都表述一个观点:“在 asic 设计中要严格使用同步复位”或者类似 “异步复位应该被避免使用” 。然而,为何要这么做,确很少有人明确说明。实际上,同步复位和异步复位都各有千秋, 到底使用哪种复位策略, 设计者需要根据具体的设计需要来确定。同步复位是仅在时钟有效边沿到来时有效的,这种同步reset 信号可以当做组合逻辑的输入来产生触发器的 d 输入信号。(图 1 可知) 如果采用同步复位策略, 那么编码风格就必须使用 if-else 结构,且 reset 信号作为 if 的判断条件( reset 信号不在敏感列表中

5、) ,其余的组合逻辑都在 else 部分中。如果不严格遵循这种编码风格,可能会产生两种问题。第一种情况,有可能一些仿真器无法通过;第二种情况,造成较大延时,当复位信号到来时,应当尽量避免其通过过多的逻辑。图 3 所示的逻辑为带有加载使能端的同步复位计数器(带进位)。是图 3 同步复位的加载使能计数器图 3 可以看出同步复位信号rst_n 增加了路径延时 ( rst_n 与处理后的数据经组合逻辑作为触发器 d 输入),代码如下:使用同步复位的优点在于, 带同步复位端的触发器综合出来的面积更小, 但同时也带来组合逻辑门数量的增加, 如果一个设计要求结构紧凑, 要求每个触发器要节省一到两个逻辑门数量

6、以便于 asic 能够封装进裸片。但对如今的大容量裸片工艺来说,每个触发器是否能节省一两个逻辑门似乎无关紧要了。在仿真方面, 同步复位的系统能够很好的工作在基于时钟周期采样的仿真器中。 而且能保证整个电路百分百的同步。同步复位确保了复位操作仅在时钟有效边沿发生, 这样可以过滤小的复位毛刺, 但如果毛刺离时钟有效沿太近, 触发器输出状态可能是亚稳态。 另外当有些复位信号是由一系列内部逻辑产生的,这种情况下推荐同步复位策略,可以有效的过滤毛刺。使用同步复位的缺点在于复位信号需要一个脉冲的延展以确保在时钟有效边沿到来时,复位脉冲宽度足够,使得数据被稳定的采入。这正是同步复位特点,整个电路的复位操作需

7、要一个时钟周期来完成。这对于某些设计来说并不是坏处,但对于另一些设计却有问题。如果 ASIC 或 FPGA 含有内部三态总线,为防止内部三态总线在芯片加电时的竞争,同步复位的芯片必须有一个上电异步复位。4、 异步复位异步复位是笔者喜欢的复位方法。但是, 单独的异步复位很危险。很多设计者都喜欢把他们的电路加上复位操作使之返回到已知的工作状态。异步复位最大的问题在于复位信号的释放,换句话说就是复位信号的移除。 异步复位触发器都包含一个异步复位引脚, 这个引脚通常低有效。异步复位触发器的编码风格如下:注意到 reset 信号 rst_n 是敏感列表的一部分,所以说同样是边沿有效信号。使用异步复位最大

8、的好处在于,只要厂商提供了异步复位触发器,那数据路径就能确保无延时清洁可控。不会像同步复位电路出现的路径延时(图 3)。下面是带有加载使能端的异步复位计数器(带进位)代码:综合出来的逻辑图如图4 所示。图 4 异步复位加载使能计数器由图 4 可以看出异步复位不会产生额外的逻辑延时。但是异步复位也存在缺点,其最大的问题在于它们是异步的,这里的它们指的是异步复位信号 reset 的变低有效,变高无效都是异步的。特别是变高无效,我们也可以称之为复位信号释放,如果复位释放后与第一个时钟有效边沿时间间隔过小, 那么使得触发器输出为亚稳态,进而使得系统复位状态异常。许多设计工程师都喜欢应用异步复位操作, 并认识不会有问题。 因为他们在仿真环境 (可控的环境)下测试了 reset 信号,一切都工作正常。但系统完成后的实际运行过程中(不可控)却间断性的出现错误。 这的确很令人烦心, 因为设计者没有考虑到系统中复位信号的释放的问题, 而这个问题往往导致芯片进入一个未知的亚稳状态,复位操作失效。 我们必须重视这个问题, 即使是在同步复位的系统中, 有效的异步复位信号释放 (对低电平有效的复位来说就是上跳沿)与紧跟其后的第一个时钟有效沿之间也必须有最小的时间间隔。如图5 所示,异步复位信号变高无效操作时与时钟异步的,这里有两种潜在可能出现的问题:(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论